Comme vous le mentionnez, le stockage de la matrice du noyau nécessite une mémoire qui évolue de manière quadratique avec le nombre de points de données. Le temps de formation pour les algorithmes SVM traditionnels évolue également de manière superlinéaire avec le nombre de points de données. Donc, ces algorithmes ne sont pas réalisables pour les grands ensembles de données.
Une astuce possible consiste à reformuler un SVM noyaué en un SVM linéaire. Chaque élément de la matrice du noyau représente le produit scalaire entre les points de données et après les avoir (éventuellement de manière non linéaire) dans un espace caractéristique: . La cartographie de l'espace des fonctionnalitésKje jXjeXjKje j= Φ ( xje) ⋅ Φ ( xj)Φest défini implicitement par la fonction noyau, et les SVM noyés ne calculent pas explicitement les représentations de l'espace des fonctionnalités. Ceci est efficace sur le plan des calculs pour les ensembles de données de petite à moyenne taille, car l'espace d'entité peut être de dimension très élevée, voire infinie. Mais, comme ci-dessus, cela devient impossible pour les grands ensembles de données. Au lieu de cela, nous pouvons explicitement mapper les données de manière non linéaire dans l'espace d'entités, puis former efficacement un SVM linéaire sur les représentations de l'espace d'entités. Le mappage de l'espace des fonctionnalités peut être construit pour approximer une fonction de noyau donnée, mais utilise moins de dimensions que le mappage de l'espace des fonctionnalités «complet». Pour les grands ensembles de données, cela peut toujours nous donner des représentations d'espace d'entités riches, mais avec beaucoup moins de dimensions que les points de données.
Une approche de l'approximation du noyau utilise l'approximation de Nyström (Williams et Seeger 2001). C'est une façon d'approximer les valeurs propres / vecteurs propres d'une grande matrice en utilisant une sous-matrice plus petite. Une autre approche utilise des caractéristiques aléatoires et est parfois appelée «éviers de cuisine aléatoires» (Rahimi et Recht 2007).
Une autre astuce pour entraîner les SVM sur de grands ensembles de données consiste à approximer le problème d'optimisation avec un ensemble de sous-problèmes plus petits. Par exemple, l'utilisation d'une descente de gradient stochastique sur le problème primaire est une approche (parmi tant d'autres). Beaucoup de travail a été fait sur le front de l'optimisation. Menon (2009) donne une bonne enquête.
Les références
Williams et Seeger (2001). Utilisation de la méthode Nystroem pour accélérer les machines du noyau.
Rahimi et Recht (2007). Fonctionnalités aléatoires pour les machines à noyau à grande échelle.
Menon (2009) . Machines à vecteurs de support à grande échelle: algorithmes et théorie.