2010-01-23 4 views
2

Je commence des réseaux de neurones, en suivant principalement D. Kriesel's tutorial. Dès le début, il introduit au moins trois (différentes?) Règles d'apprentissage (Hebbian, delta rule, backpropagation) concernant l'apprentissage supervisé.Réseaux de neurones - pourquoi tant de règles d'apprentissage?

Il se peut que je manque quelque chose, mais si le but est simplement de minimiser l'erreur, pourquoi ne pas simplement appliquer la descente en dégradé sur Error(entire_set_of_weights)?

Editer: Je dois admettre que les réponses me troublent encore. Il serait utile de souligner la différence entre ces méthodes et la différence entre elles et la descente directe du gradient. Pour le souligner, ces règles d'apprentissage semblent tenir compte de la structure en couches du réseau. D'un autre côté, trouver le minimum de Error(W) pour l'ensemble des poids l'ignore complètement. Comment cela s'intègre-t-il?

Répondre

11

Une question est comment répartir le "blâme" pour une erreur. La règle Delta classique ou règle LMS est descente essentiellement en gradient. Lorsque vous appliquez Delta Rule à un réseau multicouche, vous obtenez backprop. D'autres règles ont été créées pour diverses raisons, y compris le désir de convergence plus rapide, l'apprentissage non supervisé, les questions temporelles, les modèles que l'on croit plus proches de la biologie, etc

Sur votre question spécifique de "pourquoi pas juste gradient descente?" La descente en dégradé peut fonctionner pour certains problèmes, mais de nombreux problèmes ont des minima locaux, ce qui permet d'enfoncer le gradient naïf. La réponse initiale consiste à ajouter un terme de «momentum» afin de «déployer» un minimum local. ; c'est à peu près l'algorithme backprop classique.

2

Tout d'abord, notez que "backpropagation" signifie simplement que vous appliquez la règle delta sur chaque couche de la sortie à l'entrée de sorte que ce n'est pas une règle distincte. Comme pour une descente en gradient simple, eh bien, la règle delta est fondamentalement la descente en gradient. Cependant, il tend à sur-adapter les données d'apprentissage et ne généralisera pas aussi efficacement que les techniques qui n'essaient pas de réduire à zéro la marge d'erreur. Cela est logique parce que «erreur» signifie simplement la différence entre nos échantillons et la sortie - ils ne sont pas garantis de représenter avec précision toutes les entrées possibles.

1

La rétropropagation et la descente de gradient naïf diffèrent également en termes d'efficacité de calcul. Backprop prend essentiellement en compte la structure des réseaux et, pour chaque poids, calcule uniquement les pièces réellement nécessaires.

La dérivée de l'erreur par rapport aux poids est divisée par l'intermédiaire de la chaîne en: ∂E/∂W = ∂E/∂A * ∂A/∂W. A est l'activation d'unités particulières. Dans la plupart des cas, les dérivées seront nulles parce que W est clairsemé en raison de la topologie des réseaux. Avec backprop, vous obtenez les règles d'apprentissage sur la façon d'ignorer ces parties du dégradé. Donc, d'un point de vue mathématique, backprop n'est pas si excitant.

1

il peut y avoir des problèmes qui, par exemple, font fonctionner backprop dans les minima locaux. De plus, juste à titre d'exemple, vous ne pouvez pas ajuster la topologie avec backprop. Il existe également des méthodes d'apprentissage cool utilisant des métaheuristiques inspirées de la nature (par exemple, des stratégies évolutives) qui permettent d'ajuster le poids ET la topologie (même récurrentes) simultanément. Probablement, je vais ajouter un ou plusieurs chapitres pour les couvrir aussi.Il y a aussi une fonction de discussion directement sur la page de téléchargement du manuscrit - si vous trouvez d'autres mots qui ne vous plaisent pas dans le manuscrit, n'hésitez pas à les ajouter à la page pour pouvoir changer les choses dans la prochaine page édition.

Greetz, David (Kriesel ;-))

Questions connexes