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.).
la source
Réponses:
SVM est un classificateur puissant. Il a quelques avantages intéressants (qui, je suppose, sont responsables de sa popularité) ... Ce sont:
Il existe également des inconvénients importants.
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.
Un classificateur très efficace, qui est très populaire de nos jours, est la forêt aléatoire . Les principaux avantages sont:
la source
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.
la source