Les machines à vecteurs de support sont-elles toujours considérées comme «à la pointe de la technologie» dans leur créneau?

58

Cette question est en réponse à un commentaire que j'ai vu sur une autre question.

Le commentaire concernait le programme de cours de Machine Learning sur Coursera, dans le sens suivant: "Les SVM ne sont plus autant utilisés de nos jours".

Je viens juste de terminer moi-même les cours pertinents, et je crois comprendre que les SVM sont un algorithme d’apprentissage robuste et efficace pour la classification et que, lorsqu’ils utilisent un noyau, ils disposent d’une "niche" couvrant un nombre de fonctionnalités pouvant aller de 10 à 1000 et nombre d'échantillons d'apprentissage, peut-être 100 à 10 000. La limite imposée aux échantillons d'apprentissage est due au fait que l'algorithme principal consiste à optimiser les résultats générés à partir d'une matrice carrée dont les dimensions sont basées sur le nombre d'échantillons d'apprentissage et non sur le nombre de caractéristiques d'origine.

Le commentaire que j’ai vu fait référence à de réels changements depuis la formation, et dans l’affirmative, qu’est-ce qui change? Un nouvel algorithme qui couvre aussi bien le "point idéal" de SVM, de meilleurs processeurs signifiant que les avantages informatiques de SVM ne valent pas autant. ? Ou est-ce peut-être l'opinion ou l'expérience personnelle du commentateur?

J'ai essayé une recherche, par exemple, "sont des machines à vecteurs de support démodées" et je n'ai rien trouvé qui implique qu'ils ont été abandonnés au profit de rien d'autre.

Et Wikipedia a ceci: http://en.wikipedia.org/wiki/Support_vector_machine#Issues . . . le principal point de blocage semble être la difficulté d'interprétation du modèle. Ce qui rend SVM très bien pour un moteur de prédiction de type boîte noire, mais moins pour générer des informations. Je ne vois pas cela comme un problème majeur, mais comme un élément mineur à prendre en compte lors du choix du bon outil pour le travail (avec la nature des données de formation et la tâche d'apprentissage, etc.).

Neil Slater
la source
6
Je ne comprends pas. N'est-ce pas une question qui devrait être postée sur CrossValidated? Je continue de ne pas savoir ce qui se passe entre DataScience et CrossValidated.
Fin
@fnl: svms a de la concurrence en tant que classificateurs issus de solutions d'ingénierie moins "purement mathématiques", je pense donc que DataScience est dans une meilleure position pour faire la comparaison ici. Bien que je partage votre confusion!
Neil Slater

Réponses:

47

SVM est un classificateur puissant. Il a quelques avantages intéressants (qui, je suppose, sont responsables de sa popularité) ... Ce sont:

  • Efficacité: seuls les vecteurs de support jouent un rôle dans la détermination de la limite de classification. Tous les autres points de l'ensemble d'apprentissage n'ont pas besoin d'être stockés en mémoire.
  • La soi-disant puissance des noyaux: avec les noyaux appropriés, vous pouvez transformer l'espace des fonctions en une dimension plus élevée, de sorte qu'il devienne séparable de manière linéaire. La notion de noyaux fonctionne avec des objets arbitraires sur lesquels vous pouvez définir une notion de similarité à l'aide de produits internes ... et donc les SVM peuvent classer des objets arbitraires tels que des arbres, des graphes, etc.

Il existe également des inconvénients importants.

  • Sensibilité des paramètres: les performances sont très sensibles au choix du paramètre de régularisation C, ce qui permet une certaine variance dans le modèle.
  • Paramètre supplémentaire pour le noyau gaussien: Le rayon du noyau gaussien peut avoir un impact significatif sur la précision du classificateur. En règle générale, une recherche sur la grille doit être effectuée pour trouver les paramètres optimaux. LibSVM prend en charge la recherche sur grille.

Les SVM appartiennent généralement à la classe des "machines à noyau fragmenté". Les vecteurs clairsemés dans le cas de SVM sont les vecteurs de support qui sont choisis parmi le critère de marge maximale. D'autres machines à vecteurs épars telles que la machine à vecteur de pertinence (RVM) fonctionnent mieux que la SVM. La figure suivante montre une performance comparative des deux. Sur la figure, l'axe des x montre une donnée dimensionnelle de deux classes y = {0,1}. Le modèle de mélange est défini comme suit: P (x | y = 0) = Unif (0,1) et P (x | y = 1) = Unif (0,5,1,5) (Unif désigne une distribution uniforme). 1000 points ont été échantillonnés à partir de ce mélange et un SVM et un RVM ont été utilisés pour estimer le postérieur. Le problème de la SVM est que les valeurs prédites sont loin de la vraie cote du journal.

RVM vs SVM

Un classificateur très efficace, qui est très populaire de nos jours, est la forêt aléatoire . Les principaux avantages sont:

  • Un seul paramètre à régler (le nombre d'arbres dans la forêt)
  • Pas tout à fait sensible aux paramètres
  • Peut facilement être étendu à plusieurs classes
  • Est basé sur des principes probabilistes (maximisation du gain d'informations mutuelles à l'aide d'arbres de décision)
Debasis
la source
4
Je ne veux pas être trop critique, mais les SVM ne sont PAS efficaces. Dans la plupart des cas, ils ont une complexité cubique, ce qui explique leur élimination progressive.
indico
2
oui, les méthodes de convergence standard prennent O (n ^ 3) ... mais je pense avoir vu quelque part (peut-être depuis la page d'accueil de T. Joachims) qu'il a été réduit à O (n ^ 2)
Debasis
4
@indico pour la plupart des problèmes pratiques, la complexité de la formation en SVM du noyau est plus proche du quadratique. Le SMO cubique de Platt est hors d’usage depuis un certain temps. C'est encore trop élevé pour des ensembles de données vraiment volumineux, mais ce n'est pas aussi grave que ce que vous décrivez. Le SVM linéaire est très efficace, avec une complexité sous-linéaire.
Marc Claesen
Autres avantages des SVM: 1) Leur fonctionnement interne peut être bien imaginé par des personnes moins familiarisées avec l’analyse de données. [et dans une moindre mesure: 2) Si un retour interactif en temps réel par un expert (non scientifique) est requis, les SVM linéaires peuvent être une option plus rapide - entraînant une meilleure formation par des experts.]
mercredi
2
Les forêts aléatoires ont généralement d'autres hyperparamètres, tels que le nombre maximal d'entités par arbre et la profondeur maximale. Il convient également de noter que les SVM sont faciles à mettre en production dans des environnements aux ressources limitées - ils n'ont pas besoin de beaucoup de mémoire pour évaluer le modèle.
David Anderson
8

En répondant à cette question, une distinction importante à faire est de savoir s’il s’agit de machines à vecteurs de support linéaires ou non linéaires , c’est-à-dire de machines à vecteurs de support kernelisées.

SVM linéaires

Les SVM linéaires sont en théorie et en pratique de très bons modèles lorsque vos données peuvent être expliquées par des relations linéaires de vos entités. Elles sont supérieures aux méthodes classiques telles que la régression linéaire (ou moindres carrés) parce qu'elles sont robustes , en ce sens que de petites perturbations dans les données d'entrée ne produisent pas de changements significatifs dans le modèle. Pour ce faire, essayez de trouver la ligne (hyperplan) qui maximise les marges entre vos points de données. Il a été démontré que cet hyperplan de marge maximale donnait des garanties sur la capacité de généralisation du modèle par rapport à des points de données invisibles, propriété théorique absente des autres méthodes d'apprentissage automatique.

Les SVM linéaires sont également interprétables comme tout autre modèle linéaire, car chaque entité en entrée a une pondération qui influence directement la sortie du modèle.

De plus, les SVM linéaires sont très rapides à former, affichant les temps de formation sous- linéaires pour de très grands ensembles de données. Ceci est réalisé en utilisant des techniques de descente de gradient stochastiques, très semblables aux méthodes d'apprentissage en profondeur actuelles.

SVM non linéaires

Les SVM non linéaires sont toujours des modèles linéaires et offrent les mêmes avantages théoriques, mais ils utilisent la soi-disant astuce du noyau pour construire ce modèle linéaire sur un espace élargi. Le résultat visible est que le modèle résultant peut prendre des décisions non linéaires sur vos données. Étant donné que vous pouvez fournir un noyau personnalisé ressemblant aux codages d'encodage entre les points de données, vous pouvez utiliser la connaissance du problème pour le focaliser sur les parties pertinentes de votre problème. Cela peut toutefois s'avérer difficile, si bien que presque tout le monde utilise le noyau gaussien plug-and-play.

Les SVM non linéaires sont partiellement interprétables, car ils vous indiquent quelles données d’apprentissage sont pertinentes pour la prédiction et lesquelles ne le sont pas. Cela n'est pas possible pour d'autres méthodes telles que les forêts aléatoires ou les réseaux profonds.

Malheureusement, les SVM non linéaires sont lents. L'algorithme à la pointe de la technologie est l' optimisation minimale en séquence , qui affiche des performances quadratiques, et est largement implémenté via la bibliothèque LIBSVM dans un certain nombre de bibliothèques d'apprentissage automatique, y compris scikit-learn.

Popularité de ces méthodes

Il est vrai que les SVM ne sont plus aussi populaires qu’auparavant: cela peut être vérifié en recherchant des articles de recherche ou des implémentations pour les SVM par rapport aux méthodes Random Forests ou Deep Learning. Néanmoins, ils sont utiles dans certains contextes pratiques, spécialement dans le cas linéaire.

N'oubliez pas non plus qu'en raison du théorème du sans-déjeuner, aucune méthode d'apprentissage automatique ne peut être supérieure à toutes les autres. Bien que certaines méthodes fonctionnent mieux en général, vous trouverez toujours des jeux de données pour lesquels une méthode moins courante donnera de meilleurs résultats.

Albarji
la source