Biologie | Chimie | Didactica | Fizica | Geografie | Informatica | |
Istorie | Literatura | Matematica | Psihologie |
Se foloseste pentru clasificarea exemplelor / formelor in m>2 clase.
Se considera setul de antrenament , unde exemplul xiRn, iar raspunsul dorit pentru exemplul i este y'i m. Se va lucra cu vectori de intrare extinsi .
Consideram cazul unei retele feed-forward multinivel cu un strat ascuns si cu conectivitate standard: FX → FH → FY. Diagrama este urmatoarea:
Stratul de iesire FY 1 . j . m
wqj
Stratul ascuns FH 1 . q . p
viq
Stratul de intrare FX 1 . i . n
1
xk
Algoritm
P0. Initializare
Se initializeaza ponderile retelei V=(viq)iq si W=(wqj)qj cu valori mici, generate aleator.
Se initializeaza constantele de invatare ck si ak cu valori din (0,1)
P1. O etapa de instruire
Pentru fiecare exemplu k=1, 2, . ,N din multimea de antrenament se executa pasii
P11. Se calculeaza activarile induse in stratul FH: , q=1,2, . , p.
P12. Se calculeaza iesirile neuronilor din stratul FH: , pentru q=1,2, . , p.
P13. Se calculeaza activarile induse in stratul FY: , j = 1, 2, . , m.
P14. Se calculeaza iesirile neuronilor din stratul FY: , j = 1, 2, . , m.
P15. Se calculeaza eroarea = = care este o masura a calitatii.
P16. Se actualizeaza ponderile stratului de iesire
P17. Se actualizeaza ponderile stratului ascuns
P2. Iterarea
Daca eroarea medie este acceptabila, atunci invatarea este incheiata; altfel se executa un nou ciclu de instruire
Proiect - recunoastere de litere
Implementati algoritmul back-propagation pentru recunoasterea caracterelor A, B, . , H (8 litere), reprezentand literele prin 10*10 pixeli (vector de dim. 100). Exemplele sa contina cate 10 exemple din fiecare litera, iar raspunsul dorit este cate un model de litera. Dupa antrenare sa se faca testarea retelei pe exemple noi din fiecare litera si evaluati performanta in termeni de eroare.
Aici, n=100, m=8.
Fie vectorul de intrare extins si coloana j din matricea ponderilor la care s-a adaugat pragul θ:
M(n+1)× m.
Algoritm antrenare
Se initializeaza
matrice aleator in (-1,1) cu (n+1)×m componente
numarul maxim de epoci NMAX
eta = rata de invatare (de obicei 0.1)
epoci := 1
Cat timp epoci < NMAX
pentru i = 1:N
pentru j = 1:m
actualizam T T + eta * (y'i - sign[()Txi] ) * (xi)T
end pentru
epoci := epoci+1.
end cat timp
Testare:
Pentru un nou exemplu , cu xiRn, y'i m:
- daca sign[()Txi] * y'i > 0 atunci y'i =1, altfel y'i = -1
Proiect: Sa se aplice algoritmul Madaline pentru antrenarea si testarea cu litere de la A la H (m=8), initial clare, apoi cu zgomot alb.
Observatie: Pentru crearea fisierelor de antrenare se poate folosi executabilul Letters.exe - dupa lansarea executabilului se da clic dreapta si apoi se poate desena o litera (daca se doreste stergerea unui "pixel" se executa clic dreapta) si pentru a o salva (implicit in fisierul "test1.txt" care apoi se redenumeste) se apasa butonul "Save"; pentru curata fereastra in vedera editarii unei noi litere se apasa butonul "Clear". La final se apasa butonul "OK".
Sugestii: La antrenare,
iesirea dorita pentru litera A
se poate alege ca fiind y'1 = (1, -1, . ,-1), pentru litera B: y'2 = (-1, 1,-1 . ,1), . ,
respectiv pentru litera H:
y'8 = (-1, -1, . ,-1,1). La testare, se va obtine un y = (y1, . ,
ym) si daca pe
pozitia i este 1 inseamna
ca este litera i. Daca se
obtine de exemplu (1,1,-1,..-1) insemna ca este combinatie
intre A si B (nefiind clara este indecizie), dar oricum se compara
cu iesirea dorita de la exemplul de test.
Copyright © 2024 - Toate drepturile rezervate