Comment un seul petit fil permet à un réseau d'être vraiment profond.

SRC·21 Source
Plus de couches devraient aider. Passé un seuil, elles nuisent.

Plus de couches devraient aider. Passé un seuil, elles nuisent.

Empilez quelques couches et le réseau s'améliore. Empilez-en cent et une chose étrange arrive : il devient pire — et pas par mémorisation. Il n'arrive même pas à ajuster ce qu'il a déjà vu. La profondeur elle-même est devenue l'obstacle. Le remède est un seul fil, presque trop simple pour y croire : laissez l'entrée de chaque couche sauter en avant et s'ajouter à la sortie.
Un réseau profond devrait copier un réseau peu profond. Il n'y arrivait pas.

Un réseau profond devrait copier un réseau peu profond. Il n'y arrivait pas.

Voici l'énigme. Un réseau profond pourrait toujours égaler un réseau peu profond — il suffit que les couches en trop ne fassent rien, qu'elles laissent passer le signal. Et pourtant, les empilements profonds ordinaires n'arrivaient même pas à apprendre cela. Comme une chaîne de seaux : faites passer un seau plein le long d'une longue file de mains et il arrive à moitié vide — chaque passage en renverse un peu. Apprendre à simplement préserver un signal, à travers des dizaines de couches, se révèle difficile.
Ne refaites pas tout. Ajoutez seulement le changement.

Ne refaites pas tout. Ajoutez seulement le changement.

H(x)=F(x)+x\mathcal{H}(x) = \mathcal{F}(x) + x
Inversez donc la tâche. Ne demandez pas à la couche de reconstruire la réponse à partir de rien — demandez-lui seulement la correction à ajouter. L'entrée passe intacte ; la couche ne fournit que la différence. Comme le stylo rouge d'un correcteur : vous ne recopiez pas la page, vous marquez ce qui change. En clair : la sortie, c'est l'entrée plus la petite retouche que cette couche a apprise.
Désormais, ne rien faire est l'option par défaut.

Désormais, ne rien faire est l'option par défaut.

F(x)0    H(x)=x\mathcal{F}(x)\to 0 \;\Rightarrow\; \mathcal{H}(x) = x
Voyez ce que cela rapporte. Pour laisser le signal tranquille, la couche n'a qu'à mettre sa correction à zéro — et l'entrée file tout droit. Comme une pierre de curling sur la glace : lâchez-la sans balayer et elle poursuit exactement comme elle est arrivée. L'identité n'est plus difficile à apprendre — c'est l'état de repos, gratuit. La couche n'a plus qu'à apprendre de combien dévier.
Le même fil est une autoroute pour l'apprentissage.

Le même fil est une autoroute pour l'apprentissage.

Lx=Ly(1+Fx)\frac{\partial \mathcal{L}}{\partial x} = \frac{\partial \mathcal{L}}{\partial y}\left(1 + \frac{\partial \mathcal{F}}{\partial x}\right)
Il y a un cadeau plus profond, caché dans les maths de la rétropropagation. Dérivez le raccourci et un 1 apparaît à côté du terme propre à la couche. Ce 1 renvoie le signal d'apprentissage tout droit, sans le diluer — si bien que même les toutes premières couches le ressentent nettement. Comme une barre de pompier : lâchez-vous tout en haut et vous atteignez le bas d'une seule glissade droite, en sautant chaque étage. C'est ainsi que meurt le gradient qui s'évanouit.
Ainsi, tout le réseau n'est qu'un total qui s'accumule.

Ainsi, tout le réseau n'est qu'un total qui s'accumule.

xL=x+i=L1F(xi)x_L = x_\ell + \sum_{i=\ell}^{L-1}\mathcal{F}(x_i)
Prenez du recul et la tour se dissout. Chaque bloc ne remplace pas le signal — il ajoute une petite mise à jour à un courant qui les traverse tous. La caractéristique profonde n'est que la première plus la petite contribution de chaque bloc. Comme des pièces qu'on laisse tomber dans un bocal : le niveau ne monte que par petits ajouts, et le total, c'est toute l'histoire. Les couches ne transforment pas tant le signal qu'elles continuent d'éditer un signal partagé.
C'est grâce à ce seul fil que les réseaux sont devenus profonds.

C'est grâce à ce seul fil que les réseaux sont devenus profonds.

Avant le raccourci, les réseaux utiles comptaient des dizaines de couches. Après, des centaines — voire un millier — s'entraînaient sans s'effondrer. Comme le câble principal d'un pont suspendu : une ligne continue, d'un bout à l'autre, laisse la travée s'étendre bien plus loin qu'aucune poutre seule ne pourrait tenir. Ce même fil traverse aujourd'hui chaque bloc transformer dont vous avez entendu parler. La profondeur a cessé d'être un mur pour devenir un cadran.
Si chaque couche ne fait qu'effleurer, où pense-t-elle ?

Si chaque couche ne fait qu'effleurer, où pense-t-elle ?

Voici le malaise. Si le signal file presque tout droit, et que chaque couche n'ajoute qu'une faible correction à un courant qui est déjà presque la réponse — alors, où le réseau vit-il vraiment ? Dans les couches affairées qui poussent, ou dans le courant silencieux qu'elles n'arrêtent jamais d'éditer ? 🌱 Peut-être que la profondeur n'a jamais été une pile de penseurs. Peut-être n'est-elle qu'une longue et lente reconsidération.
touchez →balayez ↑ pour approfondirbalayez ↓ pour quitter