Considérez chaque nœud individuel comme son propre modèle de régression linéaire, composé de données en entrée, de pondérations, d’un biais (ou d’un seuil) et d’une sortie. La formule ressemblerait à ceci :
∑wixi + biais = w1x1 + w2x2 + w3x3 + biais
sortie = f(x) = 1 si ∑w1x1 + b>= 0 ; 0 si ∑w1x1 + b < 0
Une fois la couche d’entrée déterminée, des pondérations sont attribuées. Ces pondérations aident à déterminer l’importance d’une variable donnée, les plus grandes contribuant de manière plus significative à la production par rapport aux autres entrées. Toutes les entrées sont ensuite multipliées par leurs pondérations respectives, puis elles sont additionnées. Ensuite, la sortie passe par une fonction d’activation, qui détermine la sortie. Si cette valeur de sortie dépasse un seuil donné, elle « déclenche » (ou active le nœud), transmettant les données à la couche suivante du réseau. Ainsi, la sortie d’un nœud devient l’entrée du nœud suivant. Ce processus de transmission de données d’une couche à la suivante définit ce réseau neuronal comme un réseau de propagation.
Voyons à quoi peut ressembler un nœud unique en utilisant des valeurs binaires. Nous pouvons appliquer ce concept à un exemple plus concret, comme la question de savoir si vous devriez aller surfer (Oui : 1, Non : 0). La décision de partir ou de ne pas partir est notre résultat prévu, ou y-hat. Supposons que trois facteurs influencent votre prise de décision :
- Les vagues sont-elles bonnes ? (Oui : 1, Non : 0)
- Le line up est-il vide ? (Oui : 1, Non : 0)
- Y a-t-il eu récemment une attaque de requin ? (Oui : 0, Non : 1)
Supposons ensuite ce qui suit, en nous donnant les entrées suivantes :
- X1 = 1, puisque les vagues pompent
- X2 = 0, puisqu’il n’y a pas beaucoup de monde
- X3 = 1, car il n’y a pas eu d’attaque de requin récemment
Maintenant, nous devons attribuer des pondérations pour déterminer l’importance. Les pondérations plus importantes signifient que des variables particulières sont plus importantes pour la décision ou le résultat.
- W1 = 5, puisque les grosses vagues sont rares
- W2 = 2, puisque vous êtes habitué à surfer quand il y a du monde
- W3 = 4, puisque vous avez peur des requins
Enfin, nous supposerons également une valeur de seuil de 3, ce qui se traduirait par une valeur de biais de -3. Avec toutes les différentes entrées, nous pouvons commencer à intégrer des valeurs dans la formule pour obtenir le résultat souhaité.
Y chapeau (ou Y-hat) = (1*5) + (0*2) + (1*4) – 3 = 6
Si nous utilisons la fonction d’activation du début de cette section, nous pouvons déterminer que la sortie de ce nœud est 1, puisque 6 est supérieur à 0. Dans ce cas, vous iriez surfer ; mais si nous ajustons les pondérations ou le seuil, nous pouvons obtenir des résultats différents à partir du modèle. Lorsque nous observons une décision, comme dans l’exemple ci-dessus, nous pouvons voir comment un réseau neuronal peut prendre des décisions de plus en plus complexes en fonction du résultat des décisions ou des couches précédentes.
Dans l’exemple ci-dessus, nous avons utilisé des perceptrons pour illustrer certains des calculs mathématiques en jeu ici, mais les réseaux neuronaux utilisent des neurones sigmoïdes, qui se distinguent par des valeurs comprises entre 0 et 1. Étant donné que les réseaux neuronaux se comportent de la même manière que les arbres de décision, c’est-à-dire qu’ils transmettent les données en cascade d’un nœud à l’autre, le fait d’avoir des valeurs x comprises entre 0 et 1 réduira l’impact de tout changement d’une variable unique sur la sortie d’un nœud donné et, par la suite, sur la sortie du réseau neuronal.
Au fur et à mesure que nous commencerons à réfléchir à des cas d’utilisation plus pratiques pour les réseaux neuronaux, comme la reconnaissance ou la classification d’images, nous tirerons parti de l’apprentissage supervisé, ou des jeux de données étiquetés, pour entraîner l’algorithme. Au fur et à mesure que nous entraînons le modèle, nous voulons évaluer sa précision à l’aide d’une fonction de coût (ou de perte). C’est ce que l’on appelle communément l’erreur quadratique moyenne (MSE). Dans l’équation ci-dessous,
- i représente l’index de l’échantillon,
- y-hat est le résultat prédit,
- y est la valeur réelle, et
- m est le nombre d’échantillons.
= =1/2 ∑129_(=1)^▒( ̂^(() )−^(() ) )^2
En fin de compte, l’objectif est de minimiser notre fonction de coût pour garantir l’exactitude de l’ajustement pour toute observation donnée. Lorsque le modèle ajuste ses pondérations et son biais, il utilise la fonction de coût et l’apprentissage par renforcement pour atteindre le point de convergence, ou le minimum local. Le processus dans lequel l’algorithme ajuste ses pondérations se fait par descente de gradient, ce qui permet au modèle de déterminer la direction à prendre pour réduire les erreurs (ou minimiser la fonction coût). À chaque exemple d’entraînement, les paramètres du modèle s’ajustent pour converger progressivement vers le minimum.
Consultez cet article IBM Developer pour en savoir plus sur les concepts quantitatifs impliqués dans les réseaux neuronaux.
La plupart des réseaux neuronaux profonds sont à propagation, ce qui signifie qu’ils circulent dans une seule direction, de l’entrée vers la sortie. Cependant, vous pouvez également entraîner votre modèle par rétropropagation ; c’est-à-dire se déplacer dans la direction opposée de la sortie à l’entrée. La rétropropagation nous permet de calculer et d’attribuer l’erreur associée à chaque neurone, ce qui nous permet d’ajuster les paramètres du (ou des) modèle(s) de manière appropriée.