![]() | Biologie | Chimie | Didactica | Fizica | Geografie | Informatica |
Istorie | Literatura | Matematica | Psihologie |
Algoritmul de invatare al perceptronului
Acesta modifica ponderea asociata unei conexiuni cu o cantitate direct proportionala cu produsul dintre intrarea neuronului respectiv si diferenta intre iesirea calculata de neuron si iesirea dorita (asteptata).
Factorul de proportionalitate se numeste rata de invatare si este o constanta care se stabileste experimental (
Implementam in limbajul Java algoritmul de invatare al perceptronului pentru un neuron artificial cu doua intrari. Vrem ca acest neuron sa fie antrenat astfel incat sa invete functia logica "SI"
X1 |
X2 |
Y |
W1=-0,5
W2=0,2
α =0
Fie pragul, Y = 1 daca a>=
0 daca a<
a=W1*X1+W2*X2
W1*X1+W2*X2+(-1) >=0
Cum
modificam un neuron cu prag si n intrari, intr-unul care are n+1
intrari, intrarea suplimentara avand valoarea (-1) si ponderea
conexiunii asociate ei de valoare
Scopul
antrenarii este sa calculam valoarea W1, W2 si plecand de la valorile initiale astfel
incat sa invete functia "SI"
a) Se repeta algoritmul de invatare,
b) Pentru toate cele patru combinatii pe intrari (for (i=0;i<4;i++))
inceput
calculez iesirea curenta
calculam deltaW1 si deltaW2
modific ponderea W1=W1+deltaW1
W2=W2+deltaW2
sfarsit
pana cand (pentru toate cele 4 combinatii de intrari nu se mai modifica ponderile).
Dezavantajul principal este ca nu poate sa invete functia XOR (sau exclusiv). In general perceptronul nu poate sa recunoasca intrari care nu sunt liniar separabile.
Class perceptron
int x2[]=;
int yd[]=;
double W1=-0,5;
double W2=0,2;
double
double alfa=0,25;
double a;
double delta W1, deltaW2;
double deltadelta;
int y; //iesire neuron
int i;
for (;;) //for;;
If (stop==true)break;
}//for;;
System.out.println("W1="+W1);
System.out.println("W2="+W2);
System.out.println("teta="+teta);
}//main
Copyright © 2025 - Toate drepturile rezervate