Vidéo : Rétropropagation de gradient, analyse. Le deep learning

Grant Sanderson • 3Blue1Brown • Boclips

Rétropropagation de gradient, analyse. Le deep learning

09:44

Transcription de vidéo

L’hypothèse fondamentale ici est que vous avez regardé la troisième partie, donnant un aperçu intuitif de l’algorithme de rétropropagation de gradient. Ici, nous devenons un peu plus formels et nous nous approfondissons dans le calcul correspondant. C’est normal que cela soit au moins un peu déroutant. Donc, le mantra de faire une pause régulièrement et réfléchir s’applique aussi bien ici que partout ailleurs. Notre objectif principal est de montrer comment les utilisateurs du machine learning envisagent généralement la règle de dérivation en chaîne de l’analyse dans le contexte des réseaux, ce qui a un sens différent de la manière dont la plupart des cours introductifs d’analyse abordent le sujet. Pour ceux d’entre vous qui sont gênés avec l’analyse pertinente, j’ai toute une série sur le sujet.

Commençons par un réseau extrêmement simple, où chaque couche contient un seul neurone. Donc, ce réseau particulier est déterminé par trois poids et trois biais. Notre objectif est de comprendre à quel point la fonction de coût est sensible à ces variables. De cette façon, nous savons quels ajustements apportés à ces termes entraîneront la réduction la plus efficace de la fonction de coût. Et nous allons juste nous concentrer sur le lien entre les deux derniers neurones.

Notons l’activation de ce dernier neurone avec un exposant 𝐿, indiquant dans quelle couche il se trouve. L’activation du neurone précédent est donc 𝑎 𝐿 moins un. Ce ne sont pas des exposants. C’est juste un moyen d’indexer ce dont nous parlons, car je veux garder des exposants pour différents indices plus tard. Maintenant, disons que la valeur que nous voulons que cette dernière activation ait, pour un exemple d’entraînement donné, est 𝑦. Par exemple, 𝑦 pourrait être zéro ou un. Ainsi, le coût de ce réseau simple pour un seul exemple de formation est 𝑎 𝐿 moins 𝑦 au carré. Nous noterons le coût de cet exemple de formation comme 𝐶 zéro.

Pour rappel, cette dernière activation est déterminée par un poids que je vais appeler 𝑤 𝐿, multiplié par l’activation du neurone précédent plus un biais, que je vais appeler 𝑏 𝐿. Et puis vous pompez cela à travers une fonction non linéaire spéciale comme le sigmoïde ou ReLU. En fait, cela nous facilitera la tâche si nous attribuons un nom spécial à cette somme pondérée, comme 𝑧, avec le même exposant que les activations correspondantes. Donc, cela fait beaucoup de termes. Et une façon que vous pourriez conceptualiser est que le poids, l’action précédente et le biais tous ensemble sont utilisés pour calculer 𝑧, ce qui nous permet de calculer 𝑎, ce qui, enfin, avec la constante 𝑦, nous permet de calculer le coût. Et bien sûr, 𝑎 𝐿 moins un est influencé par son propre poids et biais, etc. Mais nous ne nous concentrerons pas là-dessus pour le moment.

Tous ceux-là ne sont que des nombres, non ? Et il peut être intéressant de penser que chacun d’entre eux possède sa propre petite ligne numérique. Notre premier objectif est de comprendre à quel point la fonction de coût est sensible aux petits changements de notre poids, 𝑤 𝐿. Ou autrement dit, quelle est la dérivée de 𝐶 par rapport à 𝑤 𝐿 ? Quand vous voyez ce terme 𝜕𝑤, pensez-y comme un petit coup de pouce à 𝑤, comme un changement de 0,01. Et pensez à ce terme 𝜕𝐶 comme n’importe quel coût qui en résulte. Ce que nous voulons, c’est leur rapport. Conceptuellement, ce petit coup de pouce à 𝑤 𝐿 provoque un coup de pouce à 𝑧 𝐿, qui à son tour provoque un coup de pouce à 𝑎 𝐿, ce qui influence directement le coût.

Nous divisons donc les choses en examinant d’abord le rapport entre un petit changement à 𝑧 𝐿 par rapport à ce petit changement. C’est-à-dire la dérivée de 𝑧 𝐿 par rapport à 𝑤 𝐿. De même, vous considérez ensuite le rapport entre le changement à 𝑎 𝐿 et le changement minime de 𝑧 𝐿 qui l’a provoqué, ainsi que le rapport entre le coup de pouce final à 𝐶 et ce coup de pouce intermédiaire à 𝑎 𝐿. C’est ici la règle de dérivation en chaîne, où la multiplication de ces trois rapports nous donne la sensibilité de 𝐶 à de petits changements dans 𝑤 𝐿.

Il y a maintenant beaucoup de symboles sur l’écran. Prenez un moment pour vous assurer qu’ils sont tous clairs, car maintenant nous allons calculer les dérivées correspondantes. La dérivée de 𝐶 par rapport à 𝑎 𝐿 égale deux fois 𝑎 𝐿 moins 𝑦. Notez que cela signifie que sa taille est proportionnelle à la différence entre la sortie du réseau et ce que nous voulons qu’elle soit. Donc si cette sortie était très différente, même de légers changements risquent d’avoir un impact important sur la fonction de coût finale. La dérivée de 𝑎 𝐿 par rapport à 𝑧 𝐿 n’est que la dérivée de notre fonction sigmoïde, ou de la non-linéarité que vous choisissez d’utiliser. Et la dérivée de 𝑧 𝐿 par rapport à 𝑤 𝐿, dans ce cas, égale 𝑎 𝐿 moins un.

Maintenant, je ne sais pas pour vous. Mais je pense qu’il est facile de se retrouver noyé dans les formules sans prendre un moment pour se rappeler de ce qu’elles signifient réellement. Dans le cas de cette dernière dérivée, la quantité avec laquelle ce petit coup de pouce au poids a influencé la dernière couche dépend de la force du neurone précédent. Rappelez-vous, c’est là que survient cette idée « des neurones qui s’excitent ensemble se lient entre eux ». Et tout cela est la dérivée par rapport à 𝑤 𝐿, uniquement du coût pour un exemple d’entraînement donné. Puisque la fonction de coût complet implique la moyenne de tous ces coûts sur de nombreux exemples de formation, sa dérivée nécessite la moyenne de cette expression trouvée dans tous les exemples de formation.

Et, bien sûr, ce n’est qu’un des composants du vecteur gradient, lui-même constitué des dérivées partielles de la fonction de coût en rapport avec tous ces poids et biais. Mais même si ce n’est qu’une des nombreuses dérivées partielles dont nous avons besoin, cela représente plus de 50 pour cent du travail. La sensibilité au biais, par exemple, est presque identique. Nous avons juste besoin de changer ce terme 𝜕𝑧 𝜕𝑤 pour un 𝜕𝑧 𝜕𝑏. Et si vous regardez la formule pertinente, cette dérivée égale un. En outre, et c’est là que l’idée de rétropropagation entre en jeu, vous pouvez voir à quel point cette fonction de coût est sensible à l’activation de la couche précédente. À savoir, cette dérivée initiale dans l’expression de la règle de dérivation en chaîne, la sensibilité de 𝑧 à l’activation précédente, s’avère être le poids 𝑤 𝐿.

Et encore une fois, même si nous ne pourrons pas influencer directement l’activation de la couche précédente, il est utile de garder une trace de cela. Parce que maintenant, nous pouvons simplement continuer à réitérer la même idée de la règle de dérivation en chaîne pour voir à quel point la fonction de coût est sensible aux poids précédents et aux biais précédents. Et vous pourriez penser qu’il s’agit d’un exemple trop simple, puisque toutes les couches ne comportent qu’un seul neurone, et que les choses vont devenir de plus en plus compliquées pour un véritable réseau. Mais franchement, peu de changements se produisent lorsque nous donnons aux couches plusieurs neurones. Vraiment, il ne reste plus que quelques indices à suivre. Plutôt que l’activation d’une couche donnée, étant simplement 𝑎 𝐿, elle aura également un indice indiquant le neurone de cette couche. Continuons et utilisons la lettre 𝑘 pour indexer la couche 𝐿 moins un et 𝑗 pour indexer la couche 𝐿.

Pour le coût, encore une fois, nous regardons quel est la sortie souhaitée. Mais cette fois, nous additionnons les carrés des différences entre les activations de cette dernière couche et la sortie souhaitée. C’est-à-dire que vous prenez une somme supérieure à 𝑎 𝐿 𝑗 moins 𝑦 𝑗 au carré. Comme il y a beaucoup plus de poids, chacun doit avoir deux autres indices pour savoir où il se trouve. Appelons donc le poids du bord reliant ce neurone d’ordre 𝑘 au neurone d’ordre𝑗, 𝐿 𝑗𝑘. Ces indices pourraient donner l’impression d’être un peu en arrière au début. Mais cela correspond à la manière dont vous avez indexé la matrice de pondération dont j’ai parlé dans la vidéo partie un.

Juste comme avant, il est toujours agréable de nommer la somme pondérée correspondante, telle que 𝑧, de sorte que l’activation de la dernière couche ne soit que votre fonction spéciale, comme le sigmoïde appliqué à 𝑧. Vous pouvez voir un peu ce que je veux dire, où toutes ces choses sont essentiellement les mêmes équations que celles que nous avions avant dans le cas d’un neurone par couche. C’est juste que ça a l’air un peu plus compliqué. Et en effet, l’expression dérivée de la règle de dérivation en chaîne décrivant à quel point le coût est sensible à un poids spécifique a sensiblement la même apparence. Je vous laisse réfléchir à chacun de ces termes si vous le souhaitez.

Ce qui change ici, c’est la dérivée du coût par rapport à l’une des activations dans la couche 𝐿 moins un. Dans ce cas, la différence est que le neurone influence la fonction de coût à travers plusieurs chemins différents. C’est-à-dire que, d’une part, cela influence 𝑎 𝐿 zéro, ce qui joue un rôle dans la fonction de coût. Mais cela a aussi une influence sur 𝑎 𝐿 one, qui joue également un rôle dans la fonction de coût. Et vous devez les additionner. Et ça, eh bien, c’est à peu près tout. Une fois que vous savez à quel point la fonction de coût est sensible aux activations de cet avant-dernière couche, vous pouvez simplement répéter le processus pour tous les poids et biais alimentant cette couche.

Alors félicitez-vous ! Si tout cela a du sens, alors vous avez maintenant plongé au fond de la rétropropagation, l’élément moteur de l’apprentissage des réseaux de neurones. Ces expressions de la règle de dérivation en chaîne vous donnent les dérivées qui déterminent chaque composant du gradient qui aide à réduire le coût du réseau en descendant de manière répétée. Ouf ! Si vous réfléchissez à tout cela, alors c’est beaucoup de niveaux de complexité qui vous préoccuperont. Donc, ne vous inquiétez pas si votre esprit a besoin de temps pour tout assimiler.

Nagwa utilise des cookies pour vous garantir la meilleure expérience sur notre site. En savoir plus sur notre Politique de Confidentialité.