Biologie | Chimie | Didactica | Fizica | Geografie | Informatica | |
Istorie | Literatura | Matematica | Psihologie |
Inteligenta Artificiala
In figura de mai jos este reprezentat un perceptron
Functia prag de transfer folosita creeaza abilitatea perceptronului de a imparti spatiul de intrare in doua regiuni liniar separabile. Spatiul de intrare al unui neuron cu doua intrari, cu ponderile w1 =-1, w1,2=1 si bias-ul b=1 este reprezentat astfel:
Daca bias-ul este 0 atunci linia de separare va trece prin origine.
Rulati programul demonstrativ nnd4db.
Arhitecturi de perceptroni
O retea de perceptroni consta dintr-un singur layer de perceptroni.
Pentru a crea o retea de perceptroni se foloseste functia newp:
net = newp([0 2],1);
Pentru a vedea parametrii retelei create vom scrie
inputweights = net.inputweights
biases = net.biases
Daca cream urmatorul perceptron
net = newp([-2 2;-2 +2],1);
net.IW= [-1 1];
net.b = [1];
atunci pentru simularea lui vom scrie
p3 = ;
a3 = sim(net,p3)
Cand cream reteaua cu newp, ponderile si bias-ul au implicit valoarea 0.
net.IW = [3,4];
net.b = 5;
net = init(net);
Ce valori au ponderile si bias-ul acum?
Putem modifica modul de initializare a perceptronului astfel:
net.inputweights.initFcn = 'rands';
net.biases.initFcn = 'rands';
net = init(net);
Regula de invatare a perceptronului:
Pentru fiecare pereche input-target (p, t) se calculeaza
eroarea e=t-a, unde a este output-ul perceptronului
actualizarea ponderilor si a bias-ului se face dupa formulele
wk+1=wk+epT,
bk+1=bk+e.
Sa consideram urmatorul perceptron
net = newp([-2 2;-2 +2],1);
net.b = [0];
w = [1 -0.8];
net.IW = w;
si perechea input-target
p = [1; 2];
t 1];
Pentru a calcula eroarea perceptronului, scriem
a = sim(net,p);
e = t-a
si vom apela functia learnp pentru a vedea cum se modifica ponderile
dw = learnp(w,p,[],[],[],[],e,[],[],[])
dw =1 2
Noile ponderi se obtin astfel
w = w + dw
w =2.0000 1.2000
Rulati programul demonstrativ nnd4pr.
Antrenarea percepronului
Sa consideram urmatoarele date de intrare impreuna cu target-urile
Initial ponderile si bias-ul sunt 0. La primul pas al invatarii se calculeaza
Invatarea continua prin prezentarea si a celorlalte input-uri. Dupa prima epoca obtinem W(4)=[-3 -1] si b(4)=0.
Pentru a implementa in MATLAB cele descrise mai sus vom scrie
net = newp([-2 2;-2 +2],1);
net.trainParam.epochs = 1;
p = [[2;2] [1;-2] [-2;2] [-1;1]];
t =[0 1 0 1];
net = train(net,p,t);
Sa se aplice invatarea pentru 4 epoci.
Copyright © 2024 - Toate drepturile rezervate