Quelqu'un peut-il me dire comment je suis censé construire un réseau neuronal en utilisant la méthode batch?
J'ai lu que, en mode batch, pour tous les échantillons de l'ensemble d'apprentissage, nous calculons l'erreur, les poids delta et donc delta pour chaque neurone du réseau, puis au lieu de mettre à jour immédiatement les poids, nous les accumulons, puis avant de commencer la prochaine époque, nous mettons à jour les poids.
J'ai également lu quelque part que, la méthode par lots est comme la méthode en ligne, mais avec la différence qu'il suffit de résumer les erreurs pour tous les échantillons dans l'ensemble de formation, puis d'en prendre la moyenne et de l'utiliser pour mettre à jour les poids comme on fait dans la méthode en ligne (la différence est juste cette moyenne) comme ceci:
for epoch=1 to numberOfEpochs
for all i samples in training set
calculate the errors in output layer
SumOfErrors += (d[i] - y[i])
end
errorAvg = SumOfErrors / number of Samples in training set
now update the output layer with this error
update all other previous layers
go to the next epoch
end
- Laquelle de ces méthodes est vraiment la bonne méthode de traitement par lots?
- Dans le premier cas, l'accumulation de tous les poids delta ne se traduit-elle pas par un nombre énorme?