Le schéma ci-dessus illustre un réseau de neurones sans couche cachée qui permet par exemple de résoudre un problème de régression linéaire. Chaque point de dimension est transformé en un point de dimension . Pour apprendre les paramètres du réseau (i.e., les vecteurs et les constantes ), on utilise le jeu de données d'apprentissage formé des vecteurs qui indiquent les valeurs associées aux points . On veut que le réseau transforme le point en un vecteur proche du vecteur . On cherche à minimiser la fonction , avec .
Pour calculer les valeurs des paramètres qui minimisent , on propose de les initialiser aléatoirement. Puis, pour chaque paramètre, on calcule la dérivée partielle de afin de déterminer comment modifier ce paramètre pour aller dans le sens de minimiser . C'est l'algorithme du gradient.
Ainsi, le programme ci-dessous réalise la mise à jour du paramètre pour une itération de l'algorithme du gradient :
DC0 =: 2 * (R0 - Y)
est de dimension .
DV0 =: X cp DC0 NB. cp stands for Cartesian Product
est de dimension .
Soit une fonction non linéaire (par exemple : ), dite fonction d'activation.
Un réseau de neurones à deux couches cachées est décrit par les équations :
DC0 =: 2 * (R0 - Y)
est de dimension .
DV0 =: A1 cp DC0
est de dimension .
DA1 =: a'(R1)
est de dimension .
DC1 =: (V0 mp2 DC0) * DA1
est de dimension .
DV1 =: A2 cp DC1
est de dimension .
La mise à jour des paramètres restants suit le même schéma.