Quels sont les avantages des réseaux de neurones artificiels par rapport aux machines à vecteurs de support? [fermé]

381

ANN (Artificial Neural Networks) et SVM (Support Vector Machines) sont deux stratégies populaires pour l'apprentissage automatique et la classification supervisés. Il n'est pas souvent clair quelle méthode est la meilleure pour un projet particulier, et je suis certain que la réponse est toujours "cela dépend". Souvent, une combinaison des deux avec la classification bayésienne est utilisée.

Ces questions sur Stackoverflow ont déjà été posées concernant ANN vs SVM:

Classification ANN et SVM

quelle est la différence entre ANN, SVM et KNN dans ma question de classification

Soutenir la machine vectorielle ou le réseau neuronal artificiel pour le traitement de texte?

Dans cette question, j'aimerais savoir précisément quels aspects d'un ANN (en particulier, un Perceptron multicouche) pourraient rendre souhaitable l'utilisation sur un SVM? La raison pour laquelle je pose la question est qu'il est facile de répondre à la question opposée : les machines à vecteurs de support sont souvent supérieures aux ANN car elles évitent deux faiblesses majeures des ANN:

(1) Les RNA convergent souvent sur des minima locaux plutôt que sur des minima globaux, ce qui signifie qu'ils "manquent généralement de vue d'ensemble" parfois (ou manquent la forêt pour les arbres)

(2) Les RNA sont souvent trop adaptés si l'entraînement dure trop longtemps, ce qui signifie que pour un motif donné, un RNA peut commencer à considérer le bruit comme faisant partie du motif.

Les SVM ne souffrent d'aucun de ces deux problèmes. Cependant, il n'est pas évident que les SVM sont censés remplacer totalement les ANN. Alors, quel (s) avantage (s) spécifique (s) un RNA a-t-il sur un SVM qui pourrait le rendre applicable à certaines situations? J'ai énuméré les avantages spécifiques d'un SVM par rapport à un ANN, maintenant j'aimerais voir une liste des avantages ANN (le cas échéant).

Channel72
la source
61
Malheureusement, cela sera probablement fermé ou déplacé bientôt, mais j'aime vraiment la question. Je ne voudrais rien de mieux que de voir une gamme de réponses réfléchies à celle-ci.
duffymo
10
J'imagine que la plupart des réponses à cette question seront spéculatives ou basées sur des preuves, car il y a très peu de garanties théoriques sur la puissance de ces machines. Par exemple (si je me souviens bien), on ne sait pas si un réseau de neurones à action directe à n couches est plus puissant qu'un réseau à 2 couches. Alors, comment pouvons-nous dire que l'un est meilleur que l'autre en principe si nous ne comprenons même pas les relations entre de légères variations du même modèle?
JeremyKun
13
Il est fermé pour ne pas être très constructif ... Lol!
erogol
65
J'adore le fait que StackOverflow essaie de maintenir la qualité des questions et des réponses à un niveau élevé. Je déteste que StackOverflow applique cela avec une hache au lieu d'un scalpel. Il y a une différence entre demander "comment faire du stuffz HTML?" et une question spécifique au domaine à laquelle il serait difficile de trouver une réponse ailleurs. Il y a une raison pour laquelle il y a 140 votes positifs - mais il est considéré comme "pas constructif". Des questions comme celle-ci sont la quintessence du constructif. Certainement beaucoup plus que beaucoup de ceux que je vois tous les jours qui tombent parfaitement dans le format Q&A tout en étant néanmoins inutiles pour presque tout le monde sauf le demandeur.
Chase Ries
20
C'est évidemment constructif. Je ne comprends pas pourquoi il serait fermé. Il s'agit de situations spécifiques où l'utilisation d'un algorithme présente des avantages par rapport à l'utilisation d'un algorithme alternatif. N'est-ce pas une chose raisonnable à demander?
Rab

Réponses:

137

À en juger par les exemples que vous fournissez, je suppose que par RNA, vous entendez les réseaux de rétroaction multicouches (réseaux FF pour faire court), tels que les perceptrons multicouches, car ceux-ci sont en concurrence directe avec les SVM.

Un avantage spécifique de ces modèles par rapport aux SVM est que leur taille est fixe: ce sont des modèles paramétriques , tandis que les SVM sont non paramétriques. Autrement dit, dans un ANN, vous avez un tas de couches cachées avec des tailles h 1 à h nselon le nombre de fonctionnalités, plus les paramètres de biais, et ceux qui composent votre modèle. En revanche, un SVM (au moins un noyau) se compose d'un ensemble de vecteurs de support, sélectionnés dans l'ensemble d'apprentissage, avec un poids pour chacun. Dans le pire des cas, le nombre de vecteurs de support est exactement le nombre d'échantillons d'apprentissage (bien que cela se produise principalement avec de petits ensembles d'apprentissage ou dans des cas dégénérés) et, en général, sa taille de modèle est linéaire. Dans le traitement du langage naturel, les classificateurs SVM avec des dizaines de milliers de vecteurs de support, chacun ayant des centaines de milliers de fonctionnalités, ne sont pas inconnus.

En outre, la formation en ligne des réseaux FF est très simple par rapport à l'ajustement SVM en ligne, et la prévision peut être un peu plus rapide.

EDIT : tout ce qui précède se rapporte au cas général des SVM noyés. Les SVM linéaires sont un cas particulier dans la mesure où ils sont paramétriques et permettent l'apprentissage en ligne avec des algorithmes simples tels que la descente de gradient stochastique.

Fred Foo
la source
12
Une autre raison peut être trouvée dans cet article: yann.lecun.com/exdb/publis/pdf/bengio-lecun-07.pdf . En bref, l'auteur déclare que les "architectures profondes" peuvent représenter des comportements / fonctions "intelligents", etc. plus efficacement que les "architectures peu profondes" comme les SVM.
alfa
1
Soit dit en passant, l'apprentissage en profondeur perd quelque peu les "avantages" donnés ici pour les MLP (taille fixe, formation plus simple). Je ne suis pas sûr que ces avantages en valent la peine.
Muhammad Alkarouri
6
@MuhammadAlkarouri: l'apprentissage profond est un ensemble assez large de techniques, mais celles que je connais conservent l'avantage des modèles étant paramétriques (taille fixe).
Fred Foo
Deux commentaires: le point de formation en ligne est vrai, mais il existe une variante des classificateurs de type SVM spécialement conçus pour l'apprentissage en ligne, appelés MIRA (un type de classificateur passif-agressif) pour lesquels les mises à jour sont triviales. Deuxièmement, il convient de souligner que de nombreux réseaux de neurones peuvent être formulés en tant que SVM via l'astuce du noyau.
Ben Allison
1
@FredFoo peut également être bloqué dans les minima locaux où, comme vecteur de support, les machines ne sont pas sujettes à ce problème.
touriste
62

Un avantage évident des réseaux de neurones artificiels par rapport aux machines à vecteurs de support est que les réseaux de neurones artificiels peuvent avoir un nombre illimité de sorties, tandis que les machines à vecteurs de support n'en ont qu'une. La façon la plus directe de créer un classificateur n-aire avec des machines à vecteurs de support est de créer n machines à vecteurs de support et de les former chacune une par une. D'un autre côté, un classifieur n-aire avec des réseaux de neurones peut être formé en une seule fois. De plus, le réseau neuronal aura plus de sens car il est un tout, alors que les machines à vecteurs de support sont des systèmes isolés. Ceci est particulièrement utile si les sorties sont interdépendantes.

Par exemple, si l'objectif était de classer les chiffres manuscrits, dix machines à vecteurs de support suffiraient. Chaque machine à vecteur de support reconnaîtrait exactement un chiffre et ne reconnaîtrait pas tous les autres. Étant donné que chaque chiffre manuscrit ne peut pas être censé contenir plus d'informations que sa classe, cela n'a aucun sens d'essayer de résoudre ce problème avec un réseau neuronal artificiel.

Cependant, supposons que l'objectif était de modéliser l'équilibre hormonal d'une personne (pour plusieurs hormones) en fonction de facteurs physiologiques facilement mesurables tels que le temps écoulé depuis le dernier repas, la fréquence cardiaque, etc.Comme ces facteurs sont tous liés entre eux, des neurones artificiels la régression du réseau est plus logique que la régression des machines vectorielles.

Alan
la source
18
En fait, il existe de véritables formulations multiclasses de la machine à vecteurs de support (voir les articles de Crammer & Singer). Je crois que LibSVM contient une implémentation de ceux-ci.
Fred Foo
3
Cependant, former un SVM multiclasse n'est pas si facile et les performances semblent être meilleures dans l'approche OVA que AVA.
crodriguezo
3
"cela n'a aucun sens d'essayer de résoudre ce problème avec un réseau neuronal artificiel" Vous pouvez utiliser un réseau neuronal pour résoudre la classification des chiffres manuscrits. J'ai fait cela comme une affectation matérielle pour une classe. La couche de sortie contient des probabilités de tous les chiffres. La classe avec la probabilité la plus élevée est utilisée comme hypothèse. J'avais un taux de précision de 94%.
user3266824
Vous voulez dire créer n nombre de 1 vs N-1 classificateurs SVM vs utiliser NN pour faire n sorties. SVM semble être plus lent de cette façon?
mskw
@ user3266824 Eh bien oui, cette citation n'a pas bien vieilli.
runDOSrun
46

Une chose à noter est que les deux sont en fait très liés. Les SVM linéaires sont équivalents aux NN monocouches (c'est-à-dire les perceptrons), et les NN multicouches peuvent être exprimés en termes de SVM. Voir ici pour quelques détails.

Bryce
la source
18

Si vous souhaitez utiliser un noyau SVM, vous devez deviner le noyau. Cependant, les RNA sont des approximateurs universels dont la seule estimation à faire est la largeur (précision d'approximation) et la hauteur (efficacité d'approximation). Si vous concevez correctement le problème d'optimisation, vous ne sur-ajustez pas (veuillez consulter la bibliographie pour sur-ajuster). Cela dépend également des exemples de formation s'ils scannent correctement et uniformément l'espace de recherche. La découverte de la largeur et de la profondeur fait l'objet d'une programmation entière.

Supposons que vous ayez des fonctions bornées f (.) Et des approximateurs universels bornés sur I = [0,1] avec une plage à nouveau I = [0,1] par exemple qui sont paramétrés par une séquence réelle de support compact U (., A) avec la propriété qu'il existe une séquence de séquences avec

lim sup { |f(x) - U(x,a(k) ) | : x } =0

et vous dessinez des exemples et des tests (x,y)avec une distribution D sur IxI.

Pour un soutien prescrit, ce que vous faites est de trouver le meilleur tel que

sum {  ( y(l) - U(x(l),a) )^{2} | : 1<=l<=N } is minimal

Laissez ça a=aa qui est une variable aléatoire !, le sur-ajustement est alors

moyenne en utilisant D and D^{N} of ( y - U(x,aa) )^{2}

Permettez-moi d'expliquer pourquoi, si vous sélectionnez de aatelle sorte que l'erreur soit minimisée, alors pour un ensemble rare de valeurs, vous avez un ajustement parfait. Cependant, comme ils sont rares, la moyenne n'est jamais nulle. Vous voulez minimiser la seconde bien que vous ayez une approximation discrète de D. Et gardez à l'esprit que la longueur du support est libre.

Vasileios Anagnostopoulos
la source
14

Une réponse me manque ici: le perceptron multicouche est capable de trouver une relation entre les fonctionnalités. Par exemple, cela est nécessaire en vision par ordinateur lorsqu'une image brute est fournie à l'algorithme d'apprentissage et que des fonctionnalités sophistiquées sont désormais calculées. Essentiellement, les niveaux intermédiaires peuvent calculer de nouvelles fonctionnalités inconnues.

dolbi
la source
12

Nous devons également considérer que le système SVM peut être appliqué directement à des espaces non métriques, tels que l'ensemble de graphiques ou de chaînes étiquetés. En fait, la fonction interne du noyau peut être généralisée correctement à pratiquement n'importe quel type d'entrée, à condition que l'exigence de définition positive du noyau soit satisfaite. En revanche, pour pouvoir utiliser un ANN sur un ensemble de graphiques étiquetés, des procédures d'intégration explicites doivent être envisagées.

strozzino
la source
6
Dans mon esprit, la construction d'un noyau sensible et la construction d'une intégration métrique sensible sont également problématiques. Donc, c'est juste un commentaire qu'il peut y avoir des noyaux plus variés que des métriques, mais je n'achète pas vraiment cela. ohli.de/download/papers/Deza2009.pdf
JeremyKun