Home - Rasfoiesc.com
Educatie Sanatate Inginerie Business Familie Hobby Legal
Doar rabdarea si perseverenta in invatare aduce rezultate bune.stiinta, numere naturale, teoreme, multimi, calcule, ecuatii, sisteme




Biologie Chimie Didactica Fizica Geografie Informatica
Istorie Literatura Matematica Psihologie

Java


Index » educatie » » informatica » Java
» Algoritmul de invatare al perceptronului


Algoritmul de invatare al perceptronului


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





Politica de confidentialitate





Copyright © 2024 - Toate drepturile rezervate