Version en trois phrases:
Chaque calque peut appliquer la fonction de votre choix au calque précédent (généralement une transformation linéaire suivie d'une non-linéarité réductrice).
Le travail des couches masquées consiste à transformer les entrées en un élément pouvant être utilisé par la couche en sortie.
La couche de sortie transforme les activations de la couche cachée à l’échelle souhaitée par votre sortie.
Comme si tu avais 5 ans:
Si vous voulez qu'un ordinateur vous dise s'il y a un bus dans une image, l'ordinateur aura peut-être plus de facilité s'il dispose des bons outils.
Donc, votre détecteur de bus peut être constitué d'un détecteur de roue (pour vous aider à dire que c'est un véhicule) et d'un détecteur de boîte (car le bus a la forme d'une grande boîte) et d'un détecteur de taille (pour vous dire que c'est trop grand pour être une voiture ). Ce sont les trois éléments de votre couche cachée: ils ne font pas partie de l'image brute, ce sont des outils que vous avez conçus pour vous aider à identifier les bus.
Si ces trois détecteurs s’allument (ou peut-être s’ils sont particulièrement actifs), il est fort probable que vous ayez un bus devant vous.
Les réseaux de neurones sont utiles car il existe de bons outils (comme la rétropropagation) pour construire et assembler de nombreux détecteurs.
Comme si tu étais un adulte
Un réseau de neurones à feed-forward applique une série de fonctions aux données. Les fonctions exactes dépendent du réseau de neurones que vous utilisez: le plus souvent, ces fonctions calculent chacune une transformation linéaire du calque précédent, suivie d'une non-linéarité réduite. Parfois, les fonctions font autre chose (comme le calcul de fonctions logiques dans vos exemples, ou la moyenne sur des pixels adjacents dans une image). Ainsi, les rôles des différentes couches pourraient dépendre des fonctions calculées, mais je vais essayer d'être très général.
Appelons le vecteur d'entrée , les activations de couche masquée et l'activation de sortie . Vous avez une fonction qui mappe de à et une autre fonction qui mappe de à . h y f x h g h yXhyfxhghy
Donc, l'activation de la couche cachée est et la sortie du réseau est .g ( f ( x ) )f(x)g(f(x))
Pourquoi avoir deux fonctions ( et ) au lieu d’une seule?gfg
Si le niveau de complexité par fonction est limité, alors peut calculer des choses que et ne peuvent pas faire individuellement. f gg(f(x))fg
Un exemple avec des fonctions logiques:
Par exemple, si nous autorisons uniquement et à être de simples opérateurs logiques tels que "AND", "OR" et "NAND", vous ne pouvez pas calculer d'autres fonctions telles que "XOR" avec un seul d'entre eux. D'autre part, nous pourrions calculer "XOR" si nous voulions superposer ces fonctions les unes sur les autres:gfg
Fonctions de la première couche:
- Assurez-vous qu'au moins un élément est "TRUE" (en utilisant OR)
- Assurez-vous qu'ils ne sont pas tous "VRAI" (en utilisant NAND)
Fonction de deuxième couche:
- Assurez-vous que les deux critères de la première couche sont satisfaits (en utilisant AND)
La sortie du réseau n'est que le résultat de cette seconde fonction. La première couche transforme les entrées en quelque chose que la seconde couche peut utiliser pour que tout le réseau puisse exécuter XOR.
Un exemple avec des images:
La diapositive 61 de cette présentation - également disponible ici en tant qu’image unique - montre (un moyen de visualiser) ce que les différentes couches cachées d’un réseau neuronal particulier recherchent.
La première couche recherche des arêtes courtes dans l'image: elles sont très faciles à trouver à partir de données de pixels brutes, mais elles ne sont pas très utiles en elles-mêmes pour vous indiquer si vous regardez un visage, un bus ou un éléphant. .
La couche suivante compose les bords: si les bords de la couche cachée inférieure s’emboîtent d’une certaine manière, l’un des détecteurs d’œil situé au milieu de la colonne la plus à gauche peut s’allumer. Il serait difficile de créer un seul calque qui permette de trouver quelque chose d'aussi spécifique à partir des pixels bruts: les détecteurs oculaires sont beaucoup plus faciles à construire à partir de détecteurs de contour que de pixels bruts.
La couche suivante compose les détecteurs oculaires et les détecteurs nasaux en visages. En d'autres termes, ils s'allumeront lorsque les détecteurs oculaires et les détecteurs nasaux de la couche précédente s'allumeront avec les bons motifs. Celles-ci sont très efficaces pour rechercher des types de visages particuliers: si un ou plusieurs d'entre eux sont allumés, votre couche de sortie doit alors signaler la présence d'un visage.
Ceci est utile car les détecteurs de visage sont faciles à construire à partir de détecteurs oculaires et de nez, mais vraiment difficiles à construire à partir d'intensités de pixels.
Ainsi, chaque couche vous éloigne de plus en plus des pixels bruts et se rapproche de votre objectif ultime (détection de visage ou de bus, par exemple).
Réponses à d'autres questions
"Pourquoi certaines couches de la couche d'entrée sont-elles connectées à la couche masquée et d'autres pas?"
Les noeuds déconnectés du réseau sont appelés noeuds "en biais". Il y a une très belle explication ici . La réponse courte est qu'ils sont comme des termes d'interception dans la régression.
"D'où proviennent les images" détecteur d'œil "de l'exemple d'image?"
Je n'ai pas vérifié deux fois les images spécifiques auxquelles j'ai lié, mais en général, ces visualisations montrent l'ensemble des pixels du calque d'entrée qui maximisent l'activité du neurone correspondant. Donc, si nous considérons le neurone comme un détecteur d’œil, il s’agit de l’image que le neurone considère comme très semblable à l’œil. Les gens trouvent généralement ces ensembles de pixels avec une procédure d'optimisation (alpinisme).
Dans cet article de Google utilisant l'un des plus grands réseaux de neurones au monde, ils montrent un neurone "détecteur de visage" et un neurone "détecteur de chat" de cette manière, ainsi qu'un deuxième moyen: ils montrent également les images réelles qui activent la neurone le plus fortement (figure 3, figure 16). La deuxième approche est intéressante car elle montre à quel point le réseau est flexible et non linéaire - ces "détecteurs" de haut niveau sont sensibles à toutes ces images, même s’ils ne se ressemblent pas particulièrement au niveau des pixels.
Faites-moi savoir si quelque chose n'est pas clair ou si vous avez d'autres questions.