LES RÉSEAUX NEURONAUX: NEURONE ARTIFICIEL


Definitions
Fonctions de transfert
Exemples de neurones artificiels MP
Apprentissage

















































Definitions

         Soit une cellule possédant n entrées et une sortie.
         Soit Xi la valeur présente sur l´entrée i pondérée par le poids wi
         L´entrée calculée IN de la cellule est la moyenne pondérée des entrées.
         La sortie de la cellule est OUT = f(IN) où f est la fonction de transfert. Voir la figure 3-1


Figure 3-1


Fonctions de transfert


       Fonction de seuillage

       Fonctions sigmoide

Fonction de seuillage

         f est une fonction de seuil T si:
                  IN >= T => f(IN) = 1
                  IN < T   => f(IN) = 0
         Le neurone est dit "à seuil" ou "binaire" ou encore neurone MP (pour McCulloch Pitts, leurs inventeurs). Voir la figure 3-2


Figure 3-2


Fonctions sigmoide

         f est de la forme:

avec k = constante positive.
La derivée première de f
est positive, f est donc strictement croissante.
         La figure 3-3 donne les représentations de la fonction sigmoide pour différentes valeurs de k.

Figure 3-3


         si k tend vers l´infini la fonction sigmoide tend vers la fonction à seuil nul.

Exemples de neurones artificiels MP

         Soit un neurone binaire de seuil T, avec 2 entrées X1 et X2 de poids w1 et w2. Il y a 4 possibilités:
         (X1,X2) = {(0,0),(0,1),(1,0),(1,1)}
         L´entrée calculée est IN = w1 * X1 + w2 * X2
         Si IN >= T alors OUT = 1 (neurone actif)
         Si IN < T alors OUT = 0 (neurone passif)


       La fonction logique AND

       La fonction logique OR

       La fonction logique NOT

       Contre exemple: La fonction XOR

       Recodage du problème

       Perceptron multicouches

       Normalisation du seuil à zero

La fonction logique AND

         Supposons T > 0, w1 < T, w2 < T et w1 + w2 >= T
         Par exemple: T = 0.5, w1 = 0.3, w2 = 0.4         

 X1  X2  w1 * X1 + w2 * X2  IN
 0  0  0 < T  0
 1  0  w1 < T  0
 0  1  w2 < T  0
 1  1  w1 + w2 > T  1



Figure 3-4


La fonction logique OR

         Supposons T > 0, w1 >= T, w2 >= T et w1 + w2 >= T
         Par exemple: T = 0.5, w1 = 0.7, w2 = 0.8         

 X1  X2  w1 * X1 + w2 * X2  IN
 0  0  0 < T  0
 1  0  w1 > T  1
 0  1  w2 > T  1
 1  1  w1 + w2 > T  1



Figure 3-5


La fonction logique NOT

         Soit un neurone binaire de seuil 0 à une entrée et de poids négatif
         Par exemple: T = 0, w = -1
         Les entrées possibles sont IN = {0,1}         

 X  w * X  IN
 0  0 = T  1
 1  w < T  0


Contre exemple: La fonction XOR

         L´équation:
         w1 * X1 + w2 * X2 - T = 0
         Représente une droite partageant le plan en 2 regions:
         w1 * X1 + w2 * X2 - T >= 0: Ensemble des points (X1, X2) pour les quels le neurone est actif.
         w1 * X1 + w2 * X2 - T < 0: Ensemble des points (X1, X2) pour les quels le neurone est passif.
         On peut montrer que le neurone artificiel ne peut apprendre que des catégories qui soient linéairement séparables. Ce resultat s´étend à des neurones de 3 entrées, la forme linéaire:
         w1 * X1 + w2 * X2 + w3 * X3 - T partitionne l´espace par un plan
         Et plus généralement un espace à n dimensions est partitionné par un hyperplan de dimension n - 1.
         La table de vérité de la fonction XOR et la figure 3-4 l´interprétant montrent que ce n´est pas le cas pour cette fonction. D´ailleurs:
         (1, 0) -> 1 implique w1 > 0
         De meme (0, 1) -> 1 implique w2 > 0
         Donc (1, 1) produira toujours 1 ce qui contredit la quatrième ligne de la table de verite.

 X1  X2  XOR(X1, X2)
 0  0  0
 1  0  1
 0  1  1
 1  1  0



Figure 3-6


Recodage du problème

         Utilisons 3 cellules d´entrées au lieu de 2, la troisième ayant pour entrée le produit des 2 autres. Le problème du XOR revient alors a apprendre les relations:
         0 0 0 -> 0
         1 0 0 -> 1
         0 1 0 -> 1
         1 1 1 -> 0
         On peut prendre les poids w1 = 1, w2 = 1 et w3 = -2
         Ainsi le codage semble plus importatnt que de savoir si le problème est linéairement séparable ou non.
        

Perceptron multicouches

         Une autre méthode pour résoudre des problèmes non linéairement séparables est de créer des réseaux à plusieurs couches (ce que fit Rosenblatt en 1962 pour résoudre le XOR).
         Au lieu d´utiliser les 3 cellules d´entrées précédentes, n´en utilisons que 2, la troisième (qui correspond au ET logique) constituant une deuxième couche, et la cellule de sortie constituant une troisième couche. Avex les poids:
         w13 = 0.6, w23 = 0.6, w14 = 1, w24 = 1 et w34 = -2
         Le seuil de la cellule de sortie est 0 et celui de la cellule cachée est 1.
         On a:

 X1  X2  e3 = w13 * a1 + w23 * a2  a3  e4 = w14 * a1 + w24 * a2 + w34 * a3  a4
 0  0  0 * .6 + 0 * .6 = 0  0  0 * 1 + 0 * 1 + 0 * (-2) = 0  0
 0  1  0 * .6 + 1 * .6 = .6  0  0 * 1 + 1 * 1 + 0 * (-2) = 1  1
 1  0  1 * .6 + 0 * .6 = .6  0  1 * 1 + 0 * 1 + 0 * (-2) = 1  1
 1  1  1 * .6 + 1 * .6 = 1.2  1  1 * 1 + 1 * 1 + 1 * (-2) = 0  0
         Le schéma des connexions est montré sur la figure 3-7


Figure 3-7


         Une autre disposition s´obtient en observant que le XOR peut être obtenu par combinaison de AND, OR et NO, comme le montre la table de verité suivante:

 X1  X2  X1 OR X2  X1 AND X2  NOT(X1 AND X2)  (X1 OR X2) AND (NOT(X1 AND X2)) = XOR
 0  0  0  0  1  0
 1  0  1  0  1  1
 0  1  1  0  1  1
 1  1  1  1  0  0
         La figure 3-8 montre la structure du reseau et son interpretation graphique


Figure 3-8


Normalisation du seuil à zero

         Soit un neurone binaire artificiel à deux entrées (X1, X2) de poids (w1, w2) et de seuil T. L´équation
         w1 * X1 + w2 * X2 = T
         peut se réécrire:
         w1 * X1 + w2 * X2 + w0 * X0 = 0
         avec X0 = 1 et w0 = -T
         Un neurone à deux entrées (X1, w1) et (X2, w2) et de seuil T est équivalent au neurone à 3 entrées (X1, w1), (X2, w2) et (1, -T)
         Cette propriété se généralise sans difficulte à un neurone à n entrées.

Apprentissage


       Règle de Widrow-Hoff

       Exemple

Règle de Widrow-Hoff

         Le neurone artificiel est initialisé avec des poids aléatoires. Puis on lui présente des couples (IN, OUT0) d´entrées et de sorties souhaitées. Pour chaque entrée IN le neurone calcule une sortie OUT, si celle-ci est différente de OUT0 les poids sont ajustés de façon à améliorer le résultat. Pratiquement si OUT > OUT0 les poids actifs sont diminués sinon ils sont augmentés: C´est la règle de Widrow-Hoff. Cet ajustement est répété jusqu´à ce que tous les OUTs soient corrects.

 X1  X2  OUT (calculee)  OUT0 (souhaitee)  corrections (dw)
 0  0  0 =  0  
 1  0  1 >  0  w1 -= dw
 0  1  1 =  1  
 1  1  0 <  1  w1 += dw w2 += dw


Exemple

         Soit un neurone artificiel binaire à 2 entrées, de seuil 0.3 et de poids w1=0.5 et w2=0.6. Il est équivalent au neurone à 3 entrées (X1,w1) (X2,w2) (1,-0.3) et de seuil 0. Montrons son adaptation pour en faire une porte logique AND. Les couples d´apprentissage sont: ((0,0,1),0) ((1,0,1),0) ((0,1,1),0) et ((1,1,1),1). Prenons pour delta dw=0.1. Appelons OUT0 la sortie souhaitée et OUT la sortie calculée. La suite des corrections des poids est representée dans le tableau suivant, le résultat est trouvé en 4 presentations successives des couples d´apprentissage.

 w1  w2  w0  X1  X2  w1*X1+w2*X2+w0*X0  OUT  OUT0  correction
 0.5  0.6  -0.3  0  0  0 + 0 - 0.3 = -0.3  0  0  .
 0.5  0.6  -0.3  1  0  0.5 + 0 - 0.3 = 0.2  1  0  w1-=dw w0-=dw
 0.4  0.6  -0.4  0  1  0 + 0.6 - 0.4 = 0.2  1  0  w2-=dw w0-=dw
 0.4  0.5  -0.5  1  1  0.4 + 0.5 - 0.5 = 0.4  1  1  .
 w1  w2  w0  X1  X2  w1*X1+w2*X2+w0*X0  OUT  OUT0  correction
 0.4  0.5  -0.5  0  0  0 + 0 - 0.5 = -0.5  0  0  .
 0.4  0.5  -0.5  1  0  0.4 + 0 - 0.5 = -0.1  0  0  .
 0.4  0.5  -0.5  0  1  0 + 0.5 - 0.5 = 0  1  0  w2-=dw w0-=dw
 0.4  0.4  -0.6  1  1  0.4 + 0.4 - 0.6 = 0.2  1  1  .
 w1  w2  w0  X1  X2  w1*X1+w2*X2+w0*X0  OUT  OUT0  correction
 0.4  0.4  -0.6  0  0  0 + 0 - 0.6 = -0.6  0  0  .
 0.4  0.4  -0.6  1  0  0.4 + 0 - 0.6 = -0.2  0  0  .
 0.4  0.4  -0.6  0  1  0 + 0.4 - 0.6 = -0.2  0  0  .
 0.4  0.4  -0.6  1  1  0.4 + 0.4 - 0.6 = 0.2  1  1  .