web-dev-qa-db-fra.com

SVM et réseau de neurones

Quelle est la différence entre SVM et réseau de neurones? Est-il vrai que svm linéaire est identique à NN, et pour les problèmes séparables non linéaires, NN utilise l’ajout de couches masquées et SVM utilise des dimensions d’espace changeantes?

29
CoyBit

Il y a deux parties à cette question. La première partie est "quelle est la forme de fonction apprise par ces méthodes?" Pour NN et SVM, il en va généralement de même. Par exemple, un seul réseau de neurones à couche cachée utilise exactement la même forme de modèle qu'un SVM. C'est:

Avec un vecteur d'entrée x, la sortie est la suivante: Output (x) = sum_over_all_i weight_i * nonlinear_function_i (x)

Généralement, les fonctions non linéaires auront également certains paramètres. Ces méthodes doivent donc apprendre combien de fonctions non linéaires doivent être utilisées, quels sont leurs paramètres et quelle doit être la valeur de tous les poids weight_i.

Par conséquent, la différence entre un SVM et un NN réside dans la manière dont ils décident de définir ces paramètres. Habituellement, lorsque quelqu'un dit qu'il utilise un réseau de neurones, il essaie de trouver les paramètres qui minimisent l'erreur de prédiction quadratique moyenne par rapport à un ensemble d'exemples de formation. Pour ce faire, ils utiliseront presque toujours l'algorithme d'optimisation stochastic gradient descente . Les SVM, d’autre part, essaient de minimiser à la fois les erreurs d’entraînement et une certaine mesure de la "complexité des hypothèses". Ils trouveront donc un ensemble de paramètres qui correspondent aux données, mais qui sont aussi "simples" dans un sens. Vous pouvez penser à cela comme au rasoir Occam pour l'apprentissage automatique. L'algorithme d'optimisation le plus couramment utilisé avec les SVM est l'optimisation minimale séquentielle .

Une autre grande différence entre les deux méthodes est qu’il n’est pas garanti que la descente de gradient stochastique trouve le jeu de paramètres optimal lorsqu’elle est utilisée de la même manière que les implémentations NN. Cependant, toute implémentation SVM décente trouvera le jeu de paramètres optimal. Les gens aiment dire que les réseaux de neurones restent bloqués dans des minima locaux, contrairement aux SVM. 

43
Davis King

Les NN sont heuristiques, alors que les SVM sont théoriquement fondés. Un SVM est assuré de converger vers la meilleure solution au sens PAC (probablement à peu près correct). Par exemple, pour deux classes séparables linéairement, SVM dessinera l'hyperplan séparateur directement à mi-chemin entre les points les plus proches des deux classes (elles deviennent vecteurs de support ). Un réseau de neurones tracerait n'importe quelle ligne séparant les échantillons, ce qui est correct pour l'ensemble d'apprentissage, mais peut ne pas avoir les meilleures propriétés de généralisation.

Donc non, même pour des problèmes séparables linéairement, les NN et les SVM ne sont pas identiques.

Dans le cas de classes linéairement non séparables, les SVM et les NN appliquent une projection non linéaire dans un espace de dimension supérieure. Dans le cas des NN, ceci est réalisé en introduisant des neurones supplémentaires dans la ou les couches cachées. Pour les SVM, la fonction kernel est utilisée pour le même effet. Une caractéristique intéressante de la fonction du noyau est que la complexité de calcul n’augmente pas avec le nombre de dimensions, alors qu’elle augmente évidemment avec le nombre de neurones.

22
Igor F.

Effectuer une simple comparaison prête à l'emploi entre les machines à vecteurs de support et les réseaux de neurones (SANS sélection de paramètres) sur plusieurs jeux de données de régression et de classification populaires illustre les différences pratiques: des vecteurs de support sont créés alors que la vitesse de prédiction sur le réseau neuronal est bien supérieure et la taille du modèle beaucoup plus petite. Par contre, le temps d’entraînement est beaucoup plus court pour les SVM. En ce qui concerne la précision/la perte - malgré les inconvénients théoriques des réseaux de neurones évoqués plus haut - les deux méthodes sont identiques - en particulier pour les problèmes de régression, les réseaux de neurones sont souvent plus performants que les machines à vecteurs de support. Selon votre problème, cela peut aider à choisir le bon modèle. 

11
Fluchtpunkt

SVM et NN ont le même bloc que Perceptron, mais SVM utilise également une astuce du noyau pour augmenter la dimension de disons 2 à 3d par une traduction telle que Y = (x1,2, ... peut séparer linéairement les plaines inséparables en utilisant une ligne droite. veux une démo comme ça et demande moi :)

1
Pradi KL

Pratiquement, la plupart de vos hypothèses sont souvent tout à fait vraies. Je vais élaborer: pour les classes séparables linéaires, SVM linéaire fonctionne assez bien et il est beaucoup plus rapide de s’entraîner. Pour les classes non linéaires, l'astuce du noyau consiste à envoyer vos données dans un espace de dimension supérieure. Cette astuce présente toutefois deux inconvénients par rapport à NN. Premièrement, vous devez rechercher les bons paramètres, car le classificateur ne fonctionnera que si, dans la dimension supérieure, les deux ensembles sont séparables linéairement. Maintenant, les tests de paramètres sont souvent effectués par une recherche sur grille qui prend beaucoup de temps CPU. L’autre problème est que toute cette technique n’est pas aussi générale que NN (par exemple, pour la PNL si le classificateur est souvent médiocre).

0
user1854182