web-dev-qa-db-fra.com

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

Les réseaux ANN (réseaux de neurones artificiels) et SVM (machines à vecteurs de support) sont deux stratégies populaires d’apprentissage et de classification automatiques 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 à propos de ANN vs SVM:

Classification ANN et SVM

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

Support Vector Machine ou réseau de neurones artificiels pour le traitement de texte?

Dans cette question, j'aimerais savoir spécifiquement quels aspects d'un ANN (en particulier, un multicouche perceptron) pourraient rendre souhaitable l'utilisation sur un SVM ? Je pose la question parce qu'il est facile de répondre à la question opposée : les machines à vecteurs de support sont souvent supérieures aux ANN car elles permettent d'éviter deux faiblesses majeures:

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

(2) ANNs souvent surajustés si la formation dure trop longtemps, ce qui signifie que, quel que soit le modèle choisi, un ANN peut commencer à considérer le bruit comme une partie intégrante de la modèle.

Les SVM ne souffrent d'aucun de ces deux problèmes. Cependant, il n’est pas évident que les SVM remplacent totalement les ANN. Alors, quels sont les avantages spécifiques d’un ANN par rapport à un SVM qui pourraient le rendre applicable à certaines situations? J'ai énuméré les avantages spécifiques d'un SVM par rapport à un ANN, j'aimerais maintenant voir une liste des avantages ANN (le cas échéant).

371
Channel72

À en juger par les exemples que vous donnez, je suppose que par ANN, vous entendez des réseaux à rétroaction multicouches (réseaux FF), tels que des perceptrons multicouches, car ils sont en concurrence directe avec les SVM.

Un avantage spécifique de ces modèles sur les SVM est que leur taille est fixe: ce sont des modèles paramétriques , tandis que les SVM sont non paramétriques. C'est-à-dire que dans une ANN, vous avez un tas de couches cachées de taille h 1 à travers h n  en fonction du nombre d'entités, des paramètres de biais et de ceux qui composent votre modèle. En revanche, un SVM (au moins un noyau) contient un ensemble de vecteurs de support, sélectionnés dans l’apprentissage, avec une pondération pour chacun. Dans le pire des cas, le nombre de vecteurs de support correspond exactement au 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 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, formation en ligne des réseaux FF est très simple comparé à l’ajustement SVM en ligne, et la prévision peut être un peu plus rapide.

EDIT: tout ce qui précède concerne le cas général des SVM kernelisés. Les SVM linéaires constituent 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.

129
Fred Foo

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. Le moyen le plus direct de créer un classificateur n-aire avec des machines à vecteurs de support consiste à créer n machines à vecteurs de support et à les entraîner un par un. D'autre part, un classifieur n-aire avec des réseaux de neurones peut être formé en une fois. De plus, le réseau de neurones aura plus de sens car il s’agit d’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 les chiffres écrits à la main, dix machines à vecteurs de support feraient l'affaire. Chaque machine à vecteurs de support reconnaîtrait exactement un chiffre et ne reconnaîtrait pas tous les autres. Étant donné que chaque chiffre manuscrit ne peut contenir plus d'informations que sa classe, cela n'a aucun sens d'essayer de résoudre ce problème avec un réseau de neurones artificiels.

Cependant, supposons que l’objectif était de modéliser l’équilibre hormonal d’une personne (pour plusieurs hormones) en fonction de facteurs physiologiques faciles à mesurer, tels que le temps écoulé depuis le dernier repas, la fréquence cardiaque, etc. la régression réseau a plus de sens que la régression machine vectorielle.

60
Alan

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

46
Bryce

Si vous voulez utiliser un noyau SVM, vous devez deviner le noyau. Cependant, les ANN sont des approximateurs universels dont la seule hypothèse 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évalez pas (veuillez vous reporter à la bibliographie pour l'ajustement). Cela dépend aussi des exemples d’entraînement s’ils scannent correctement et uniformément l’espace de recherche. La découverte de la largeur et de la profondeur fait l’objet de la programmation en nombres entiers.

Supposons que vous ayez des fonctions bornées f(.) Et des approximateurs universels bornés sur I = [0,1] avec une plage égale à I = [0,1] par exemple, 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 testez (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 ceci a=aa qui est une variable aléatoire !, le sur-ajustement est alors

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

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

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

14
dolbi

Nous devrions également considérer que le système SVM peut être appliqué directement à des espaces non métriques, tels que le jeu de graphes ou de chaînes étiquetés. En fait, la fonction du 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. D'autre part, pour pouvoir utiliser un ANN sur un ensemble de graphes étiquetés, des procédures d'intégration explicites doivent être envisagées.

12
strozzino