[PYTHON] [Deep Learning from scratch] Principales méthodes de mise à jour des paramètres pour les réseaux neuronaux

introduction

Cet article est une sortie facile à comprendre du ** Deep Learning from scratch Chapter 7 Learning Techniques **. J'ai pu le comprendre moi-même, j'espère donc que vous pourrez le lire confortablement. De plus, je serais plus qu'heureux que vous puissiez vous y référer lorsque vous étudiez ce livre.

SGD SGD est une méthode pour mettre à jour les paramètres en multipliant le coefficient d'apprentissage et en soustrayant des paramètres actuels après avoir trouvé le gradient comme précédemment. スクリーンショット 2019-11-13 15.30.35.png Cette méthode est simple et facile à mettre en œuvre, mais comme la direction indiquée par le gradient n'est pas la direction vers la valeur minimale exacte, elle effectue une recherche irrégulière et inefficace jusqu'au point du paramètre qui est la valeur minimale de la fonction de perte. Est un point faible.

Momentum Une méthode avec le concept supplémentaire de vitesse. Le paramètre est mis à jour en recherchant la vitesse à laquelle la pente roule de la pente au point avec la valeur minimale de la fonction de perte au point actuel et en l'ajoutant au paramètre. スクリーンショット 2019-11-13 15.38.21.png スクリーンショット 2019-11-13 15.38.33.png Il effectue une recherche en zigzag comme SGD, mais l'inefficacité est réduite car le zigzag est réduit et cela devient une recherche en zigzag arrondie par rapport à SGD.

AdaGrad Dans un premier temps, le coefficient d'apprentissage est augmenté et mis à jour, puis le coefficient d'apprentissage est diminué et mis à jour. ** Une méthode utilisant la technique de décomposition du coefficient d'apprentissage **. Au départ, les paramètres sont considérablement mis à jour, puis les mises à jour des paramètres sont progressivement réduites. スクリーンショット 2019-11-13 15.53.06.png スクリーンショット 2019-11-13 15.53.13.png En utilisant cette méthode, la recherche en zigzag peut être encore réduite et une recherche efficace peut être effectuée.

Adam Une nouvelle méthode proposée en 2015 qui combine Momentum et AdaGrad. Comme c'est compliqué, je ne vais pas l'expliquer ici, mais il est possible de rechercher très efficacement.

Les principales méthodes actuellement utilisées sont SGD simple et Adam très efficace mais complexe.

Recommended Posts

[Deep Learning from scratch] Principales méthodes de mise à jour des paramètres pour les réseaux neuronaux
Apprentissage profond à partir de zéro
Deep Learning from scratch 4.4.2 Gradient pour les réseaux de neurones La question sur la fonction numerical_gradient a été résolue.
Apprentissage profond à partir de zéro 1 à 3 chapitres
[Deep Learning from scratch] Accélération du réseau de neurones J'ai expliqué le traitement de la propagation arrière
Créez un environnement pour "Deep Learning from scratch" avec Docker
Apprentissage profond à partir de zéro (calcul des coûts)
Mémo d'apprentissage profond créé à partir de zéro
Version Lua Apprentissage profond à partir de zéro Partie 6 [Traitement d'inférence de réseau neuronal]
[Mémo d'apprentissage] Le Deep Learning fait de zéro [Chapitre 7]
Apprentissage profond à partir de zéro (propagation vers l'avant)
Apprentissage profond / Apprentissage profond à partir de zéro 2-Essayez de déplacer GRU
Deep learning / Deep learning made from scratch Chapitre 6 Mémo
[Mémo d'apprentissage] Deep Learning fait de zéro [Chapitre 5]
[Mémo d'apprentissage] Le Deep Learning fait de zéro [Chapitre 6]
"Deep Learning from scratch" avec Haskell (inachevé)
Deep learning / Deep learning made from scratch Chapitre 7 Mémo
[Windows 10] Construction de l'environnement "Deep Learning from scratch"
Enregistrement d'apprentissage de la lecture "Deep Learning from scratch"
[Deep Learning from scratch] À propos de l'optimisation des hyper paramètres
Mémo d'auto-apprentissage "Deep Learning from scratch" (partie 12) Deep learning
[Mémo d'apprentissage] Deep Learning fait de zéro [~ Chapitre 4]
Réaliser la construction d'environnement pour "Deep Learning from scratch" avec docker et Vagrant
Mémo d'auto-apprentissage "Deep Learning from scratch" (glossaire illisible)
"Deep Learning from scratch" Mémo d'auto-apprentissage (n ° 9) Classe MultiLayerNet
Deep Learning from scratch ① Chapitre 6 "Techniques liées à l'apprentissage"
GitHub du bon livre "Deep Learning from scratch"
Deep Learning from scratch Chapter 2 Perceptron (lecture du mémo)
[Mémo d'apprentissage] Apprentissage profond à partir de zéro ~ Mise en œuvre de l'abandon ~
Résumé Python vs Ruby "Deep Learning from scratch"
Mémo d'auto-apprentissage «Deep Learning from scratch» (10) Classe MultiLayerNet
Mémo d'auto-apprentissage «Deep Learning from scratch» (n ° 11) CNN
Python vs Ruby "Deep Learning from scratch" Chapitre 3 Implémentation d'un réseau neuronal à 3 couches
Préparez l'environnement pour le livre O'Reilly "Deep Learning from scratch" avec apt-get (Debian 8)
[Pour les débutants] Après tout, qu'est-ce qui est écrit dans Deep Learning fait à partir de zéro?
[Deep Learning from scratch] Valeur initiale du poids du réseau neuronal utilisant la fonction sigmoïde
[Deep Learning from scratch] J'ai implémenté la couche Affine
Mémo d'auto-apprentissage «Deep Learning from scratch» (n ° 19) Augmentation des données
Application de Deep Learning 2 à partir de zéro Filtre anti-spam
[Deep Learning] Exécuter la console de réseau neuronal SONY à partir de CUI
Méthode d'étude pour apprendre le machine learning à partir de zéro (version mars 2020)
[Deep Learning from scratch] J'ai essayé d'expliquer le décrochage
[Deep Learning from scratch] Poids initial du réseau neuronal lors de l'utilisation de la fonction Relu
Chapitre 3 Réseau de neurones Ne découpez que les bons points de Deeplearning à partir de zéro
[Deep Learning from scratch] Implémentez le traitement de rétropropagation dans le réseau neuronal par la méthode de propagation de retour d'erreur
[Deep Learning from scratch] Implémentation de la méthode Momentum et de la méthode AdaGrad
Essayez de créer un réseau de neurones / d'apprentissage en profondeur avec scratch
Un amateur a trébuché dans le Deep Learning à partir de zéro Note: Chapitre 1
Un amateur a trébuché dans le Deep Learning ❷ fait à partir de zéro Note: Chapitre 5
Un amateur a trébuché dans le Deep Learning ❷ fait à partir de zéro Note: Chapitre 2
Un amateur a trébuché dans le Deep Learning à partir de zéro Note: Chapitre 3
Un amateur a trébuché dans le Deep Learning à partir de zéro Note: Chapitre 7
Un amateur a trébuché dans le Deep Learning à partir de zéro Note: Chapitre 5
Un amateur a trébuché dans le Deep Learning ❷ fait de zéro Note: Chapitre 1
Un amateur a trébuché dans le Deep Learning ❷ fait à partir de zéro Note: Chapitre 4
Mémo d'auto-apprentissage «Deep Learning from scratch» (n ° 18) One! Miaou! Grad-CAM!
Un amateur a trébuché dans le Deep Learning à partir de zéro.