* * KUMAC pour demontrer l'ebtrainement d'un neuron simple * MP 6/95 opt stat opt nbox opt liny * Histogrammes pour la presentation his/cre/1d 100 'Somme classe A ' 50 -50. 50. his/cre/1d 101 'Somme classe B ' 50 -50. 50. his/cre/1d 200 'Sortie initiale classe A' 22 -0.1 1.1 his/cre/1d 201 'Sortie initeale classe B' 22 -0.1 1.1 his/cre/1d 300 'Erreur total vs etape' 33 0.0 33. * Lire l'echantillon (voir coulomb.kumac) ne = 500 vec/cre x1([ne]) ; vec/cre y1([ne]) vec/read x1 yots1.txt ; vec/read y1 tots1.txt * Changer les correllation en laissant V1=V2 sigma x2 = x1 + .5 ; sigma y2 = y1 - .7 sigma x1 = x1 - .5 ; sigma y1 = y1 + .7 * Initialisation des poids et du seuil vec/cre ner(1) r 0. vec/cre err(33) r 33*0. vec/cre poids(3) r +.1 +0.3 -0.1 vec/cre pd1(1) r .0 vec/cre pd2(1) r .0 vec/cre pd3(1) r .0 sigma eta = .02 * Faire marcher le reseau, montrer resultat sigma sum1 = x1*poids(1)+y1*poids(2)+poids(3) sigma out1 = (sum1 gt 0.) sigma sum2 = x2*poids(1)+y2*poids(2)+poids(3) sigma out2 = (sum2 gt 0.) sigma ner = vsum(out1 ne 1) + vsum(out2 ne 0) vec/copy ner(1:1) err(1:1) vec/hfill sum1 100 ; vec/hfill sum2 101 vec/hfill out1 200 ; vec/hfill out2 201 zone 1 2 h/plot 100 ; h/plot 101 's' h/plot 200 ; h/plot 201 's' wait * Adaptation poids et seuil zone 2 4 do i=2,33 sigma pd1=poids(1)+vsum((d1-out1)*eta*x1)+vsum((d2-out2)*eta*x2) sigma pd2=poids(2)+vsum((d1-out1)*eta*y2)+vsum((d2-out2)*eta*y2) sigma pd3=poids(3)-vsum((d1-out1)*eta) -vsum((d2-out2)*eta) vec/copy pd1(1:1) poids(1:1) vec/copy pd2(1:1) poids(2:2) vec/copy pd3(1:1) poids(3:3) sigma print poids * sigma sum1 = x1*poids(1)+y1*poids(2)-poids(3) sigma out1 = (sum1 gt 0.) sigma sum2 = x2*poids(1)+y2*poids(2)-poids(3) sigma out2 = (sum2 gt 0.) sigma ner = vsum(out1 ne 1) + vsum(out2 ne 0) vec/copy ner(1:1) err([i]:[i]) reset 0 vec/hfill sum1 100 ; vec/hfill sum2 101 h/plot 100 ; h/plot 101 's' enddo wait * Montrer erreurs de classification par etape zone 1 1 his/put/con 300 err opt logy h/pl 300