Réseaux de neurones vs machines à vecteurs de support: les deuxièmes sont-ils définitivement supérieurs?

52

De nombreux auteurs d'articles que j'ai lus affirment que les SVM sont une technique supérieure pour faire face à leur problème de régression / classification, sachant qu'ils ne pourraient pas obtenir de résultats similaires via les NN. Souvent, la comparaison indique que

SVM, au lieu de NN,

  • Avoir une théorie fondatrice forte
  • Atteindre l'optimum global grâce à la programmation quadratique
  • Ne pas avoir de problème pour choisir un nombre approprié de paramètres
  • Sont moins enclins à sur-adapter
  • Nécessite moins de mémoire pour stocker le modèle prédictif
  • Produire des résultats plus lisibles et une interprétation géométrique

Est-ce sérieusement une pensée largement acceptée? Ne citez pas le théorème du déjeuner gratuit ou des affirmations similaires, ma question porte sur l’utilisation pratique de ces techniques.

De l’autre côté, quel genre de problème abstrait vous affronteriez avec NN?

stackovergio
la source
4
Je pense que la question pourrait être un peu large. Mais dans la pratique, les NN semblent être beaucoup plus ajustables avec le choix de la structure NN, alors que les SVM ont moins de paramètres. Il y a deux questions, si un NN était configuré de manière optimale pour résoudre un problème, comment se comporterait-il par rapport à SVM? Et entre les mains du praticien moyen, comment se compare SVM à NN?
Patrick Caldon
2
@PatrickCaldon Je comprends votre point de vue, mais plus de paramètres à gérer ne signifie pas toujours meilleur outil, si vous ne savez pas comment les configurer de manière appropriée. Même si possible, une longue étude pourrait être nécessaire; ou, vous pourriez ne pas avoir besoin d'aussi large tunability pour les besoins de votre applciation
stackovergio
1
c'est mon point. Quelle question, comment l'outil fonctionne-t-il dans des circonstances idéales sur des problèmes particuliers? ou comment l'outil fonctionne-t-il pour la plupart des gens la plupart du temps? Je pense que l'élément le plus important ici est la personne d'ailleurs. Pour cette raison, je pense que les facteurs pertinents sont souvent les suivants: combien chaque outil est-il difficile à apprendre? Y a-t-il des experts autour qui savent comment l'utiliser? etc. Cela peut expliquer beaucoup de "j'ai eu une bonne performance de X"
Patrick Caldon
1
D'après ce que je sais, les anneaux multicouches à anticipation sont des approximateurs universels plus ou moins indépendants de la fonction d'activation. Je ne suis pas au courant d'un résultat similaire pour SVM qui dépend beaucoup plus de ma connaissance de la fonction du noyau utilisée.
Momo
2
En pratique, je trouve les NN un peu plus pratiques en raison du temps de formation. Les SVM non linéaires ne peuvent tout simplement pas très bien gérer les gros N. Les deux algorithmes peuvent surexploiter et nécessitent une forte régularisation.
Shea Parkes

Réponses:

43

C'est une question de compromis. SVM sont en ce moment NNS être utilisés dans . Vous découvrirez un nombre croissant d'articles faisant état de forêts aléatoires, de modèles graphiques probabilistes ou de méthodes bayésiennes non paramétriques . Quelqu'un devrait publier un modèle de prévision dans les Annals of Improbable Research sur les modèles qui seront considérés comme branchés.

Cela étant dit, pour de nombreux problèmes supervisés réputés difficiles, les modèles individuels les plus performants sont un type de NN, un type de SVM ou une méthode de descente de gradient stochastique spécifique au problème mise en œuvre à l'aide de méthodes de traitement du signal.


Avantages de NN:

  • Ils sont extrêmement flexibles dans les types de données qu’ils peuvent prendre en charge. Les NN effectuent un travail décent en apprenant les caractéristiques importantes à partir de toute structure de données, sans avoir à dériver manuellement les caractéristiques.
  • NN bénéficie toujours de l'ingénierie des fonctionnalités, par exemple, vous devriez avoir une fonctionnalité d'aire si vous avez une longueur et une largeur. Le modèle fonctionnera mieux pour le même effort de calcul.

  • La plupart des apprentissages automatisés supervisés vous obligent à structurer vos données dans une matrice d'observations par caractéristiques, avec les étiquettes comme vecteur d'observations de longueur. Cette restriction n'est pas nécessaire avec NN. Il existe un travail fantastique avec des SVM structurés, mais il est peu probable que ce soit aussi flexible que les NN.


Avantages de SVM:

  • Moins d'hyperparamètres. En général, les SVM nécessitent moins de recherche sur la grille pour obtenir un modèle raisonnablement précis. SVM avec un noyau RBF fonctionne généralement assez bien.

  • Optimal global garanti.


Inconvénients de NN et SVM:

  • Dans la plupart des cas, il s’agit de boîtes noires. Il y a des recherches sur l'interprétation des SVM, mais je doute que ce soit un jour aussi intuitif que les GLM. C'est un problème grave dans certains domaines problématiques.
  • Si vous acceptez une boîte noire, vous pouvez généralement obtenir un peu plus de précision en ensachant / empilant / renforçant de nombreux modèles avec différents compromis.

    • Les forêts aléatoires sont attrayantes, car elles peuvent produire des prévisions hors du sac (prédictions laissez-le-un) sans effort supplémentaire, elles sont très interprétables, elles offrent un bon compromis biais-variance (idéal pour les modèles d'ensachage) et sont relativement robustes au biais de sélection. Stupidement simple d'écrire une implémentation parallèle de.

    • Les modèles graphiques probabilistes sont attrayants, car ils peuvent incorporer directement des connaissances spécifiques à un domaine et sont interprétables à cet égard.

    • Les méthodes bayésiennes non paramétriques (ou vraiment extrêmement paramétriques) sont attrayantes car elles produisent directement des intervalles de confiance. Ils fonctionnent très bien sur des échantillons de petite taille et très bien sur des échantillons de grande taille. Stupidement simple d'écrire une implémentation d'algèbre linéaire de.

Jessica Mick
la source
41
Avec la montée récente de l'apprentissage en profondeur, les NN peuvent être considérés comme plus importants que les SVM, dirais-je.
bayerj
30

D'après mon expérience, la réponse à votre question est "non", les SVM ne sont pas vraiment supérieurs, et ce qui fonctionne le mieux dépend de la nature du jeu de données en question et de la compétence relative de l'opérateur avec chaque jeu d'outils. En général, les SVM sont bons parce que l'algorithme d'apprentissage est efficace et qu'il a un paramètre de régularisation, ce qui vous oblige à penser à la régularisation et à la correction. Cependant, il existe des jeux de données dans lesquels les MLP offrent des performances bien meilleures que les SVM (car ils sont autorisés à choisir leur propre représentation interne, au lieu de la spécifier préalablement par la fonction du noyau). Une bonne mise en œuvre des MLP (par exemple, NETLAB) et une régularisation ou un arrêt précoce ou une sélection d'architecture (ou mieux, les trois) peuvent souvent donner de très bons résultats et être reproductibles (du moins en termes de performances).

La sélection de modèle est le problème majeur des SVM: choisir le noyau et optimiser les paramètres de régularité et de noyau peuvent souvent conduire à une sur-adaptation sévère si vous sur-optimisez le critère de sélection de modèle. Bien que la théorie sous-jacente au SVM soit un confort, la plupart ne s’applique qu’à un noyau fixe. Ainsi, dès que vous essayez d’optimiser les paramètres du noyau, elle ne s’applique plus (par exemple, le problème d’optimisation à résoudre lors de l’ajustement du noyau). généralement non convexe et peut avoir des minima locaux).

Dikran Marsupial
la source
7
Je suis entièrement d'accord avec cela. Je forme actuellement des SVM et des ANN sur des données d'interface cerveau-ordinateur. Il existe certains ensembles de données où les SVM sont meilleurs et certains ensembles de données où les ANN sont meilleurs. Ce qui est intéressant, c’est que lorsque les performances sont moyennes pour tous les jeux de données que j’utilise, les SVM et les ANN atteignent exactement les mêmes performances. Bien sûr, ce n'est pas une preuve. C'est juste une anecdote. :)
alfa
27

Je vais juste essayer d'expliquer mon opinion qui semblait être partagée par la plupart de mes amis. J'ai des préoccupations concernant NN qui ne concernent pas du tout SVM:

  1. Dans un NN classique, la quantité de paramètres est extrêmement élevée. Supposons que vous ayez les vecteurs de la longueur 100 que vous souhaitez classer en deux classes. Une couche cachée de la même taille qu'une couche d'entrée vous mènera à plus de 100 000 paramètres libres. Imaginez simplement à quel point vous pouvez suralimenter (comme il est facile de tomber au minimum local dans un tel espace), et combien de points de formation vous aurez besoin pour éviter cela (et combien de temps il vous faudra alors pour vous entraîner).
  2. Habituellement, vous devez être un véritable expert pour choisir la topologie d’un coup d’œil. Cela signifie que si vous voulez obtenir de bons résultats, vous devez effectuer de nombreuses expériences. C'est pourquoi il est plus facile d'utiliser SVM et de dire que vous ne pouvez pas obtenir de résultats similaires avec NN.
  3. Les résultats NN ne sont généralement pas reproductibles. Même si vous exécutez votre entraînement NN à deux reprises, vous obtiendrez probablement des résultats différents en raison du caractère aléatoire d'un algorithme d'apprentissage.
  4. Habituellement, vous n'avez aucune interprétation des résultats. C'est une petite préoccupation, mais de toute façon.

Cela ne signifie pas que vous ne devez pas utiliser NN, vous devez simplement l'utiliser avec précaution. Par exemple, NN par convolution peut être extrêmement efficace pour le traitement des images, tandis que l’autre Deep NN s’est également avéré bénéfique pour d’autres problèmes.

J'espère que ça va aider.

Dmitry Laptev
la source
2
Pour rendre les résultats ANN reproductibles, ensemencez la fonction aléatoire.
Franck Dernoncourt
@Franck Ce n'est pas une reproductibilité réelle.
santé mentale
17

J'utilise des réseaux de neurones pour la plupart des problèmes. Le fait est que dans la plupart des cas, il s'agit davantage de l'expérience de l'utilisateur que du modèle. Voici quelques raisons pour lesquelles j'aime les NN.

  1. Ils sont flexibles. Je peux leur infliger la perte que je veux: perte de charnière, carré, entropie croisée, nommez-le. Tant qu'il est différentiable, je peux même concevoir une perte qui correspond exactement à mes besoins.
  2. Ils peuvent être traités de manière probabiliste: réseaux de neurones bayésiens, Bayes variationnelles, MLE / MAP, tout y est. (Mais dans certains cas, plus difficile.)
  3. Ils sont rapides. La plupart des MLP seront deux multiplications matricielles et un composant non linéaire appliqué sagement entre les deux. Battez cela avec un SVM.

Je passerai en revue vos autres points étape par étape.

Avoir une théorie fondatrice forte

Je dirais que les NN sont également forts dans ce cas: puisque vous les formez dans un cadre probabiliste. Cela permet l'utilisation de priors et d'un traitement bayésien (par exemple avec des techniques variationnelles ou des approximations).

Atteindre l'optimum global grâce à la programmation quadratique

Pour un ensemble d'hyperparamètres. Cependant, la recherche de bons hps n’est pas convexe et vous ne saurez pas non plus si vous avez trouvé l’optimum global.

Ne pas avoir de problème pour choisir un nombre approprié de paramètres

Avec les SVM, vous devez également sélectionner des paramètres hyper.

Nécessite moins de mémoire pour stocker le modèle prédictif

Vous devez stocker les vecteurs de support. Les SVM ne seront généralement pas meilleur marché pour stocker des MLP, cela dépend des cas.

Produire des résultats plus lisibles et une interprétation géométrique

La couche supérieure d'une MLP est une régression logistique dans le cas de la classification. Ainsi, il existe une interprétation géométrique (séparant l'hyper plan) et une interprétation probabiliste.

Bayerj
la source
Pourquoi dois-je stocker des vecteurs de support? N'est-il pas suffisant de stocker l'hyperplan / le marquage de SVM?
Julian
En effet, l'hyperplan est représenté par des vecteurs de support. Pour calculer la distance d'un nouveau point à partir de celui-ci, vous allez iteratore sur ceux-ci.
Bayerj
0

À certains égards, ces deux grandes catégories de techniques d’apprentissage automatique sont liées. Bien que n'étant pas parfaits, deux articles que j'ai trouvés utiles pour montrer les similitudes entre ces techniques sont présentés ci-dessous.

Ronan Collobert et Samy Bengio. 2004. Liens entre les perceptrons, les MLP et les SVM. Dans Actes de la vingt et unième conférence internationale sur le Machine learning (ICML '04). ACM, New York, NY, États-Unis, 23-. DOI: https://doi.org/10.1145/1015330.1015415

et

Andras, Peter. (2002). L’équivalence des réseaux de neurones de régularisation et de la machine à vecteurs de support. Traitement neural des lettres. 15. 97-104. 10.1023 / A: 1015292818897.

Paul
la source