J'ai lu quelques articles sur les avantages et les inconvénients de chaque méthode, certains affirmant que l'AG n'apporte aucune amélioration dans la recherche de la solution optimale, tandis que d'autres montrent que celle-ci est plus efficace. Il semble que le GA soit généralement préféré dans la littérature (bien que la plupart des gens le modifient d’une manière ou d’une autre pour obtenir les résultats dont ils ont besoin), alors pourquoi la majorité des solutions logicielles semblent-elles utiliser uniquement la rétropropagation?
Existe-t-il une règle générale quand utiliser l'une ou l'autre? Cela dépend peut-être du type de NN ou existe-t-il une solution de pointe qui surpasse généralement les autres?
Si possible, je cherche des réponses générales: "si le NN est énorme, GA est meilleur", ou "GA est toujours meilleur mais a des problèmes de performances de calcul" etc ...
L'un des principaux problèmes des réseaux de neurones est la sur-adaptation, ce qui signifie que les algorithmes qui tentent très difficilement de trouver un réseau qui minimise un critère basé sur un échantillon limité de données aboutiront à un réseau qui fonctionnera très bien pour cet échantillon particulier. de données, mais qui aura une faible généralisation. Pour cette raison, je me méfie plutôt de l’utilisation des GA pour concevoir des réseaux de neurones, en particulier s’ils optimisent l’architecture en même temps que les poids. J'ai généralement constaté que la formation de réseaux (avec régularisation) à partir d'un nombre (par exemple, 20) de vecteurs de pondération initiale aléatoires, puis la formation d'un ensemble de tous les réseaux résultants est généralement une approche aussi efficace que n'importe laquelle.
En gros, l’optimisation est la racine de tous les maux de l’apprentissage automatique. Plus vous en faites, plus vous risquez de sur-ajuster les données.
la source
Chaque fois que vous traitez d'énormes quantités de données et que vous souhaitez résoudre une tâche d'apprentissage supervisé avec un réseau de neurones à feed-forward, les solutions basées sur la rétropropagation sont beaucoup plus envisageables. La raison en est que, pour un réseau de neurones complexe, le nombre de paramètres libres est très élevé. Un projet industriel sur lequel je travaille actuellement concerne un réseau de neurones à feed-forward avec environ 1000 entrées, deux couches cachées @ 384 neurones et 60 sorties. Ceci conduit à 1000 * 384 + 384 * 384 + 384 * 60 = 554496 paramètres de poids à optimiser. Utiliser une approche générale ici serait terriblement lent.
la source
La deuxième réponse est fausse. Le surajustement n'est pas causé par l'optimisation. La suradaptation survient lorsque votre modèle est trop compliqué et peut s’adapter à tous les points de données sans connaître la règle qui les a créés (c’est-à-dire tout simplement les mémoriser, dans le cas extrême). dropconnect, poids decay, et en utilisant simplement plus de données. L'objectif doit être d'optimiser votre réseau et de le rendre aussi précis que possible, en tenant compte de ces contraintes.
Pour répondre à cette question, backprop est censé être beaucoup plus rapide que l'optimisation stochastique (algorithmes génétiques, etc.). Je suppose que c'est parce qu'elle tire parti de ce que la sortie réelle était censée être, ajuste les poids dans la bonne direction en fonction de cela. , où l'optimisation stochastique essaye des changements complètement aléatoires et ignore ces informations.
Cependant, en explorant une zone plus vaste, les AG vont probablement faire mieux à long terme en évitant les optima locaux, il faudra juste plus de temps pour s'entraîner.
Je suis curieux de voir combien les GA sont plus lents que les backprop, et si quelqu'un connaît les algorithmes hybrides (la recherche par dispersion semble être idéale pour cela.)
la source
À mon avis, la différence entre GA et la rétro-propagation réside dans le fait qu’elle est basée sur des nombres aléatoires et que la rétro-propagation est basée sur un algorithme statique tel que la descente de gradient stochastique. GA étant basé sur des nombres aléatoires et ajouté à cette mutation, cela éviterait probablement d'être pris dans un minimum local. Mais alors, étant donné que l’AG est basé sur des nombres aléatoires, cela signifie qu’il est assez probable que, à deux moments différents, vous dirigiez l’apprentissage sur le même réseau, la conclusion peut être différente, c’est-à-dire un ensemble différent
la source