Les informations pratiques concernant le déroulement de l’unité d’enseignement RCP209 « Apprentissage, réseaux de neurones et modèles graphiques » au Cnam se trouvent dans ce préambule.
Cours - Réseaux convolutifs avancés¶
Architectures résiduelles¶
Intuitivement, si un réseau profond atteint de bonnes performances, alors les couches « supplémentaires » ajoutées dans un réseau encore plus profonds seront proches de la fonction d’identité, puisqu’elles ne vont pas changer beaucoup les activations intermédiaires. Hors, plus on empile des couches non-linéaires, plus il est difficile de modéliser la fonction identité.
Une solution consiste à n’apprendre non pas les activations, mais comment modifier les entrées de la couche, c’est-à-dire quelle perturbation ajouter aux entrées. Autrement dit, on ne cherche plus à modéliser \(H(x)\), mais \(H(x) - x\). La couche (ou le bloc) modélisera donc \(F(x) = H(x) - x\). Cette quantité est appelée le résidu. Pour retrouver \(H(x)\), il suffira d’ajouter directement \(x\) à la sortie de la couche \(F\), autrement dit la sortie s’obtiendra par \(y = H(x) = F(x) + x\). Le fait d’ajouter directement \(x\) à la sortie, sans passer par une couche ou une activation non-linéaire, est appelé connexion résiduelle ou skip connection (parfois en français « court-circuit »).
Calcul du gradient¶
Reprenons l’équation de notre bloc résiduel :
Grâce à la rétropropagation, on peut supposer connu le gradient de l’erreur par rapport à la sortie, c’est-à-dire \(\frac{\partial L}{\partial y}\). Pour effectuer la rétropropagation, on cherche désormais le gradient de l’erreur par rapport aux entrées, c’est-à-dire \(\frac{\partial L}{\partial x}\).