Optimiseurs

Gradient Descent

Gradient descent + Momentum

Utilisé en conjonction avec SGD, le momentum utilise les dérivés passées pour lisser les mises à jour: au lieu d’utiliser la dérivée de la fonction coût à l’étape i, on utilise la moyenne pondérée exponentiellement des dérivées de l’étape 1 à i (appelée vélocité v) pour mettre à jour les poids. Ça permet de minimiser les oscillations et ainsi accélérer la convergence de l’algorithme.

Momentum nécessite un hyperparamètre additionnel: β (beta).

gradient = dJ(w)
v  = beta * v + (1 - beta) * gradient
W -= alpha * v
# scale alpha by (1 - beta) beforehand
v  = beta * v + alpha * gradient
w -= v

Stochastic Gradient Descent with momentum

Nesterov Accelerated Gradient (NAG)

Le Momentum de Nesterov est un simple changement par rapport au momentum standard: au lieu de calculer la dérivée par rapport au poids de l’étape i, on y ajoute la vélocité. Cela aide à lisser davantage la convergence de l’algorithme: si le momentum point dans la mauvaise direction, la derivée peut aider à corriger le tir.

gradient = dJ(w - (beta*v))
v  = beta * v + (1 - beta) * gradient
W -= alpha * v

Adaptive Gradient (Adagrad)

RMSprop / Adadelta

RMSprop et Adadelta font la même chose mais ont été développés pour deux teams différentes de chercheurs.

Adaptive Moment estimation (Adam)

Adam est l’optimiseur qui obtient les meilleurs résultats en moyenne. Il combine RMSprop et Momentum

  1. Calcule la moyenne pondérée exponentiellement des dérivées passées (momentum)

  2. Calcule la moyenne pondérée exponentiellement des carrés des dérivées passés (rmsprop)

  3. Ces moyennes ont un bias vers zéro, pour le contrer une correction de biais est appliquée. t est une variable incrémentées au fur et à mesure des batchs et epochs.

  4. Les poids sont mis à jour en utilisant les moyennes calculées

gradient = dJ(W)

v  = beta1 * v + (1 - beta1) * gradient
s  = beta2 * s + (1 - beta2) * gradient**2

v2 = v/(1 - beta1**t)
s2 = s/(1 - beta1**t)

w -= alpha * (v2/(sqrt(s2) + epsilon))

Les valeurs proposées pour ADAM sont α=0.001, β1=0.9, β2=0.999, ϵ=10e-8.

Optimisation Algorithm — Adaptive Moment Estimation(Adam)