Lire une variété d'algorithmes d'optimisation de texte des réseaux de neurones: Adam vers le bas de la méthode de dégradé

Wang compilé de New Medium

Qubit produit | Numéro public QbitAI

Lors du réglage des poids et des paramètres du modèle mise à jour de polarisation la façon dont vous pensé à ce type d'algorithme d'optimisation du modèle peut produire de meilleurs résultats et plus rapidement? Il devrait être descente de gradient, descente de gradient stochastique ou méthode Adam?

Cet article décrit les principales différences entre les différents algorithmes d'optimisation, et comment choisir la meilleure méthode d'optimisation.

Qu'est-ce que l'optimisation?

algorithme d'optimisation, en améliorant les méthodes de formation pour minimiser (ou maximiser) fonction de perte E (x).

Certains des paramètres du modèle interne de l'ensemble de test est utilisé pour calculer la valeur cible du degré d'écart de la valeur réelle Y et la valeur prédite sur la base de ces paramètres, pour former une fonction de perte E (x).

Par exemple, de tels paramètres internes est habituellement utilisé le poids (W) et le décalage (b) pour calculer la valeur de sortie, jouer un rôle important dans la formation du modèle de réseau neuronal.

Lorsque le modèle de formation efficace et produire des résultats précis, les paramètres internes du modèle a joué un rôle très important. Voilà pourquoi nous devons optimiser avec une variété de stratégies et d'algorithmes pour calculer l'impact des paramètres du réseau et la formation du modèle de mise à jour et la sortie du modèle, de façon à approcher ou atteindre la valeur optimale.

algorithme d'optimisation est divisé en deux catégories:

1. Le premier algorithme d'optimisation de la commande

Cet algorithme utilise la valeur de gradient de chaque paramètre pour maximiser ou minimiser la fonction de perte E (x). Le plus couramment utilisé premier ordre algorithme d'optimisation est une descente de gradient.

Fonction Gradient: dérivé multivariée dy / dx expression qui représente le taux de variation instantané de y par rapport à x. Souvent, dans le but de calculer la dérivée d'une fonction multivariable, le dérivé va être substitué par un gradient et dérivées partielles calculées en utilisant un gradient. Une différence majeure entre le gradient et la fonction dérivée est la formation d'un champ de vecteurs de gradient.

Ainsi, la fonction variable unique, utilisé pour analyser dérivé, la fonction multivariable à base de gradient est généré. Plus de détails dans cette théorie plus expliquée en détail.

2. algorithme d'optimisation de deuxième ordre de

algorithme d'optimisation du second ordre utilise la dérivée seconde (également connu sous le nom méthode Hessian ) Pour minimiser ou maximiser la fonction de perte. En raison du coût élevé de calcul de la dérivée seconde, et donc cette méthode est largement utilisée.

Détaillée divers algorithme d'optimisation de réseau de neurones

descente de gradient

Dans la formation et l'optimisation des systèmes intelligents, descente de gradient est l'une des technologies les plus importantes et les infrastructures. fonction de descente de gradient est:

En trouvant le contrôle de la variance minimum, mettre à jour les paramètres du modèle, le modèle convergent finalement.

La formule pour la mise à jour des paramètres de réseau: = - × () .J (), où [eta] est le taux d'apprentissage, () .J () est la fonction de perte J () de la pente.

Ceci est l'algorithme d'optimisation de réseau de neurones les plus couramment utilisés.

Aujourd'hui, la descente de gradient est utilisé principalement pour les poids de modèle de réseau neuronal à la mise à jour de poids, à savoir, mettre à jour les paramètres du modèle et de l'ajustement dans une direction pour réduire au minimum la fonction de perte.

technique rétropropagation introduit en 2006, permet la formation DNN possible. technique de rétro-propagation est de calculer le produit du signal d'entrée précédent et se propage le poids correspondant, la fonction d'activation est alors appliquée à la somme de ces produits. De cette façon, le signal d'entrée en un signal de sortie, est un moyen important pour la modélisation d'une fonction non-linéaire complexe, et présente une fonction d'activation non linéaire, de telle sorte que le modèle peut apprendre une fonction de mappage de presque toutes les formes. Ensuite, dans la liaison terrestre inverse de réseau de propagation d'erreur en corrélation, en utilisant une descente de gradient mise à droite la valeur de poids, en calculant le gradient de la fonction d'erreur E par rapport au paramètre de pondération W, dans la direction opposée de la pente des paramètres de poids mises à jour de la fonction de perte.

Figure 1: Poids mise à jour de la direction de gradient opposé à la direction

La figure 1 montre le processus de mise à jour du vecteur de pondération avec la direction de gradient opposé à l'erreur, dans lequel le gradient de la courbe en forme de U. A noter que, au pouvoir ou trop la valeur de poids W, il y aura une grande erreur, il est nécessaire de mettre à jour et optimiser le poids, en faire une valeur appropriée, donc nous avons essayé de trouver une valeur optimale locale dans le sens opposé au gradient .

Variantes descente de gradient

Le calcul du gradient de descente de gradient de lot traditionnel pour l'ensemble de données, mais ne seront mis à jour une fois, si lent lorsqu'ils traitent avec de grands ensembles de données et difficiles à contrôler, et même conduire à un débordement de mémoire.

Poids vitesse de mise à jour du taux d'apprentissage est déterminé, et peut converger vers l'optimum global, la valeur optimale peut avoir tendance à convexe locale de surface incurvée non-convexe dans la surface d'erreur.

Utilisez forme standard de descente de gradient par lots Un autre problème est qu'il ya une redondance dans le poids formation droite mise à jour de grands ensembles de données.

descente de gradient standard ci-dessus est atteint dans la méthode de descente de gradient stochastique.

1. algorithme du gradient stochastique (SDG)

descente de gradient stochastique (descente de gradient stochastique, SGD) pour chaque échantillon de formation de mise à jour des paramètres, chaque exécution effectue une mise à jour, et exécuter plus rapidement.

= - () x J (; x (i), y (i)), où x (i) et y (i) pour l'échantillon de la formation.

Parmi les paramètres mises à jour fréquentes telles qu'une fonction de perte élevée de la variance peut fluctuer à différentes forces. Ceci est en fait une bonne chose parce qu'elle nous aide à découvrir de nouveaux et potentiellement meilleur minimum local, et la descente de gradient standard uniquement converge vers un optimum local.

Mais le problème de SGD est que, en raison des mises à jour fréquentes et la volatilité finira par converger au minimum, et il y aura remise des gaz en raison des fluctuations fréquentes.

Bien qu'il ait été démontré que lorsque le taux d'apprentissage diminue progressivement [eta], le mode de convergence de descente de gradient standard avec le même modèle SGD.

Figure 2: Chaque variance de l'échantillon de formation est mise à jour provoque une forte volatilité paramètre perte de fonction, nous pourrions être incapables d'obtenir la valeur minimale donnée fonction de perte.

Une autre variante appelée « descente de gradient à faible volume », il est possible de résoudre le problème de la variance élevée et la convergence de mise à jour des paramètres d'instabilité.

2. De petites quantités de descente de gradient

Pour éviter la descente de gradient norme SGD et les problèmes existants, une méthode améliorée de descente de gradient en petites quantités (Mini lot descente de gradient), car cette méthode est effectuée uniquement une fois les mises à jour des échantillons de formation n de chaque lot.

L'avantage d'utiliser de petites quantités de la descente de gradient:

1)  Vous pouvez réduire le paramètre volatilité mise à jour, et finalement obtenir la convergence meilleure et plus stable.

2)  Vous pouvez également utiliser la dernière méthode d'optimisation de la matrice générique de la bibliothèque d'apprentissage en profondeur, le calcul du gradient de petites quantités de données plus efficaces.

3)  En général, les petites quantités de la taille des échantillons varie 50-256, peut varier en fonction du problème réel.

4)  Lors de la formation du réseau de neurones, généralement choisir petit algorithme de descente de gradient de traitement par lots.

Cette méthode est parfois appelée SGD.

En utilisant une descente de gradient et ses variantes face aux défis

1.  Difficile de choisir le taux d'apprentissage approprié. Le taux d'apprentissage est trop faible conduira à la convergence des réseaux est trop lent et trop peut affecter la convergence des taux d'apprentissage, et entraîner une perte de fonction de la volatilité minimale, et même divergence gradient.

2.  De plus, le même ne vaut pas pour toutes les mises à jour des paramètres de taux d'apprentissage. Si les données de formation sont rares, et la fréquence caractéristique est très différente, il ne faut pas les mettre à jour au même degré, mais rarement pour les fonctionnalités, vous devez utiliser un taux d'actualisation plus grand.

3.  Un autre défi majeur dans le réseau de neurones, ce qui minimise la fonction d'erreur est non-convexe pour éviter d'engager la pluralité d'autres minima locaux. En effet, le problème ne résulte pas d'une valeur minimale locale, mais du point selle, à savoir une dimension et une autre dimension des points vers le bas inclinée vers le haut. Ces points de selle sont généralement la même valeur d'erreur entourée d'avion, ce qui le rend difficile désorbée algorithme SGD, car la fin du gradient à zéro dans toutes les dimensions.

Optimiser davantage la descente de gradient

Maintenant, nous devons discuter plus optimisés pour différents algorithme de descente de gradient.

1. Momentum

La méthode de haute variance SGD pour que l'oscillation est difficile de stabiliser la convergence des réseaux, afin que les chercheurs ont proposé une technique appelée impulsion (Momentum) de En optimisant la formation liée à la direction d'oscillation et la direction d'affaiblissement sans rapport accélérer la formation de SGD . En d'autres termes, cette nouvelle approche est les composantes du vecteur de mise à jour des étapes précédentes de la 'au vecteur de mise à jour en cours.

V (t) = V (t-1) + () .J ()

Enfin = -V (t) pour mettre à jour les paramètres.

Momentum est généralement réglé à 0,9 ou une valeur similaire.

l'élan ici et dynamique en physique classique est le même, il suffit de jeter un ballon de la montagne à l'élan Collect dans une chute, la vitesse croissante de la balle.

Dans les paramètres du processus de mise à jour, le principe est similaire:

1)  Le réseau peut faire mieux et plus la convergence stable;

2)  Réduire le processus d'oscillation.

Quand il est orienté à la direction réelle de déplacement du gradient, l'augmentation de quantité de mouvement gamma], lorsque la direction réelle de déplacement opposé au gradient, gamma] diminue. Ce moyen d'approche que l'élan est que les paramètres des échantillons pertinents mis à jour, ce qui réduit la mise à jour des paramètres inutiles, entraînant une convergence plus rapide et stable, mais aussi de réduire le processus d'oscillation.

2. Procédé d'accélération de gradient Nesterov

Fellow nommé Iouri Nesterov, qu'il existe une méthode dynamique de problème:

Si un ballon qui roule sur une colline, est tombé à l'aveuglette le long de la pente, ce qui est tout à fait inapproprié. Une balle plus intelligent devrait noter qu'il va aller, alors quand incliné vers le haut à nouveau si la balle décélère.

En fait, lorsque la balle a atteint le point le plus bas de la courbe, l'élan est assez élevé. En raison de la forte dynamique qui pourrait conduire à manquer complètement son minimum, de sorte que la balle ne sait pas quand décélérer, il continue à se déplacer vers le haut.

Yurii Nesterov a publié un document sur la dynamique pour résoudre le problème en 1983, par conséquent, nous appelons cette méthode méthode d'accélération gradient Nestrov.

Dans ce processus, il a proposé d'être grand saut conformément à la dynamique précédente, puis calculer la correction de gradient, réalisant ainsi des mises à jour des paramètres. Cette méthode de pré-mise à jour peut sensiblement empêcher l'oscillation, ne manquez pas le minimum, et la mise à jour des paramètres plus sensibles.

Nesterov méthode d'accélération de gradient (NAG) est un procédé pour conférer une capacité de mouvement à long terme à prédire, pour modifier le paramètre en utilisant une durée d'impulsion V (t-1). En calculant -V (t-1), pour donner une approximation du paramètre de position suivante, où le paramètre est une idée approximative. Par conséquent, Nous ne en calculant une valeur actuelle du paramètre gradient , mais en position sensiblement futurs paramètres pertinents pour prédire efficacement l'avenir :

V (t) = V (t-1) + () J (-V (t-1)), alors = -V (t) pour mettre à jour les paramètres.

Maintenant, nous adaptons le réseau en mettant à jour la pente de la fonction d'erreur, et à son tour accélérer le SGD, et peut être ajustée en fonction de l'importance de chaque paramètre met à jour le paramètre correspondant à la mise à jour plus ou PERFORM moindre ampleur.

3. Procédé Adagrad

Procédé Adagrad est ajustée par un paramètres et les paramètres des mises à jour fréquentes minor paramètre taux d'apprentissage approprié, est mis à jour sensiblement clairsemée. Ainsi, le procédé de traitement de données de Adagrad est très approprié.

A l'étape de temps, Adagrad gradients passés pour chaque paramètre basé sur les différents set calculé pour paramètre différent taux d'apprentissage .

Auparavant, chaque paramètre (i) utiliser le même taux d'apprentissage, chacun sur tous les paramètres [thêta] sont mis à jour. A chaque pas de temps t, Méthodes Adagrad pour chaque paramètre thetav différents taux d'apprentissage, la mise à jour des paramètres correspondants, et vectorisation. Pour simplifier, nous avons des paramètres à l'instant t (i) est réglé sur la pente de la fonction de perte g (t, i).

Figure 3: formule de mise à jour des paramètres

Adagrad à chaque pas de temps est en accord avec les paramètres précédents, le gradient calculé, en modifiant les paramètres correspondants pour chacun des taux d'apprentissage (i).

Le principal avantage de l'approche Adagrad est pas nécessaire de régler manuellement la vitesse d'apprentissage. La plupart des paramètres utilisés la valeur par défaut 0,01 et reste inchangé.

Le principal inconvénient de l'approche Adagrad est toujours de réduire le taux d'apprentissage et la pourriture.

Parce que chaque terme supplémentaire est positif, le carré de la pluralité accumulée des valeurs de gradient dans le dénominateur, de sorte que la somme cumulée de croître au cours de la formation. Cela conduit à son tour à une diminution de taux d'apprentissage, devient très petit nombre de grandeur, le modèle arrêter complètement l'apprentissage, arrêt obtenir des connaissances nouvelles et supplémentaires.

Parce que de plus en plus petite vitesse d'apprentissage, la capacité d'apprentissage du modèle diminue rapidement, et la convergence est très lente, il faut une longue formation et d'apprentissage, à savoir vitesse d'apprentissage inférieure .

Un autre appelé l'algorithme Adadelta améliore le taux d'apprentissage continue de problèmes se désintégrer.

Méthode 4. AdaDelta

Cette méthode est une extension d'un AdaGrad, elle tend à résoudre leur déclin du taux d'apprentissage. Adadelta pas tous accumulés avant le carré du gradient, le gradient jusqu'à ce que la fenêtre accumulé mais limitée à une certaine taille fixe w.

W invalide précédemment stocké gradient de la place avant que les différents gradients et est récursivement défini comme étant le gradient du carré de tous atténuation moyenne précédente. Comme la dynamique semblable fraction , Eg² moyenne mobile à l'instant t, et ne dépend que de la valeur moyenne précédente du gradient de courant.

Eg² = .Eg² + (1-) .g² (t), où gamma] est réglé sur une valeur proche de la quantité de mouvement, d'environ 0,9.

(t) = - g (t, i).

(t + 1) = (t) + (t)

Figure 4: La formule finale de mise à jour de paramètres

Une autre méthode de AdaDelta avantage, il a été nécessaire de prévoir un taux d'apprentissage par défaut.

L'amélioration a été complétée

1)  Calculer des taux d'apprentissage pour chaque paramètre;

2) On a aussi calculé l'élan dynamique à long terme;

3)  Prévenir L'apprentissage carie taux ou gradient disparaissent Et d'autres problèmes.

Que peut-on faire pour améliorer?

le taux d'apprentissage par correspondance est calculé pour chaque paramètre dans la méthode précédente, mais pourquoi ne pas calculé pour chaque paramètre correspondant au changement de dynamique et magasin indépendant il? Ce sont les améliorations point d'Adam algorithme proposé.

algorithme Adam

algorithme Adam Cette méthode d'estimation du temps d'adaptation (Moment Adaptive estimation) , Peut être calculé pour chaque paramètre du taux d'apprentissage adaptatif. Cette méthode non seulement stocke le gradient carré moyenne AdaDelta précédent de la décroissance exponentielle, mais maintient la valeur moyenne précédente un gradient de la décroissance exponentielle M (t), qui est similaire à l'élan:

M (t) est la valeur moyenne du premier gradient de moment, une seconde variance de temps de non-central V (t) est le gradient.

Figure 5: Les deux équations pour le premier moment de gradient et un deuxième moyen de temps de variance

La formule finale de mise à jour de paramètres est la suivante:

Figure 6: La formule finale de mise à jour de paramètres

Ce qui, 1 est fixé à 0,9, 2 est réglé sur 0,9999, est défini 10-8.

Dans les applications pratiques, la méthode Adam à bon escient. Par rapport à d'autres algorithme de taux d'apprentissage adaptatif, la convergence est un apprentissage plus rapide, plus efficace, mais aussi d'autres techniques d'optimisation pour corriger les problèmes, tels que le taux d'apprentissage disparaissent, les paramètres de convergence lente ou pour résultat la perte de mise à jour haute variance les fluctuations de fonction et d'autres questions.

Visualisation de l'algorithme d'optimisation

Figure 8: optimisation SGD du point selle

Comme on peut le voir l'animation ci-dessus, l'algorithme adaptatif peut converger rapidement et trouver rapidement la direction cible de mise à jour correcte des paramètres et le SGD standard, NAG et les méthodes de momentum telle convergence est lente et difficile de trouver la bonne direction.

conclusion

Quelle optimiseur devrions-nous utiliser?

Dans la construction du modèle de réseau neuronal, l'optimiseur sélectionne l'optimum pour la convergence d'apprentissage rapide et correct, tout en ajustant les paramètres internes, la portée maximale pour minimiser la fonction de perte.

Adam bons résultats dans des applications pratiques, plus que toute autre technologie d'adaptation.

Si l'ensemble de données d'entrée sont rares, SGD, NAG et les méthodes de momentum peut ne pas fonctionner. Donc, pour un ensemble de données rares, en utilisant une méthode devrait être le taux d'apprentissage adaptatif, et d'autres avantages sans ajustement du taux d'apprentissage humain, il est possible d'obtenir les paramètres par défaut de la valeur optimale.

Si vous voulez faire un modèle de réseau profond formation réseau de neurones convergence rapide ou construit plus complexe, vous devez utiliser Adam ou toute autre méthode du taux d'apprentissage adaptatif Parce que l'effet réel de ces méthodes est mieux.

J'espère que vous passez cet article, une bonne compréhension des différences entre les caractéristiques des différents algorithmes d'optimisation.

Liens connexes:

algorithme d'optimisation du second ordre:

https://web.stanford.edu/class/msande311/lecture13.pdf

Nesterov méthode d'accélération de gradient: http: //cs231n.github.io/neural-networks-3/

[Fin]

Un avis

Qubit étant mis en place un groupe de la technologie de conduite automatique, pilote automatique de recherche pour des domaines connexes dans les ingénieurs de l'école ou de première ligne. Bienvenue à ajouter qubits micro lettre (qbitbot), notes "pilote automatique" application ~ Jia Ruha

recrutement

Qubits recrute des éditeurs et des journalistes, des opérations, des produits et d'autres positions, basé à Zhongguancun de Beijing. Détails, le numéro de l'interface de dialogue public, répond: « Le recrutement. »

Bryant carrément Harden ne peut pas gagner, il a souligné trois grands boardshort, Harden ont reconnu même!
Précédent
relégation du parti Pourquoi Dalian? Super « méchant » en jouant sur les nuits consécutives, des larmes après le jeu Confessions
Prochain
Garantie prolongée est roi juste une question de temps pour résoudre des programmes spécifiques est devenu de plus en plus 12 Février
LOL intercontinental play-off finale: Mlxg fou pour du mal à saisir l'effondrement SKT, Faker recours impuissants Tetsuo
Zhou Qi formateur a révélé des plans pour terminer quatre objectifs, vous pouvez revenir à la NBA!
Dalian pour défendre! Deux super « méchant » à partir Yatai VS partie départ libéré
10 yuans, 50 yuans, les pièces de 100 yuans viennent! Jetez un oeil à long canon scié? Comment acheter?
Positionnement face tigre midsize SUV 78 menaçant crocs tiggo
LOL play-off intercontinental final: battu de KT Dieu BP IG, Rookie Tin Sau difficile à la situation de traction, LPL manque une minute
Tom KD ne laissant qu'un dieu guerrier qui choisir? 4 comparaison révèle des lacunes, la réponse est un peu surpris
Le professeur Li super adieu spectacle, appelé 60 points Luneng nouveau combat nucléaire! Wu Jingui promettent de faire le travail?
marque FAW-Volkswagen Audi à saisir le propriétaire trois numéros gagnants à la première année d'une nouvelle ère
Blue Hole est également un serveur avec des pommes de terre? Jedi pour survivre en raison de problèmes de serveur d'ancrage de suspension de jeu de divertissement
Pourquoi ne pas aller Morey envoyer Knight? 4 Conditions seulement obtenir deux, blâmer la fusée aussi!