Como você mencionou, o armazenamento da matriz do kernel requer memória escalável quadraticamente com o número de pontos de dados. O tempo de treinamento para os algoritmos SVM tradicionais também é dimensionado de maneira super-linear com o número de pontos de dados. Portanto, esses algoritmos não são viáveis para grandes conjuntos de dados.
Um truque possível é reformular um SVM kernelizado como um SVM linear. Cada elemento da matriz do kernel representa o produto escalar entre os pontos de dados e após o mapeamento (possivelmente não linear) para um espaço de recurso: . O mapeamento de espaço de recursosKijxixjKij=Φ(xi)⋅Φ(xj)Φé definido implicitamente pela função do kernel, e os SVMs kernelizados não calculam explicitamente as representações do espaço de recursos. Isso é computacionalmente eficiente para conjuntos de dados de tamanho pequeno a médio, pois o espaço de recursos pode ser de dimensões muito altas ou mesmo de dimensões infinitas. Mas, como acima, isso se torna inviável para grandes conjuntos de dados. Em vez disso, podemos mapear explicitamente os dados de maneira não linear no espaço de feição, e treinar com eficiência um SVM linear nas representações de espaço de feição. O mapeamento do espaço de recursos pode ser construído para aproximar uma determinada função do kernel, mas usa menos dimensões que o mapeamento do espaço de recursos 'completo'. Para conjuntos de dados grandes, isso ainda pode nos fornecer representações valiosas do espaço de recursos, mas com muito menos dimensões do que pontos de dados.
Uma abordagem para a aproximação do kernel usa a aproximação de Nyström (Williams e Seeger 2001). Essa é uma maneira de aproximar os valores próprios / vetores próprios de uma matriz grande usando uma submatriz menor. Outra abordagem usa recursos aleatórios e às vezes é chamada de “pias de cozinha aleatórias” (Rahimi e Recht 2007).
Outro truque para treinar SVMs em grandes conjuntos de dados é aproximar o problema de otimização com um conjunto de subproblemas menores. Por exemplo, o uso da descida estocástica do gradiente no problema primordial é uma abordagem (entre muitas outras). Muito trabalho foi feito na frente da otimização. Menon (2009) faz uma boa pesquisa.
Referências
Williams e Seeger (2001). Usando o método Nystroem para acelerar máquinas do kernel.
Rahimi e Recht (2007). Recursos aleatórios para máquinas de kernel em larga escala.
Menon (2009) . Máquinas de vetores de suporte em larga escala: algoritmos e teoria.