FriconiX
Des milliers de pictogrammes gratuits dessinés avec amour !

Démonstration de la règle d'apprentissage

Hypothèses

Cette page démontre la règle d'apprentissage permettant de mettre à jour les poids d'un réseau de neurones artificiel. Comme la règle de mise à jour des poids est la même pour chaque perceptron, nous allons nous focaliser sur un seul élément. Dans cette démonstration, nous supposerons que nous souhaitons mettre les poids à jour en respectant l'algorithm de descente du gradient.

Fonction de transfert

Considérons le perceptron suivant :

Simple perceptron

La fonction de transfert est donnée par :

$$ \begin{equation} y= f(w_1.x_1 + w_2.x_2 + ... + w_N.x_N) = f(\sum\limits_{i=1}^N w_i.x_i) \label{eq:transfert-function} \end{equation} $$

Définissons la somme \(S\) :

$$ \begin{equation} S(w_i,x_i)= \sum\limits_{i=1}^N w_i.x_i \label{eq:sum} \end{equation} $$

Nous pouvons réécrire \(y\) comme une fonction de \(S\) en fusionnant les équations \( \eqref{eq:sum} \) et \( \eqref{eq:transfert-function} \) :

$$ y(S)= 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 donnée par :

$$ E=(y'-y)^2 $$

où :

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

$$ E=\frac{1}{2}(y'-y)^2 $$

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:

$$ \begin{equation} w_i'=w_i-\eta.\frac{dE}{dw_i} \label{eq:gradient-descent} \end{equation} $$

où :

Dérivée de l'erreur

Dérivons l'erreur :

$$ \begin{equation} \frac{dE}{dw_i} = \frac{1}{2}\frac{d}{dw_i}(y'-y)^2 \label{eq:error} \end{equation} $$

Grace à la formule de dérivation des fonctions composées

$$ (f \circ g)'=(f' \circ g).g') $$ l'équation \( \eqref{eq:error} \) peut être réécrite :

$$ \frac{dE}{dw_i} = \frac{2}{2}(y'-y)\frac{d}{dw_i} (y'-y) = -(y'-y)\frac{dy}{dw_i} $$

Calculons la dérivée de \(y\):

$$ \begin{equation} \frac{dy}{dw_i} = \frac{df(S(w_i,x_i))}{dw_i} \label{eq:dy-dwi} \end{equation} $$

Une nouvelle fois, nous utilisons la la formule de dérivation des fonctions composées pour reformuler l'équation \( \eqref{eq:dy-dwi} \) :

$$ \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 :

$$ \begin{equation} \frac{dE}{dw_i} = -x_i(y'-y)\frac{df(S)}{dS} \label{eq:derror} \end{equation} $$

Mise à jour des poids

En fusionnant les équations \( \eqref{eq:gradient-descent} \) et \( \eqref{eq:derror} \) la formule de mise à jour des poids devient :

$$ w_i'=w_i-\eta.\frac{dE}{dw_i} = w_i + \eta. x_i.(y'-y).\frac{df(S)}{dS} $$

En conclusion :

$$ w_i'= w_i + \eta.x_i.(y'-y).\frac{df(S)}{dS} $$

Voir aussi


Dernière mise à jour : 09/03/2020