J'ai fait une bonne implémentation dans le chapitre 6 de Deep Learning ① fait à partir de zéro, donc un mémorandum. Jupyter sera également publié, je vous serais donc reconnaissant si vous pouviez signaler des erreurs. Dans le livre, le jeu de données a été téléchargé localement, mais comme sklearn a un jeu de données pour l'apprentissage tel que mnist, j'ai ajusté le code afin que je n'ai besoin que d'importer depuis sklearn. [cahier jupyter pour publication @github](https://github.com/fumitrial8/DeepLearning/blob/master/%E3%82%BB%E3%82%99%E3%83%AD%E3%81%8B% E3% 82% 89% E4% BD% 9C% E3% 82% 8BDeepLearning% 20% E7% AC% AC6% E7% AB% A0.ipynb)
Méthode d'ajustement du poids de chaque réseau en soustrayant la valeur obtenue en multipliant le gradient de la fonction de perte par un certain coefficient d'apprentissage du poids. Exprimé comme une expression
W (poids après ajustement) = W (poids avant ajustement) --η * dL / dW (coefficient d'apprentissage * gradient de la fonction de perte)
Une méthode d'ajustement du poids de chaque réseau en réduisant le coefficient d'apprentissage en fonction de la progression de l'apprentissage. Exprimé comme une expression
h (Historique de la pente après ajustement) = h (Historique de la pente avant ajustement) --dL / dW * dL / dW (Carré de la fonction de pente de perte)
W (poids après ajustement) = W (poids avant ajustement) --η * h *** (-1 / 2) * dL / dW (coefficient d'apprentissage * historique du gradient * gradient de la fonction de perte)
Comment ajuster le poids de chaque réseau en apprenant plus car le gradient est plus grand et en apprenant moins quand le gradient est plus petit (je n'ai pas trouvé une bonne expression ...). Exprimé comme une expression
v (Historique des poids après ajustement) = αv (Historique des poids avant ajustement) --η * dL / dW (Coefficient d'apprentissage * Gradient de la fonction de perte) Il semble que α soit généralement fixé à 0,9.
W (poids après ajustement) = W (poids avant ajustement) + v
Recommended Posts