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:
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).
la source
Réponses:
À 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.
la source
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.
la source
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.
la source
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
et vous dessinez des exemples et des tests
(x,y)
avec une distribution D surIxI
.Pour un soutien prescrit, ce que vous faites est de trouver le meilleur tel que
Laissez ça
a=aa
qui est une variable aléatoire !, le sur-ajustement est alorsmoyenne en utilisant
D and D^{N} of ( y - U(x,aa) )^{2}
Permettez-moi d'expliquer pourquoi, si vous sélectionnez de
aa
telle 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.la source
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.
la source
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.
la source