Est-ce que Support Vector Machines encore considéré comme « état de l'art » dans leur niche?

datascience.stackexchange https://datascience.stackexchange.com/questions/711

Question

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

Le commentaire a été en ce qui concerne le programme de cours d'apprentissage automatique sur Coursera, et le long des lignes de « SVM ne sont pas utilisés tant de nos jours ».

Je viens juste de terminer les conférences pertinentes moi-même et ma compréhension de SVM est qu'ils sont un algorithme d'apprentissage robuste et efficace pour la classification, et que lors de l'utilisation d'un noyau, ils ont une « niche » couvrant nombre de caractéristiques peut-être 10 à 1000 et le nombre d'échantillons de formation peut-être 100 à 10 000. La limite sur des échantillons de formation est que les tourne de l'algorithme de base autour de l'optimisation des résultats générés à partir d'une matrice carrée dont les dimensions en fonction du nombre d'échantillons de formation, pas certain nombre de caractéristiques originales.

fait le commentaire que j'ai vu se référer un changement réel depuis le cours a été fait, et si oui, quel est ce changement: Un nouvel algorithme qui couvre « sweet spot » de SVM aussi bien, de meilleurs processeurs qui signifie des avantages de calcul de SVM ne sont pas vaut autant? Ou est-ce peut-être l'opinion ou l'expérience personnelle de l'intervenant?

J'ai essayé une recherche par exemple « Sont des machines de support vecteur de mode » et rien trouvé à entendre qu'ils étaient abandonnées au profit de quoi que ce soit d'autre.

Wikipedia a ceci: http://en.wikipedia.org/wiki/Support_vector_machine#Issues . . . le principal point d'achoppement semble être la difficulté d'interpréter le modèle. Ce qui fait bien MVB pour une boîte noire moteur prédiction, mais pas si bon pour générer des idées. Je ne vois pas cela comme un problème majeur, juste une autre chose mineure à prendre en compte lors de la sélection de l'outil pour le travail (ainsi que la nature des données de formation et tâche d'apprentissage, etc.).

Était-ce utile?

La solution

est un classificateur SVM puissant. Il a quelques beaux avantages (que je suppose étaient responsables de sa popularité) ... Ce sont:

  • Efficacité: Seuls les vecteurs de soutien jouent un rôle dans la détermination de la limite de classification. Tous les autres points de l'ensemble de la formation n'a pas besoin d'être stockées dans la mémoire.
  • Le soi-disant puissance de noyaux: Avec les noyaux appropriés, vous pouvez transformer l'espace en fonction d'une dimension supérieure pour qu'elle devienne linéairement séparables. La notion de noyaux avec des objets arbitraires travail sur lequel vous pouvez définir une notion de similitude avec l'aide de produits internes ... et donc peut classer des objets SVM arbitraires tels que des arbres, des graphiques, etc.

Il y a quelques inconvénients importants aussi bien.

  • sensibilité des paramètres: La performance est très sensible au choix du paramètre de régularisation C, ce qui permet une certaine variation 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. Généralement, une grille de recherche doit être menée pour trouver les paramètres optimaux. Libsvm a un support pour la recherche de la grille.

SVM généralement appartiennent à la classe des « Sparse Machines noyau ». Les vecteurs épars dans le cas des SVM sont les vecteurs de support qui sont choisis parmi le critère de marge maximale. D'autres machines rares vecteurs tels que le (RVM) Pertinence Vector Machine de meilleures performances que SVM. La figure suivante montre une performance comparative des deux. Dans la figure, l'axe des abscisses représente une donnée dimensionnels de deux classes y = {0,1}. Le modèle de mélange est défini comme P (x | y = 0) = Unif (0,1) et P (x | y = 1) = Unif (.5,1.5) (Unif désigne une distribution uniforme). 1000 points ont été échantillonnés à partir de ce mélange et une SVM et un RVM ont été utilisés pour estimer le postérieur. Le problème est que de SVM les valeurs prévues sont loin des vraies chances du journal.

RVM vs SVM

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

  • Un seul paramètre à régler (à savoir le nombre d'arbres dans la forêt)
  • Pas tout à fait sensible paramètre
  • peut facilement être étendu à plusieurs classes
  • repose sur des principes probabilistes (maximiser le gain d'information mutuelle avec l'aide des arbres de décision)

Autres conseils

Pour répondre à cette question une distinction importante à faire est de savoir si nous parlons de linéaire Support Vector Machines ou non linéaire , qui est, kernelized Support Vector Machines.

linéaire SVM

linéaires sont tous les deux SVM dans la théorie et la pratique de très bons modèles lorsque vos données peuvent être expliquées par des relations linéaires de vos fonctions. Ils sont supérieurs par rapport aux méthodes classiques comme linéaire (appelés également moindres carrés) régression parce qu'ils sont robuste , en ce sens que les petites perturbations dans les données d'entrée ne produisent pas de changements significatifs dans le modèle. Ceci est atteint en essayant de trouver la ligne (hyperplan) qui maximise la entre vos points de données. Cette marge maximale hyperplan a été montré pour donner des garanties sur la capacité de généralisation du modèle sur les points de données invisibles, une propriété théorique d'autres méthodes d'apprentissage de la machine manque de.

linéaires SVM sont également interprétable comme un autre modèle linéaire, étant donné que chaque élément d'entrée a un poids qui influe directement sur la sortie du modèle.

De plus SVMs linéaires sont très rapide pour former, montrant les temps de formation sublineal pour des jeux de données très volumineux. Ceci est réalisé en utilisant des techniques de descente de gradient stochastique, beaucoup de la mode des méthodes d'apprentissage en profondeur actuelle.

SVM non linéaire

SVM non linéaires sont encore des modèles linéaires, et se vanter les mêmes avantages théoriques, mais ils emploient le soi-disant truc kernel pour construire ce modèle linéaire sur un espace élargi. Le résultat visible est que le modèle qui en résulte peut prendre des décisions non-linéaires sur vos données. Étant donné que vous pouvez fournir un noyau codage personnalisé similitudes entre les points de données, vous pouvez utiliser la connaissance des problèmes pour faire cette mise au point du noyau dans les parties pertinentes de votre problème. Faire cela efficacement, cependant, peut être difficile, donc en général presque tout le monde utilise le plug-and-play noyau gaussienne.

SVM non linéaires sont partiellement interprétable, comme ils vous disent que les données de formation sont pertinentes pour la prévision, et qui ne sont pas. Ceci est impossible pour d'autres méthodes telles que les forêts aléatoires ou réseaux profonds.

Malheureusement, SVM non linéaires sont lents. L'état de l'art algorithme est Optimisation séquentielle minimale , qui montre la performance du second degré, et est largement mis en œuvre à travers le la bibliothèque de lIBSVM dans plusieurs bibliothèques d'apprentissage machine scikit-learn inclus.

Popularité de ces méthodes

Il est vrai que SVM ne sont pas si populaires qu'ils l'habitude d'être: cela peut être vérifié par googler documents de recherche ou mises en œuvre pour SVM contre les forêts aléatoires ou profondes méthodes d'apprentissage. Pourtant, ils sont utiles dans certains contextes pratiques, en particulier dans le cas linéaire.

De plus, gardez à l'esprit qu'en raison de la méthode d'apprentissage machine à ne théorème pas sans déjeuner peut être montré supérieur à tout autre sur tous les problèmes. Alors que certaines méthodes fonctionnent mieux en général, vous trouverez toujours des ensembles de données où une méthode pas si commune va obtenir de meilleurs résultats.

scroll top