10 + gradient algorithme d'optimisation descente tricheur feuille

Titre original | 10 Gradient Descent Optimisation Algorithmes + Cheat Sheet

Auteur | Raimi Karim Vers la science des données

Traducteur | Stephen de deux Gouzi (Shenyang Université de technologie chimique), intelLigenJ (Ingénieur algorithme), vendredi, Wright Norton, un litre mer

Cet article Editeur: poissons Wang

Texte anglais: https: //towardsdatascience.com/10-gradient-descent-optimisation-algorithms-86989510b5e9

Regarder fonction gradient d'optimisation de descente est une valeur minimum, souvent utilisée pour mettre à jour les coefficients de pondération dans le processus d'apprentissage back-propagation réseau de neurones dans le modèle de profondeur.

Dans cet article, je vais résumer le cadre plus populaire d'apprentissage commun dans l'algorithme de descente de gradient de profondeur (comme tensorflow, Keras, PyTorch, Caffe). Le but de cet article est de faciliter la compréhension et la maîtrise du contenu, car en plus de résumer pas beaucoup, mais il peut servir de votre base pour commencer à partir de zéro « feuille de triche. »

Dans un problème de régression linéaire, j'ai gradient atteint SGD chuté, l'élan, Nesterov, RMSprop et Adam, obtenir le code (JavaScript)

Quel algorithme gradient descente fonction d'optimisation?

Par algorithme d'optimisation descente de gradient peut fonctionner dans les trois principaux aspects suivants:

1, le taux d'apprentissage composant modifiant, [alpha], ou

2, la modification de la composante de gradient L / w

3, ou les deux

Regardons l'équation suivante 1:

Diverses quantités d'algorithme du gradient stochastique: Equation 1

taux d'apprentissage vs principale différence optimisation descente de gradient ordonnanceur est que l'optimisation de descente de gradient laisse le taux d'apprentissage est multipliée par un facteur qui est une fonction du gradient, afin d'ajuster le taux du composant d'apprentissage, toutefois, le taux d'apprentissage est multiplié par le programmateur de sorte que la constante de taux d'apprentissage est un facteur de constante ou une fonction de la grille de temps, afin de mettre à jour le taux d'apprentissage.

La première méthode principalement par un facteur compris entre 0 et 1 de l'apprentissage (taux d'apprentissage) de sorte que le taux élevé d'apprentissage est réduite (par exemple RMSprop). Le second procédé utilisant généralement un gradient de moyenne glissante (gradient) (également dénommé « momentum ») plutôt que pur direction de descente de gradient est déterminée. Un troisième procédé est une combinaison des deux, comme Adam et AMSGrad.

Fig.2: tous les types d'algorithme d'optimisation de descente de gradient, année de publication et ses idées de base utilisées.

La figure 3 représente un top-down variantes de la façon dont ces types d'algorithmes d'optimisation Adam ont évolué à partir simple descente de gradient pur (SGD) est. SGD commençaient à évoluer dans deux directions, l'une est AdaGrad, principalement à ajuster le taux d'apprentissage (taux d'apprentissage). L'autre est Momentum, les principaux composants du gradient de réglage (gradient) de (traduction: ici en arrière texte écriture). Avec l'étape de l'évolution par étape, Momentum et l'intégration RMSprop, « Adam » (Adam) est né. Vous pouvez penser que j'ai objection à cette organisation, mais j'ai été si compris à l'heure actuelle.

Fig.3: Figure types d'algorithme d'optimisation évolutive (GIST)

notation

  • t - le nombre d'itérations

  • w - le poids droit et nous avons besoin de mettre à jour les paramètres

  • - taux d'apprentissage

  • L / w - L (fonction de la perte) de la pente de w

  • J'unifié le papier était apparu en lettres et symboles grecs, afin que nous puissions être unis perspective « évolutive » ces algorithmes d'optimisation

1. algorithme du gradient stochastique (Stochastic Gradient Descente)

La plupart algorithme primitif algorithme du gradient stochastique basée principalement sur le courant gradient L / w taux d'apprentissage est multipliée par un coefficient de mettre à jour le modèle des poids w.

2. algorithme de Momentum (Momentum)

algorithme de Momentum (gradient moyenne mobile exponentielle, Polyak, 1964) avec un gradient plutôt que le gradient de courant d'impulsion de w est mis à jour. Dans un article ultérieur, vous verrez la moyenne mobile exponentielle comme un moyen de mettre à jour l'élan presque devenu une norme dans l'industrie.

parmi

Et V 0 est initialisé. sera généralement réglé à 0,9.

Il est intéressant de noter que de nombreux articles en référence à l'algorithme Momemtum utilise la Ning Qian, 1999 article. Mais la source originale de l'algorithme est Sutskever et al. La dynamique de l'algorithme classique en 1964 a été présenté Polyak, donc Polyak a également cité ci-dessus article. (James Merci de remarquer que sur)

descente de gradient d'accélération 3.Nesterov (NAG)

Après Polyak proposé l'élan de la méthode (jeu de mots: Polyak momentum Masamori), Nesterov accélérée en utilisant une méthode de descente de gradient similaire à la méthode de mise à jour également mises en uvre (Sutskever et al, 2013.). Cette méthode de mise à jour du V, à savoir la moyenne mobile exponentielle de la me appel projetée gradient.

parmi

Et V est initialisé à zéro.

Le second est la dernière équation d'un gradient de projection. Cette valeur peut être « pas en avant » est obtenue (équation 4) à l'aide de la vitesse précédente. Cela signifie que pour le t pas de temps, nous devons effectuer à la propagation avant l'exécution finale avant une autre rétropropagation. Cette étape est:

1. Utilisation de la vitesse précédente poids actuel w poids de projection mis à jour w *

(Équation 4)

2. Utiliser une saillie avant de se propager le calcul du poids

3. Pour obtenir un gradient projeté L / w *

4. Calculer sur le V et w

Par défaut commun:

  • = 0,9

S'il vous plaît noter que le papier de descente de gradient d'accélération Nesterov d'origine (Nesterov, 1983) n'est pas sur la descente de gradient stochastique, il n'y a pas d'équation de descente de gradient clair. Ainsi, une publication de référence plus appropriées Sutskever et al mentionnés ci-dessus. En 2013, il décrit l'utilisation de NAG dans la descente de gradient stochastique. (Encore une fois, je tiens à remercier James commentaires sur HackerNews point cela.)

4. L'algorithme de taux d'apprentissage adaptatif (Adagrad)

algorithme du gradient adaptatif, aussi connu comme algorithme AdaGrad (Duchi et al, 2011), pour étudier la composante de taux d'apprentissage par le taux d'apprentissage divisé par la racine carrée de S, où S est le gradient du carré de la somme cumulative actuelle et passée (par exemple, jusqu'à l'instant t). On notera que le même algorithme et SGD, l'algorithme de taux d'apprentissage adaptatif composant gradient reste inchangé.

Parmi eux,

La valeur initiale est réglée sur 0 et S.

S'il vous plaît noter que cette ajouté dans le dénominateur. Keras appelé facteur flou, ce qui est une petite valeurs à virgule flottante pour assurer que nous atteindrons jamais que zéro.

La valeur par défaut (à partir de Keras):

  • = 0,01

  • = 10

L'algorithme RMS-passe (RMSprop)

RMS algorithme de propagation, également connu comme algorithme RMSprop (Hinton et al., 2012), est un autre taux d'amélioration des algorithmes d'apprentissage adaptatif sur l'algorithme AdaGrad. Il est calculé en utilisant une moyenne pondérée de manière exponentielle, au lieu d'utiliser le gradient au carré et accumulé.

Parmi eux,

La valeur initiale est réglée sur 0 et S.

La valeur par défaut (à partir de Keras):

  • = 0,001

  • = 0,9 (l'auteur recommandé)

  • = 10

6. L'algorithme de delta adaptatif (Adadelta)

Et même, Adadelta (Zeiler, 2012) est de RMSprop un algorithme adaptatif pour le taux d'amélioration de l'apprentissage basé sur l'algorithme AdaGrad. Adadelta doit être abréviation « delta adaptative », dans lequel, delta représente la différence entre le poids actuel, et la ré-actualisation des poids.

Adadelta RMSprop algorithme de différence et l'algorithme est que l'algorithme de delta Adadelta utilisée moyenne pondérée de manière exponentielle pour remplacer le D initial du taux d'apprentissage paramètre algorithme Adadelta.

Parmi eux,

D et S et la valeur initiale est fixée à 0. En outre,

La valeur par défaut (à partir de Keras):

  • = 0,95

  • = 10

7. algorithme adaptatif d'estimation (ADAM)

algorithme d'estimation pour l'adaptation, aussi connu comme algorithme Adam (Kingma et Ba, 2014), est une combinaison de l'élan et de l'algorithme utilisé RMSprop. il par

(I) en utilisant un gradient composant V, la moyenne du gradient exponentiel en mouvement (par exemple, quantité de mouvement), et

(Ii) divisé par la racine carrée du taux d'apprentissage S, gradient quadratique moyenne mobile exponentielle (comme dans le RMSprop) composant de taux d'apprentissage pour la fonction.

parmi

Déviation est corrigé et il

La valeur initiale est réglée sur 0 V et S.

Les auteurs ont recommandé des valeurs par défaut:

  • = 0,001

  • = 0,9

  • = 0,999

  • = 10

8. Adamax algorithme

Adamax (Kingma et Ba, 2015) en utilisant une gamme infinie (d'où « max ») par Adam auteur Algorithm ont effectué un algorithme adapté son optimiseur. V est la moyenne pondérée de l'indice de gradient, S p est une moyenne pondérée de façon exponentielle de la dernière étape, similaire à la fonction maximale, comme suit (voir le document de preuve de convergence).

parmi

L'écart de l'amendement V, et

La valeur initiale est réglée sur 0 V et S.

Les auteurs ont recommandé des valeurs par défaut:

  • = 0,002

  • = 0,9

  • = 0,999

9. Naadam algorithme

Nadam par le terme (Dozat, 2015) et est le nom d'Adam optimiseur épissage Nesterov. composants Nesterov algorithme Naadam produit une contrainte plus forte sur le taux d'apprentissage, alors que la mise à jour du gradient ont également un impact plus direct. En général, le montant du lecteur sur lequel vous souhaitez utiliser RMSprop, ou Adam, la plupart d'entre eux peut être utilisé Naadam obtenir de meilleurs résultats.

Adam optimiseur peut aussi être écrit:

Equation 5: optimiseur Adam poids lourds update

Nesterov Nadam en utilisant l'équation ci-dessus V_hat la fois précédente pour remplacer le V_hat de l'heure actuelle, pour réaliser la mise à jour d'avance à l'étape Gradient:

parmi

et il

V S et une valeur initiale de 0 est réglé.

La valeur par défaut (à partir de Keras):

  • = 0,002

  • = 0,9

  • = 0,999

  • = 10

10. algorithme AMSGrad

Une autre variante est AMSGrad Adam algorithme Algorithm (Reddi et al., 2018). L'algorithme revisite Adam composantes de taux d'apprentissage adaptatif et apporter des modifications à faire en sorte que le courant S est toujours supérieure à l'étape de temps précédent.

parmi

en outre

V S et une valeur initiale de 0 est réglé.

La valeur par défaut (à partir de Keras):

  • = 0,001

  • = 0,9

  • = 0,999

  • = 10

intuition

Je voudrais partager avec vous une partie de la vision intuitive, pourquoi optimiseur de descente de gradient à utiliser une partie de l'indice de gradient moyenne mobile (EMA), une partie du taux d'apprentissage utilisant la racine carrée moyenne (RMS).

Pourquoi prendre l'indice de gradient moyenne mobile?

Nous devons utiliser une certaine valeur pour mettre à jour les poids. Notre seule une partie de celui-ci est la valeur actuelle du gradient, donc nous allons l'utiliser pour mettre à jour les poids.

Mais ne prendre que la valeur du gradient de courant est pas assez bon. Nous espérons que nos mises à jour sont (pour le modèle, il est) « une meilleure orientation. » Considérons (chaque mise à jour) la valeur de gradient avant de l'inclure.

La combinaison de gradient valeur de gradient passé et actuel des informations d'une manière que nous pouvons tous en moyenne simple gradient passé et actuel. Mais cela signifie que le poids lourd de chaque gradient sont égaux. Ceci est contraire à l'intuition, parce que dans l'espace, si nous sommes proches du minimum, les valeurs les plus récentes de gradient peut fournir des informations plus efficaces.

Par conséquent, la méthode la plus sûre est d'utiliser la moyenne mobile exponentielle, qui pèse la dernière valeur de gradient de poids (importance) supérieure à la valeur précédente.

Pourquoi devrait le taux d'apprentissage divisé par le gradient RMS de celui-ci?

Le but est d'ajuster le taux d'apprentissage. Quels ajustements pour répondre? La réponse est dégradé. Nous devons nous assurer que, lorsque le gradient est important, nous voulons mettre à jour de façon appropriée réduite (sinon une grande valeur en soustrayant le poids actuel!)

Pour atteindre cet effet, que le taux d'apprentissage divisé par le gradient de courant pour obtenir un taux d'apprentissage d'ajustement.

Rappelez-vous, les ingrédients de taux d'apprentissage doit toujours être positif (parce que la composante de taux d'apprentissage, multiplié par le composant de gradient, ce dernier doit avoir le même signe). Afin de vous assurer qu'il est toujours positif, nous pouvons le prendre à sa valeur absolue ou carrée. Lorsque nous prenons le gradient actuel de la place, vous pouvez alors prendre la racine carrée « Annuler » cette place.

Mais, comme l'élan des idées, comme en utilisant uniquement la valeur actuelle du gradient est pas assez bon. Nous espérons que notre formation (chaque) mise à jour de mise à jour peut mieux guider (modèle). Par conséquent, nous avons également besoin d'utiliser la valeur gradient avant. Comme indiqué plus haut, nous prenons la dernière pente moyenne mobile exponentielle ( «carrée moyenne), puis en prenant la racine carrée (la racine), à savoir « racine carrée moyenne »(RMS). En outre AdaGrad (gradient de somme cumulative du carré), tous optimiseur de ce document permet d'optimiser la portion à taux d'apprentissage.

Cheat Sheet

(points ci-dessus)

S'il y a quelque chose de mal à cela, ou si le contenu de cet article peut être encore améliorée, s'il vous plaît me contacter! ?

référence

Vue d'ensemble de l'algorithme d'optimisation de descente de gradient (ruder.io)

Pourquoi Momentum fonctionne vraiment Ceci est une histoire populaire sur la dynamique: descente de gradient est un homme qui marche dans les montagnes.

Merci Ren Jie, Derek, William Tjhi, Chan Kai, Serene et James pensées sur cet article, suggestions et corrections.

Je veux continuer à voir les articles liens et références connexes? Lei Feng Lei Feng Lei réseau de réseau de réseau Feng

Cliquez sur [10 + gradient descente algorithme d'optimisation] pour accéder à la feuille de triche:

programmes gratuits amis - « fun Python: de l'exploration de données à une étude approfondie » Le cours couvre tout de Python d'introduction à CV, la pratique de la PNL, etc., est très bon apprentissage en profondeur des cours d'introduction, pour un total section 932 heures, avec une longueur totale d'environ à 13 heures. . AI Yanxishe ce cours maintenant libre et ouvert à la communauté pour authentifier l'utilisateur, tant que vous remplissez le « Python » dans les remarques boîte lors de la certification, être certifié par, vous pouvez obtenir l'autorisation de débloquer tous les cours. Vous avez tout Oh ~

page Cours: https: //ai.yanxishe.com/page/domesticCourse/37

Authentification: https: //ai.yanxishe.com/page/blogDetail/11609

550 ans bateau dragon ancestral mis en scène le drame, et vu Jubei Roi Dragon
Précédent
principes de base de guide d'ondes optiques secrets, comprendre les défis AR lunettes derrière (sous)
Prochain
Remodelage "Smart City-Smart Vision" modalités techniques et commerciales Rétrospective
Yanqing secrétaire du village fraude contrat présumé de première instance emprisonné pendant 12 ans
Un autre objectif du projet a commencé, l'année après mise en service! Décryptage trois Longwan de Chine du Sud développement de la zone de la mer « accélération »
Deux ans des milliers d'heures de formation rigoureuse! Les agents de bord est « Marque » la
Six experts de premier plan pour redéfinir l'avenir de l'AI six types de financiers Shu CCF-GAIR 2019
atterrissage Autopilot pas hésitants, puis un total de 18 grand café Transport Intelligent | CCF-GAIR 2019
Cartes pour les personnes ligne Qinghai-Tibet: après chaque bannière de soie, il est l'histoire de la vie et la mort
Connexion quatre Science City et le plus grand centre d'exposition du monde, canal profond dans l'industrie aura quel effet?
Vous êtes prêt à l'étude, ne croit pas que le ciel de la « tarte »
« Avec mon père est allé étudier à l'étranger » lancement, jouer l'oncle de la graisse, Honglei lutte psychologique pour longtemps
ville Jingdong Zheng Yu: AI et les grandes données seront "remodeler la ville" | CCF-GAIR 2019
Examen Yuan publier des brochures pris ajustement, impliquant trois écoles quatre changements