Pour construire un réseau neuronal qui apprend les non-linéarités , commencez par la structure de modèle familière suivante : un modèle linéaire de la forme $y' = b + w_1x_1 + w_2x_2 + w_3x_3$.
Nous pouvons visualiser cette équation comme indiqué ci-dessous, où $x_1$, $x_2$ et $x_3$ sont nos trois nœuds d'entrée (en bleu) et $y'$ est notre nœud de sortie (en vert).
Exercice 1
Dans le modèle ci-dessus, les valeurs de poids et de biais ont été initialisées aléatoirement. Effectuez les tâches suivantes pour vous familiariser avec l'interface et explorer le modèle linéaire. Vous pouvez ignorer pour l'instant le menu déroulant « Fonction d'activation » ; nous aborderons ce sujet plus loin dans ce module.
Cliquez sur le bouton Play (▶️) au-dessus du réseau pour calculer la valeur du nœud de sortie pour les valeurs d'entrée $x_1 = 1.00$, $x_2 = 2.00$ et $x_3 = 3.00$.
Cliquez sur le deuxième nœud de la couche d'entrée et augmentez sa valeur de 2,00 à 2,50. Notez que la valeur du nœud de sortie change. Sélectionnez les nœuds de sortie (en vert) et consultez le panneau Calculs pour voir comment la valeur de sortie a été calculée.
Cliquez sur le nœud de sortie (en vert) pour afficher les valeurs des paramètres de pondération ($w_1$, $w_2$, $w_3$) et de biais ($b$). Diminuez la valeur de pondération de $w_3$ (notez que la valeur du nœud de sortie et les calculs ci-dessous ont changé). Augmentez ensuite la valeur de biais. Observez l'impact de ces modifications sur la sortie du modèle.
Ajout de couches au réseau
Notez que lorsque vous avez ajusté les valeurs de poids et de biais du réseau dans l'exercice 1 , cela n'a pas modifié la relation mathématique globale entre l'entrée et la sortie. Notre modèle reste un modèle linéaire.
Mais que se passe-t-il si l'on ajoute une couche supplémentaire au réseau, entre la couche d'entrée et la couche de sortie ? Dans la terminologie des réseaux de neurones, les couches supplémentaires entre la couche d'entrée et la couche de sortie sont appelées couches cachées , et les nœuds de ces couches sont appelés neurones .
La valeur de chaque neurone de la couche cachée est calculée de la même manière que la sortie d'un modèle linéaire : on additionne le produit de chacune de ses entrées (les neurones de la couche précédente) et d'un paramètre de pondération unique, auquel on ajoute le biais. De même, les neurones de la couche suivante (ici, la couche de sortie) sont calculés à partir des valeurs des neurones de la couche cachée.
Cette nouvelle couche cachée permet à notre modèle de recombiner les données d'entrée à l'aide d'un autre ensemble de paramètres. Cela peut-il aider notre modèle à apprendre les relations non linéaires ?
Exercice 2
Nous avons ajouté au modèle une couche cachée contenant quatre neurones.
Cliquez sur le bouton Play (▶️) au-dessus du réseau pour calculer la valeur des quatre nœuds de la couche cachée et du nœud de sortie pour les valeurs d'entrée $x_1 = 1.00$, $x_2 = 2.00$ et $x_3 = 3.00$.
Explorez ensuite le modèle et utilisez-le pour répondre aux questions suivantes.
Essayez de modifier les paramètres du modèle et observez l'effet sur les valeurs des nœuds de la couche cachée et sur la valeur de sortie (vous pouvez consulter le panneau Calculs ci-dessous pour voir comment ces valeurs ont été calculées).
Ce modèle peut-il apprendre les non-linéarités ?
Si vous cliquez sur chacun des nœuds de la couche cachée et que vous examinez les calculs ci-dessous, vous constaterez qu'ils sont tous linéaires (comprenant des opérations de multiplication et d'addition).
Si vous cliquez ensuite sur le nœud de sortie et examinez le calcul ci-dessous, vous constaterez que ce calcul est également linéaire. Les calculs linéaires effectués sur la sortie de calculs linéaires sont eux-mêmes linéaires, ce qui signifie que ce modèle ne peut pas apprendre les non-linéarités.