Blame
|
1 | # 9. Régularisation et dropout |
||||||
| 2 | ||||||||
| 3 | Un réseau profond possède une capacité suffisante pour ajuster presque n'importe quel jeu d'entraînement, y compris son bruit. La régularisation regroupe les techniques qui échangent un peu de précision sur l'entraînement contre une meilleure généralisation. Ce module couvre la décroissance des poids ($L_2$), son pendant $L_1$, le dropout avec le rééchelonnement de l'inverted dropout, ainsi que les régularisateurs plus légers que sont l'arrêt précoce et l'augmentation de données. |
|||||||
| 4 | ||||||||
| 5 | **Objectifs** |
|||||||
| 6 | - Rappeler ce qu'est le surapprentissage et pourquoi les réseaux à forte capacité y sont sujets. |
|||||||
| 7 | - Ajouter une pénalité $L_2$ au coût et en lire l'effet sur le gradient (décroissance des poids). |
|||||||
| 8 | - Opposer $L_2$ et $L_1$ et leurs pressions différentes sur les poids. |
|||||||
| 9 | - Appliquer l'inverted dropout comme un masque de Bernoulli avec rééchelonnement en $1/p$. |
|||||||
| 10 | - Expliquer la vision « ensemble » du dropout et pourquoi le rééchelonnement laisse les activations non biaisées. |
|||||||
| 11 | - Placer l'arrêt précoce et l'augmentation de données dans la même boîte à outils de généralisation. |
|||||||
| 12 | ||||||||
| 13 | ## 9.1 Rappel sur le surapprentissage |
|||||||
| 14 | ||||||||
| 15 | Un modèle surapprend lorsqu'il fait tendre son coût d'entraînement $J$ vers zéro en mémorisant les exemples d'entraînement, y compris leur bruit, si bien qu'il généralise mal à des données non vues. L'écart entre la performance sur l'entraînement et celle sur le test est le signe révélateur. Les réseaux profonds y sont particulièrement exposés car leur nombre de paramètres $\sum_l n_l\, n_{l-1}$ dépasse généralement le nombre d'exemples d'entraînement, ils ont donc la capacité de mémoriser. |
|||||||
| 16 | ||||||||
| 17 | *Remarque :* le compromis biais-variance sous-jacent a été introduit dans le cours de Machine Learning, voir [Concepts généraux](/fr/Machine%20Learning/02%20General%20concepts). La régularisation ramène un modèle à forte variance vers le point idéal. |
|||||||
| 18 | ||||||||
| 19 | Le remède consiste à contraindre la capacité effective pour que le réseau préfère des fonctions plus simples. Chaque technique ci-dessous est une telle contrainte. |
|||||||
| 20 | ||||||||
| 21 | ## 9.2 Régularisation L2 (décroissance des poids) |
|||||||
| 22 | ||||||||
| 23 | ### 9.2.1 La pénalité |
|||||||
| 24 | ||||||||
| 25 | La régularisation $L_2$ ajoute au coût une pénalité proportionnelle à la magnitude au carré de chaque matrice de poids. Avec $\lambda \ge 0$ l'intensité de régularisation, le coût régularisé est : |
|||||||
| 26 | ||||||||
| 27 | $$\boxed{ J_{\text{reg}} = J + \frac{\lambda}{2}\sum_{l=1}^{L}\lVert W^{[l]} \rVert_F^2 }$$ |
|||||||
| 28 | ||||||||
| 29 | où $\lVert W^{[l]} \rVert_F^2 = \sum_{i,j}\big(W^{[l]}_{ij}\big)^2$ est la norme de Frobenius au carré. Les biais $b^{[l]}$ sont normalement exclus de la pénalité, car ils ajoutent une capacité négligeable et les pénaliser tend à provoquer du sous-apprentissage. |
|||||||
| 30 | ||||||||
| 31 | ### 9.2.2 Effet sur le gradient |
|||||||
| 32 | ||||||||
| 33 | C'est la dérivation de la pénalité qui donne à la technique son second nom. Le terme supplémentaire contribue à hauteur de $\lambda W^{[l]}$ au gradient par rapport à $W^{[l]}$ : |
|||||||
| 34 | ||||||||
| 35 | $$\boxed{ \frac{\partial J_{\text{reg}}}{\partial W^{[l]}} = \frac{\partial J}{\partial W^{[l]}} + \lambda\, W^{[l]} }$$ |
|||||||
| 36 | ||||||||
| 37 | En injectant ceci dans une étape de descente de gradient avec taux d'apprentissage $\alpha$, on rétrécit le poids avant d'appliquer la mise à jour guidée par les données : |
|||||||
| 38 | ||||||||
| 39 | $$\boxed{ W^{[l]} \leftarrow (1 - \alpha\lambda)\, W^{[l]} - \alpha\,\frac{\partial J}{\partial W^{[l]}} }$$ |
|||||||
| 40 | ||||||||
| 41 | *Remarque :* le facteur $(1 - \alpha\lambda) < 1$ multiplie chaque poids à chaque étape, ce qui est littéralement une décroissance vers zéro. C'est pourquoi la régularisation $L_2$ est appelée décroissance des poids. Des poids plus petits signifient une fonction plus lisse et de plus faible variance. |
|||||||
| 42 | ||||||||
| 43 | ### 9.2.3 Comparaison avec L1 |
|||||||
| 44 | ||||||||
| 45 | Remplacer la norme au carré par la norme en valeur absolue donne la régularisation $L_1$, qui pénalise à hauteur de $\lambda\sum_l \lVert W^{[l]} \rVert_1 = \lambda\sum_{l,i,j}\lvert W^{[l]}_{ij}\rvert$. Sa contribution au gradient est $\lambda\,\operatorname{sign}(W^{[l]})$, une attraction constante vers zéro indépendante de la magnitude. |
|||||||
| 46 | ||||||||
| 47 | | Pénalité | Ajout au coût | Terme de gradient | Pression sur les poids | |
|||||||
| 48 | | --- | --- | --- | --- | |
|||||||
| 49 | | $L_2$ | $\tfrac{\lambda}{2}\lVert W \rVert_F^2$ | $\lambda W$ | rétrécit tous les poids proportionnellement, rarement exactement nuls | |
|||||||
| 50 | | $L_1$ | $\lambda\lVert W \rVert_1$ | $\lambda\,\operatorname{sign}(W)$ | pousse de nombreux poids exactement à zéro (parcimonie) | |
|||||||
| 51 | ||||||||
| 52 | *Remarque :* $L_1$ produit des matrices de poids parcimonieuses et fait donc aussi office de sélection de variables. $L_2$ est le choix par défaut en apprentissage profond car elle est lisse partout et s'associe proprement à la descente de gradient. |
|||||||
| 53 | ||||||||
| 54 | ## 9.3 Dropout |
|||||||
| 55 | ||||||||
| 56 | ### 9.3.1 L'idée |
|||||||
| 57 | ||||||||
| 58 | Le dropout régularise en injectant du bruit dans les activations. À chaque passe avant d'entraînement, chaque unité est conservée avec probabilité $p$ et mise à zéro avec probabilité $1 - p$, de façon indépendante. Le réseau ne peut donc s'appuyer sur aucune unité isolée, il répartit alors la représentation sur de nombreuses unités et cesse de les co-adapter. |
|||||||
| 59 | ||||||||
| 60 | ### 9.3.2 Inverted dropout |
|||||||
| 61 | ||||||||
| 62 | Soit $m$ un masque de Bernoulli$(p)$ de même forme que l'activation $a^{[l]}$, tiré à neuf à chaque étape. L'inverted dropout applique le masque puis divise immédiatement par $p$ : |
|||||||
| 63 | ||||||||
| 64 | $$\boxed{ \tilde{a}^{[l]} = \frac{m \odot a^{[l]}}{p}, \qquad m_i \sim \text{Bernoulli}(p) }$$ |
|||||||
| 65 | ||||||||
| 66 | L'activation masquée et rééchelonnée $\tilde{a}^{[l]}$ circule alors vers la couche $l+1$ à la place de $a^{[l]}$. Au moment de l'inférence, le dropout est désactivé et se comporte comme l'identité, $\tilde{a}^{[l]} = a^{[l]}$, sans masque ni rééchelonnement. |
|||||||
| 67 | ||||||||
| 68 | *Remarque :* conserver le rééchelonnement en $1/p$ au moment de l'entraînement (d'où « inverted ») est ce qui permet à l'inférence de rester une simple passe avant. La forme ancienne, non inversée, multipliait au contraire les poids par $p$ au moment du test, ce qui est facile à oublier. |
|||||||
| 69 | ||||||||
| 70 | ### 9.3.3 Pourquoi le rééchelonnement |
|||||||
| 71 | ||||||||
| 72 | Comme $\mathbb{E}[m_i] = p$, l'espérance d'une unité conservée et rééchelonnée est égale à l'activation d'origine : |
|||||||
| 73 | ||||||||
| 74 | $$\boxed{ \mathbb{E}\!\left[\tilde{a}^{[l]}_i\right] = \frac{p\cdot a^{[l]}_i + (1-p)\cdot 0}{p} = a^{[l]}_i }$$ |
|||||||
| 75 | ||||||||
| 76 | L'entrée attendue de la couche suivante est donc inchangée, et le réseau voit le même signal moyen que le dropout soit activé ou non. C'est précisément pourquoi aucune correction n'est nécessaire à l'inférence. |
|||||||
| 77 | ||||||||
| 78 | ### 9.3.4 La vision « ensemble » |
|||||||
| 79 | ||||||||
| 80 | Un réseau comportant $k$ unités susceptibles d'être supprimées définit $2^k$ sous-réseaux amincis possibles, un par masque. Chaque étape d'entraînement échantillonne un sous-réseau et effectue une étape de gradient dessus, et tous les sous-réseaux partagent leurs poids. Au moment du test, le réseau complet avec ses activations rééchelonnées approxime la prédiction moyenne de cet ensemble exponentiellement grand, ce qui explique pourquoi le dropout se comporte comme une moyenne de modèles à bas coût. |
|||||||
| 81 | ||||||||
| 82 |  |
|||||||
| 83 | ||||||||
| 84 | *Le dropout entraîne à chaque étape un sous-réseau aminci différent en supprimant des unités au hasard, puis les moyenne à l'inférence.* |
|||||||
| 85 | ||||||||
| 86 | *Remarque :* les probabilités de conservation typiques sont $p$ autour de $0{,}8$ pour les couches d'entrée et $0{,}5$ pour les couches cachées. Un $p$ plus petit signifie une régularisation plus forte. |
|||||||
| 87 | ||||||||
| 88 | ## 9.4 Autres régularisateurs |
|||||||
| 89 | ||||||||
| 90 | ### 9.4.1 Arrêt précoce |
|||||||
| 91 | ||||||||
| 92 | On suit le coût de validation pendant l'entraînement et on s'arrête à l'époque où il commence à remonter, alors même que le coût d'entraînement continue de baisser. S'arrêter tôt maintient les poids près de leurs faibles valeurs initiales, ce qui agit comme une pénalité $L_2$ implicite sans ajouter de terme au coût. |
|||||||
| 93 | ||||||||
| 94 |  |
|||||||
| 95 | ||||||||
| 96 | *La perte d'entraînement continue de baisser tandis que la perte de validation repart à la hausse, l'écart est le surapprentissage et son minimum est l'endroit où l'arrêt précoce interrompt l'entraînement.* |
|||||||
| 97 | ||||||||
| 98 | ### 9.4.2 Augmentation de données |
|||||||
| 99 | ||||||||
| 100 | On élargit le jeu d'entraînement avec des transformations des entrées qui préservent l'étiquette (recadrages aléatoires, retournements, petites rotations, variation de couleur pour les images, bruit pour l'audio). Une variété plus effective dans les données réduit directement la variance, c'est de la régularisation appliquée au jeu de données plutôt qu'aux poids. |
|||||||
| 101 | ||||||||
| 102 | ### 9.4.3 Récapitulatif |
|||||||
| 103 | ||||||||
| 104 | | Technique | Où elle agit | Effet | |
|||||||
| 105 | | --- | --- | --- | |
|||||||
| 106 | | $L_2$ (décroissance des poids) | coût via $\lambda W$ | rétrécit les poids, fonction plus lisse | |
|||||||
| 107 | | $L_1$ | coût via $\lambda\,\operatorname{sign}(W)$ | poids parcimonieux, sélection de variables | |
|||||||
| 108 | | Dropout | activations à l'entraînement | ensemble de sous-réseaux amincis | |
|||||||
| 109 | | Arrêt précoce | boucle d'entraînement | maintient les poids près de l'initialisation | |
|||||||
| 110 | | Augmentation de données | données d'entraînement | plus de variété, variance plus faible | |
|||||||
| 111 | ||||||||
| 112 | *Remarque :* ces techniques se composent. Un réseau convolutif utilise couramment ensemble la décroissance des poids, le dropout et une forte augmentation de données. |
|||||||
| 113 | ||||||||
| 114 | *Le surapprentissage étant maîtrisé, le module suivant construit une architecture dont le partage des poids est lui-même une forme de régularisation : le réseau convolutif.* |
|||||||
| 115 | ||||||||
| 116 | --- |
|||||||
| 117 | Suivant : [Réseaux convolutifs](/fr/Deep%20Learning/10%20Convolutional%20networks) · [Vue d'ensemble du cours](/fr/Deep%20Learning) |
|||||||
