41 1 205KB
Exercice sur le Perceptron monocouche On considère un neurone à seuil à 2 entrées, dont la fonction d’activation est définie par : avec s(x)=1 si x≥0 0 sinon On souhaite déterminer des poids adéquats pour classifier correctement les 2 vecteurs à 2 dimensions suivants, s, appartenant à 2 classes, respectivement respec A et B: A
1 2 B 2 1
On impose que la classe A soit codée par l’état 1 du neurone, et la classe B par l’état 0. On appelle x1 la 1ère re coordonnée de ces points et x2 la 2ème coordonnée. 1) Donnez les caractéristiques de la droite de séparation sé du plan (x1, x2) réalisée par ce neurone quand les valeurs initiales de ses poids sont w1=1 et w2=1. - Ces 2 paramètres sont-ils ils adéquats pour réaliser une classification correcte ? 2) Etudiez l’évolution de ces poids lorsqu’on les modifie par la règle d’apprentissage supervisée du perceptron, appliquée aux vecteurs A et B (avec plusieurs itérations d’apprentissage). On prendra un coefficient d’apprentissage d’appre α égal à 0,1. 3) Combien d’itérations d’apprentissage sont-elles sont nécessaires pour obtenirr une classification correcte de A et B (justifier la réponse) ? 4) Conclure sur les propriétés de ce réseau et de la règle d’apprentissage. 5) En général, dans une application de classification à réseau de neurones, on utilise un neurone de sortie par classe. Donnez des poids adéquats d’un réseau de 2 neurones à seuil ou linéaires (et dans ce dernier cas précisez comment sera prise la décision de classification), permettant de réaliser cette opération, avec les mêmes vecteurs d’apprentissage. -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Solution de l’exercice : 2) La règle d’apprentissage supervisé du perceptron spécifie la variation à appliquer aux poids d’un réseau monocouche à chaque itération d’apprentissage. Elle est définie par : wi(t+1) = wi(t) + α *(s(d)- s)* xi ou bien ∆wi = α*(s(d)- s) * xi avec i=1, 2. où wi est le poids reliant l’entrée i au neurone de sortie. s (d) est la valeur désirée de la sortie du neurone. s est la valeur réelle de cette sortie, x est l’entrée i, α est le taux d’apprentissage. On présente le point A en entrée du neurone. On a s=f(1+2)=1 et s (d) =1 car on souhaite que le neurone réponde 1 pour ce point. On applique alors la règle d’apprentissage : w1(t+1) = w1(t) + 0.1 *(1- 1)* 1 = 1+0 donc w1 = 1. w2(t+1) = w2(t) + 0.1 *(1- 1)* 2 = 1+0 donc w2 = 1. Pour le point B, on a s=f(2+1)=1 et s (d) = 0 car on souhaite que le neurone réponde 0 pour ce point. w1(t+1) = w1(t) + 0.1 *(0- 1)* 2 = 1 – 0.2 donc w1 = 0.8. w2(t+1) = w2(t) + 0.1 *(0- 1)* 1 = 0 donc w2 = 0.9. La pente de la droite - w1 / w2 = - 0,8/0,9 a diminué. Itération 1 Itération 2
Point A (s (d) = 1) w1 = 1 w2 = 1
Point B (s (d) = 0) w1 = 0.8 w2 = 0.9
Pente de la droite La pente de la droite est , – =– a diminué.
S= f(0,8*1+0,9*2)=s(2,6)=1
S= f(0,8*2+0,9*1)=s(2,5)=1
s (d) = 1 donc
Or s (d) = 0 donc
La pente de la droite est , – =– , a diminué
w1(t+1) = w1(t) + 0.1 *(1- 1)* 1 = 0,8+0 = 0,8
w1(t+1) = w1(t) + 0.1 *(0- 1)* 2 = 0,8 - 0,2 = 0,6
w2(t+1) = w2(t) + 0.1 *(1- 1)* 2 = 0,9+0 = 0,9.
w2(t+1) = w2(t) + 0.1 *(0- 1)* 2 = 0,9- 0,1 = 0,8.
w1 = 0,8
w1 = 0,6
w2 = 0,9
w2 = 0,8
,
encore.
Remarque : Le point B est le seul point qui provoque une modification des poids. Le point A est correctement classé.
Tant que a et b restent au dessus de la droite, l’évolution des poids, et donc de la pente de cette droite, est la même. Elle prend successivement les valeurs suivantes.
Itération 3 Itération 4 Itération 5 Itération 6 Itération 7
Même principe
–
=–
,
Même principe
–
=–
,
Même principe
–
=–
Même principe
–
=–
,
Même principe
–
=–
,
, , , , ,
diminution diminution diminution diminution diminution
à l’itération 7 le point B passe sous la droite et la classification devient correcte pour lui. Pour vérifier on calcule le point A et B respectivement : S=f(-0,4*1+0,3*2)=f(0.2)=1
S=f(-0,4*2+0,3*1)=f(-0,2)=0
L’apprentissage apprentissage est alors terminé donc le nombre d’itérations d nécessaires est 7.
5. Pour le 1er neurone, on peut utiliser les poids obtenus ci-dessus. ci Pour le 2ème,, il faudrait que le point B soit au dessus de la droite de séparation que ses poids définissent, et le point A en dessous. On est obligé d’ajouter une entrée à ce neurone, par exemple x0=1, associée aux poids w01 et w02. Puisqu’on ne modifie pas le 1er er neurone on peut prendre w01=0. Le 2ème neurone définit une droite d’équation : W12 W02 X1 – W22 W22 Avec une ordonnée à l’origine origine égale à 6 et une pente égale à -3, on peut constater (graphiquement) que le point A est bien au dessus de cette droite et le B en dessous. On a donc: X2 = −
−
W12 W02 = −3 et – =6 W22 W22
Soit, en fixant par exemple W0 02 à 1, W22= -1/6 et W12=-1/2.