Documente Academic
Documente Profesional
Documente Cultură
1. Introducere
Se va studia una dintre cele mai importante tipuri ale RNA feedforward
(RNA cu propagare înainte) şi anume perceptronul multistrat, împreună cu
algoritmul standard de antrenament al acestuia, cunoscut sub denumirea de algoritm
cu propagare înapoi a erorii (BP, backpropagation) [5], [6].
x1
y1
x2
yM
xN
3. Algoritmul BP standard
Eroarea la nivelul unui neuron “j” din stratul de ieşire este definită prin
diferenţa dintre valoarea dorită şi valoarea actuală a ieşirii neuronului:
e j ( n) " d j ( n) ! y j ( n) (4.1)
Astfel, suma erorilor pătratice pentru toţi neuronii stratului de ieşire, este:
1
E ( n) " #
2 j$C
e 2j (n) (4.2)
&w ji (n) " ') j (n) y i (n) " '[e j (n)( *j (v j (n))] y i (n) (4.4)
în care ) j (n) reprezintă valoarea gradientului local al erorii iar vj(n) intrarea netă a
unde “k” reprezintă indicele corespunzător neuronilor din stratul succesor aceluia din
care face parte neuronul “j”. Într-un caz particular, când MLP are doar un singur strat
ascuns, indicele “k” se referă la neuronii stratului de ieşire.
Practic, se disting două etape ale algoritmului BP:
a) pasul forward - presupune calculul tuturor ieşirilor neuronilor RNA:
y j (n) " ( *j (v j (n)) " ( ( # w ji (n) y i (n)) (4.6)
i$Cl !1
în care Cl-1 reprezintă stratul inferior aceluia din care face parte neuronul “j”.
b) pasul backward - pe baza calculului erorii (gradientului) straturilor, provenind de
la ieşire spre intrarea RNA, se modifică ponderile sinaptice cf. ec. (4.4) sau (4.5). În
acest caz eroarea sau gradientul erorii pentru stratul “n+1” poate fi considerată ca un
semnal de intrare pentru neuronii stratului “n” - de aici şi denumirea algoritmului (BP,
backpropagation, algoritm cu propagare înapoi a erorii).
Alegerea parametrului ' este crucială în cazul multor aplicaţii concrete. O
valoare prea mică a ratei de învăţare generează o traiectorie lină în spaţiul ponderilor
dar are ca efect un proces lung de antrenament. Dimpotrivă, o valoare prea mare
conduce la un posibil comportament instabil al RNA, convergenţa algoritmului fiind
compromisă. O metodă simplă de creştere a ', evitând totodată instabilitatea, o
reprezintă includerea unui termen denumit “moment” în ec. (4.4):
&w ji (n) " +&w ji (n ! 1) , ') j (n) y i (n) (4.7)
Ecuaţia de mai sus poartă denumirea de regula delta generalizată. Efectele introducerii
termenului moment se manifestă prin prevenirea “înţepenirii” RNA în minime locale
- 38 - Aplicaţia nr. 4
4. Probleme
4.1 Implementaţi o RNA MLP care să rezolve problema XOR. Numărul de neuroni de
intrare, ascunşi şi de ieşire vor fi: 2, 4 respectiv 1 iar metoda de antrenament
backpropagation cu moment (funcţia MATLAB ‘traingdm’).
Indicaţie: La implementarea RNA se va folosi funcţia newff, a cărei descriere este
oferită în continuare:
Rezolvare:
%Implementare unui perceptron multistrat pentru rezolvarea
problemei XOR
%Catalin-Daniel Caleanu, 2000
clear all
close all
clc
% tipar de intrare
Pantr = [0 0 1 1;0 1 0 1]
% tipare de iesire
T_XOR = [0 1 1 0]
0
10
-2
10
Fig.4.2 Evoluţia erorii medii pătratice de-alungul procesului de antrenamet (problema 4.1)
4.2 Verificaţi capacitatea de interpolare a RNA MLP pentru următoarea funcţie:
f(x) = 0,2 + 0,8(x+ 0,7sin(2-x))
cu 0 ≤ x ≤ 1. Se vor considera un număr de 11 puncte de antrenament, adică intervalul
- 40 - Aplicaţia nr. 4
Rezolvare:
% Implementare unui perceptron multistrat pentru
% cazul interpolarii unei functii
% Catalin-Daniel Caleanu, 2000
clear all
close all
clc
% antrenarea retelei
[net1,tr1]= train(net1,P,T);
plot(P,T,'.')
plot(Ptest,y1test,':');
xlabel('x');
ylabel('Antrenament . Test + Iesire MLP --')
hold off
figure
bar(er*100);
ylabel('Eroare aproximare [%]');
xlabel('Antrenament Test')
0.8
0.6
0.4
0.2
0
0 0.2 0.4 0.6 0.8 1
x
4.3 Considerând drept vector de intrare pentru o RNA MLP cu un singur strat ascuns,
imaginile rasterizate ale cifrelor 0...9, în format binarizat 8x5 (fig.4.4). Să se scrie
codul sursă MATLAB care realizează, prin intermediul RNA MLP, clasificarea
acestor tipare.
- 42 - Aplicaţia nr. 4
Rezolvare:
% Implementare unui perceptron multistrat pentru
% clasificarea numerelor 0...9
% Catalin-Daniel Caleanu, 2000
clear all
close all
clc
(8x5)
% de intrari ale MLP
for i=1:40
PR(i,:)=minmax(P(:)');
end
Rezolvare:
- 44 - Aplicaţia nr. 4