Apprentissage d’un perceptron

Consultez la version mise à jour de cette page sur neural-networks.io.

Perceptron

Considérons le simple perceptron ci-dessous:

Fonction de transfert

La fonction de transfert est donnée par:

 y= f(w_1.x_1 + w_2.x_2 + ... + w_N.x_N) = f(\sum\limits_{i=1}^N w_i.x_i)

Définissons la somme S(w_i,x_i):

 S(w_i,x_i)= \sum\limits_{i=1}^N w_i.x_i)

Nous pouvons réécrire y :

 y= f(\sum\limits_{i=1}^N w_i.x_i)=f(S(w_i,x_i))

Erreur de sortie

Dans les réseaux de neurones artificiels, l’erreur que l’on souhaite minimiser est :

 E=(y

Avec :

  • E l’erreur
  • y la sortie souhaitée (de la base d’exemples d’entrainement)
  • y la sortie réelle (du réseau)

En pratique et pour simplifier la suite des équations, l’erreur est divisée par 2:

 E=\frac{1}{2}(y

Descente de gradient

L’algorithme de descente de gradient utilisé pour entraîner le réseau (i.e. mettre à jour les poids) est donné par :

 w_i

avec :

  • w_i la valeur des poids avant mise à jour
  • w_i la valeur des poids après mise à jour
  • \eta le taux d’apprentissage (learning rate)

Dérivée de l’erreur

Dérivons l’erreur :

 \frac{dE}{dw_i} = \frac{1}{2}\frac{d}{dw_i}(y

Grâce à la formule de dérivation des fonctions composées [ (f∘g)′=(f′∘g).g′) ] l’équation précédente peut être réécrite :

 \frac{dE}{dw_i} = \frac{2}{2}(y

Calculons la dérivée d’y :

 \frac{dy}{dw_i} = \frac{df(S(w_i,x_i))}{dw_i}

Grâce à la formule de dérivation des fonctions composées [ (f∘g)′=(f′∘g).g′) ] l’équation précédente peut à nouveau être réécrite :

 \frac{df(S)}{dw_i} = \frac{df(S)}{dS}\frac{dS}{dw_i} = x_i\frac{df(S)}{dS}

La dérivée de l’erreur devient :

 \frac{dE}{dw_i} = -x_i(y

Mise à jour des poids

Les poids peuvent être mis à jour avec la formule suivante :

 w_i

En conclusion :

 w_i

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *