Descente de gradient — la bille dans la cuvette

Idée

Pour minimiser une fonction de plusieurs variables, on part d'un point quelconque et on se déplace à chaque étape d'un petit pas dans la direction de plus forte pente descendante.

Outil

Bille dans une cuvette potentielle (mecanique L1) : à chaque instant elle suit $-\nabla V$, et la règle $W \leftarrow W - \alpha, dW$ est l'integrateur d'Euler explicite.

Formule

La fonction update(dW, db, W, b, learning_rate) appliqué la descente de gradient : $$W \leftarrow W - \alpha, dW, \qquad b \leftarrow b - \alpha, db,$$ ou $\alpha$ est le learning_rate (defaut $0.1$). Pour que la soustraction ait un sens, $dW$ doit avoir exactement la même dimension que $W$ (ici $(n,1)$) ; le vidéo le verifie experimentalement.

Piège

La bille suit une trajectoire déterministe dans un potentiel fixe. La 'descente de gradient' implémentée vidéo 5 est full batch (utilise tous les 100 échantillons à chaque itération) : effectivement déterministe. Mais en pratique deep learning, on fait du mini-batch — la 'cuvette' bouge à chaque itération (loss différente sur chaque mini-batch). La trajectoire devient bruitée, plus 'bille dans un brouillard secoué' que 'bille dans cuvette fixe'.