389 votes

Quels sont les avantages des réseaux neuronaux artificiels par rapport aux machines à vecteurs de support ?

Les réseaux neuronaux artificiels (ANN) et les machines vectorielles à support (SVM) sont deux stratégies populaires d'apprentissage et de classification supervisés. Il n'est pas toujours évident de savoir quelle méthode est la meilleure pour un projet particulier, et je suis certain que la réponse est toujours "ça dépend". Souvent, on utilise une combinaison des deux ainsi que la classification bayésienne.

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 ?

Machine à vecteur de support ou réseau neuronal artificiel pour le traitement de texte ?

Dans cette question, j'aimerais savoir spécifiquement Quels sont les aspects d'un ANN (plus précisément, un Perceptron multicouche) qui pourraient rendre son utilisation souhaitable par rapport à un SVM ? La raison pour laquelle je pose cette question est qu'il est facile de répondre à la question de savoir si l'on peut utiliser un ANN ou un SVM. en face de question : Les Machines à Vecteur de Support sont souvent supérieures aux ANNs car elles évitent deux faiblesses majeures des ANNs :

(1) Les ANN convergent souvent sur minima locaux plutôt que des minima globaux, ce qui signifie qu'ils ont parfois tendance à "manquer la vue d'ensemble" (ou à perdre la forêt pour les arbres).

(2) Les ANNs sont souvent overfit si l'apprentissage dure trop longtemps, ce qui signifie que pour un modèle donné, un ANN pourrait commencer à considérer le bruit comme faisant partie du modèle.

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

61 votes

Malheureusement, ce site sera probablement fermé ou déplacé prochainement, mais j'adore cette question. Je ne demande pas mieux que de voir un éventail de réponses réfléchies à cette question.

10 votes

J'imagine que la plupart des réponses à cette question seront spéculatives ou fondées sur des preuves, car il existe 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 neuronal feed-forward à 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 ?

13 votes

Il est fermé pour ne pas être très constructif ... Lol !

141voto

larsmans Points 167484

À en juger par les exemples que vous donnez, je suppose que par ANNs, vous entendez les réseaux multicouches feed-forward (FF nets en abrégé), tels que les perceptrons multicouches, car ceux-ci sont en concurrence directe avec les SVMs.

L'un des avantages spécifiques de ces modèles par rapport aux SVM est que leur taille est fixe. paramétrique tandis que les SVM sont non-paramétriques. C'est-à-dire que dans un ANN, vous avez un tas de couches cachées avec des tailles h 1 par le biais de h <em>n </em> en fonction du nombre de caractéristiques, plus les paramètres de biais, et ceux-ci constituent votre modèle. En revanche, un SVM (du moins un SVM à noyau) consiste en 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, la taille de son modèle évolue de façon linéaire. Dans le traitement du langage naturel, il n'est pas rare de voir des classifieurs SVM avec des dizaines de milliers de vecteurs de support, chacun ayant des centaines de milliers de caractéristiques.

Aussi, formation en ligne des réseaux FF est très simple par rapport à l'adaptation en ligne des SVM, et de même, l'apprentissage semi-supervisé est réputé pour être assez simple. Je dois admettre que je n'ai pas d'expérience avec ce dernier.

En outre, ces dernières années ont vu l'essor de apprentissage profond : une collection de nouveaux algorithmes pour former des réseaux neuronaux avec de nombreuses couches de manière sophistiquée. Les techniques dont j'ai connaissance conservent la propriété paramétrique des réseaux feedforward.

EDIT Tout ce qui précède concerne le cas général des SVM à noyau. Les SVM linéaires sont un cas particulier en ce sens qu'ils sont paramétriques et permettent un apprentissage en ligne avec des algorithmes simples tels que la descente de gradient stochastique.

13 votes

Une autre raison peut être trouvée dans ce document : yann.lecun.com/exdb/publis/pdf/bengio-lecun-07.pdf . En bref, l'auteur affirme que les "architectures profondes" peuvent représenter des comportements/fonctions "intelligents", etc. plus efficacement que les "architectures superficielles" comme les SVM.

1 votes

En passant, l'apprentissage profond perd quelque peu les "avantages" donnés ici pour les MLP (taille fixe, apprentissage plus simple). Je ne suis pas sûr que ces avantages en valent la peine, cependant.

6 votes

@MuhammadAlkarouri : le deep learning est un ensemble assez large de techniques, mais celles que je connais bien conservent l'avantage d'avoir des modèles paramétriques (à taille fixe).

66voto

Alan Sz Points 395

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 quelconque de sorties, alors que les machines à vecteurs de support n'en ont qu'une. La méthode la plus directe pour créer un classificateur n-aire avec des machines à vecteurs de support consiste à créer n machines à vecteurs de support et à former chacune d'entre elles une par une. En revanche, un classificateur n-aire avec réseaux neuronaux peut être formé en une seule fois. En outre, le réseau neuronal sera plus logique car il constitue un tout, alors que les machines à vecteurs de support sont des systèmes isolés. Ceci est particulièrement utile si les sorties sont liées entre elles.

Par exemple, si l'objectif était de classer des chiffres écrits à la main, dix machines à vecteurs de support feraient l'affaire. 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 être censé contenir plus d'informations que sa seule classe, il est absurde d'essayer de résoudre ce problème avec un réseau neuronal artificiel.

Cependant, supposons que l'objectif soit 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, la régression par réseau de neurones artificiels est plus logique que la régression par machine à vecteurs de support.

20 votes

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 celles-ci.

3 votes

Cependant, l'entraînement d'un SVM multiclasse n'est pas si facile et les performances semblent être meilleures dans l'approche OVA que dans l'approche AVA.

4 votes

"Vous pouvez utiliser un réseau neuronal pour résoudre la classification de chiffres manuscrits. Je l'ai fait en tant que travail de mémoire pour une classe. La couche de sortie contient les probabilités de tous les chiffres. La classe avec la probabilité la plus élevée est utilisée comme hypothèse. J'ai obtenu un taux de précision de 94%.

50voto

Bryce Points 807

Il convient de noter que les deux sont en fait très liés. Les SVM linéaires sont équivalents aux NN à une couche (c'est-à-dire les perceptrons), et les NN à plusieurs couches peuvent être exprimés en termes de SVM. Voir ici pour plus de détails.

21voto

Si vous voulez utiliser un SVM à noyau, vous devez deviner le noyau. Cependant, les ANNs sont des approximateurs universels dont il faut seulement deviner la largeur (précision de l'approximation) et la hauteur (efficacité de l'approximation). Si vous concevez le problème d'optimisation correctement, vous n'aurez pas de sur-ajustement (voir la bibliographie sur le sur-ajustement). Cela dépend aussi des exemples d'entraînement s'ils balaient correctement et uniformément l'espace de recherche. La découverte de la largeur et de la profondeur est le sujet de la programmation en nombres entiers.

Supposons que l'on dispose de fonctions f(.) bornées et d'approximateurs universels bornés sur I=[0,1] avec une plage encore I=[0,1] par exemple qui sont paramétrés par une suite réelle de support compact U(.,a) avec la propriété qu'il existe une suite de suites 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, il s'agit de trouver la meilleure solution pour que

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

Que ce a=aa qui est une variable aléatoire !, l'over-fitting est alors

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

Laissez-moi vous expliquer pourquoi, si vous sélectionnez aa de telle sorte que l'erreur soit minimisée, alors pour un rare ensemble de valeurs vous avez un ajustement parfait. Cependant, comme elles sont rares, la moyenne n'est jamais égale à 0. Vous voulez minimiser la deuxième erreur bien que vous ayez une approximation discrète de D. Et n'oubliez pas que la longueur du support est libre.

13voto

strozzino Points 51

Nous devons également considérer que le système SVM peut être appliqué directement à des espaces non métriques, tels que l'ensemble des graphes ou des chaînes étiquetés. En fait, la fonction noyau interne 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 graphes étiquetés, il faut envisager des procédures d'intégration explicites.

6 votes

À mon avis, la construction d'un noyau raisonnable et la construction d'une intégration métrique raisonnable sont également problématiques. Il s'agit donc simplement d'un commentaire selon lequel il pourrait y avoir plus de noyaux variés que de métriques, mais je n'y crois pas vraiment. ohli.de/download/papers/Deza2009.pdf

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X