Documente Academic
Documente Profesional
Documente Cultură
3. Breviar teoretic
Utilizarea reţelelor neuronale feed-forward multistrat în problemele de aproximare
neliniare se bazează pe antrenarea reţelelor prin algoritmul de propagare inversă. Denumirea
algoritmului provine din faptul că pentru antrenare informaţiile sunt procesate in sens invers,
de la ieşirea reţelei, către intrare.
n p
f: → , (1-a)
(
y = f ( x ) = σ 2 W 2σ1 (W 1 x + b1 ) + b 2 , ) (1-b)
unde notaţiile au următoarea semnificaţie, în conformitate cu arhitectura reprezentată grafic în
figura 1:
x ∈ n – vectorul de intrare;
p
y∈ – vectorul de ieşire;
m×n
W1∈ – matricea ponderilor stratului de intrare;
m
b1 ∈ – vectorul deplasărilor stratului de intrare;
2 p×m
W ∈ – matricea ponderilor stratului de ieşire;
p
b2 ∈ – vectorul deplasărilor stratului de ieşire;
T
σ1 : m
→ m
, σ1 (u1 ) = ⎡⎣σ 1 (u11 ) … σ 1 (u1m ) ⎤⎦ – funcţia vectorială de activare a
not T
stratului de intrare, unde u1 = W 1 x + b1 = ⎡⎣u11 ... u1m ⎤⎦ şi σ 1 are expresia analitică:
Fie funcţia:
n p
ϕ: → , (2)
netedă pe o mulţime compactă S ⊆ n .
Este demonstrat faptul că, dacă reţeaua neuronală posedă un număr adecvat de noduri
m în stratul de intrare, atunci parametrii reţelei pot fi determinaţi de aşa manieră încât f
definită prin (1) să aproximeze pe S funcţia ϕ din (2) cu o precizie impusă (în sensul de
„oricât de bună”). Într-o formulare matematică riguroasă, acest rezultat remarcabil poate fi
scris sub forma:
∀ε > 0 ∃m ∈ şi W 1 ∈ m×n , b1 ∈ m , W 2 ∈ p×m , b 2 ∈ p a.î.
(3)
f ( x ) − ϕ( x ) < ε ∀x ∈ S .
Din punct de vedere practic, exploatarea rezultatului discutat anterior are loc în
următorul context. Funcţia ϕ din (2) este cunoscută într-un număr finit N de puncte
n
xi ∈ S ⊆ , pentru care avem:
ϕ ( xi ) = zi , i = 1,..., N . (4)
La intrarea reţelei se prezintă vectorii prototip:
n
x1 , x2 , ... , x N ∈ , (5)
pentru care se consideră vectorii ţintă:
p
z1 , z2 , ... , z N ∈ (6)
definiţi conform (4). Notând prin yi , i = 1,… , N , vectorii de ieşire ai MLP, adică:
p
yi = f ( xi ) ∈ , i = 1,… , N , (7)
se definesc vectorii eroare prin:
p
ei = zi − yi ∈ , i = 1, ..., N . (8)
Pentru orice număr de neuroni m în stratul de intrare al reţelei, există valori ale
parametrilor reţelei notate prin W 1 ∗ ∈ m×n , b1 ∗ ∈ m , W 2 ∗ ∈ p×m , b 2 ∗ ∈ p , care
asigură minimizarea erorii pătratice medii (Mean Squared Error – MSE):
N N
∑ eiT ei ≤ ∑ eiT ei . (9)
i =1 W 1 ∗ , b1 ∗ , W 2 ∗ , b 2 ∗ i =1 W 1 , b1 , W 2 , b 2 oarecare
Observaţie
Parametrii W 1 ∗ ∈ m×n , b1 ∗ ∈ m , W 2 ∗ ∈ p×m , b 2 ∗ ∈ p din (9) nu asigură şi
satisfacerea condiţiei (3) pentru tot compactul S ⊆ n . În schimb, inegalitatea (9) posedă o
semnificaţie numerică concretă, furnizând astfel un obiectiv consistent pentru antrenarea
reţelei neuronale. ♦
urmând apoi liniile matricei ⎡⎣W 2 b 2 ⎤⎦ ). Considerând vectorii eroare e i definiţi prin (8), ca
funcţii de parametrii reţelei (adică de elementele vectorului v) se defineşte funcţia obiectiv:
1 N
J (v ) = ∑ eiT (v ) ei (v ) . (10)
2 i =1
Minimizarea prin metoda gradientului a lui J (v ) (care înseamnă satisfacerea condiţiei (9))
constă în modificarea vectorului parametrilor v ∈ m( n+1)+ p ( m+1) la fiecare iteraţie, în
conformitate cu formula:
vnew = vold − η ∇J (vold ) , (11)
unde η > 0 notează pasul metodei de optimizare, iar ∇J (vold ) = [ ∂J ∂v ]
T
notează vectorul
vold
gradient (normal la suprafeţele de nivel constant ale lui J (10), care trec prin vold ). Printr-o
exprimare adecvată a vectorului gradient, relaţia (11) poate fi formulată direct în termenii
parametrilor reţelei W 1 ∈ m×n , b1 ∈ m , W 2 ∈ p×m , b2 ∈ p , furnizând astfel
mecanismul de efectuare a unei iteraţii pentru algoritmul de antrenare prin propagare
inversă. Termenul de “propagare inversă” se referă la maniera de calcul a valorilor curente ale
vectorului gradient care se bazează pe o strategie de propagare a erorilor, definite prin (8), de
la stratul de ieşire, înapoi către stratul de intrare.
Pentru algoritmul de antrenare se stabilesc, de către utilizator, un număr maxim de
iteraţii sau epoci şi o valoare ε care se doreşte a fi atinsă în minimizarea funcţiei obiectiv
(10) (adică un prag pentru eroarea pătratică globală). Atingerea unui prag oarecare de
eroare ε impus de utilizator nu este întotdeauna posibilă, deoarece valoarea minimă a lui
J (v ) definită prin (10) poate fi strict pozitivă.
De asemenea, se fixează (de către utilizator) o valoare pentru pasul metodei de
optimizare η > 0 , care, în contextul problemei de optimizare, este referită sub denumirea de
rată de învăţare (eng. learning rate).
n p
Se organizează vectorii prototip xi ∈ , i = 1,… , N , şi cei ţintă zi ∈ , i = 1,… , N ,
sub forma matricelor:
n× N
X = [ x1 … x N ] ∈ , (12)
respectiv:
p× N
Z = [ z1 … z N ] ∈ . (13)
Algoritmul se opreşte dacă este îndeplinită una din următoarele două condiţii:
(χ1) eroarea pătratică medie este inferioară pragului ε stabilit la startarea algoritmului, adică:
1 N T
∑ ei ei < ε
N i =1
(17)
sau:
(χ2) a fost atins numărul maxim de iteraţii stabilit la startarea algoritmului.
{
Qi2 = diag qi2 (1),..., qi2 (m) , } (19-a)
unde:
1
qi2 (k ) = (σ 2 )(ui2 (k )) = = 1, k = 1,..., m . (19-b)
(Inv σ )( yi2 (k )) 2
corespunzătoare celor două straturi. Deoarece funcţiile de activare ale celui de al doilea strat
sunt liniare, Qi2 este matricea unitate pentru i = 1,… , N .
m×m p× p
Cu ajutorul matricelor Jacobian Qi1 ∈ , Qi2 ∈ şi a vectorilor erorilor
p
ei ∈ , i = 1,… , N , i = 1,… , N , se definesc vectorii delta (prin procesarea informaţiei de la
ieşire, către intrare, procesare numită propagare inversă):
• pentru stratul de ieşire:
δi2 = Qi2ei = ei ∈ p , i = 1,… , N ; (20)
• pentru stratul de intrare:
( )
δi1 = Qi1 (W 2 )T δi2 ∈ m , i = 1,… , N . (21)
Astfel, suntem în măsură să construim matricele delta ale celor două straturi:
• pentru stratul de ieşire
Δ 2 = [ δi2 ....δN2 ] ∈ p× N , (22)
• pentru stratul de intrare
Δ1 = [ δi1....δ1N ] ∈ m× N . (23)
O reprezentare sub forma de schemă bloc a modului de calcul al vectorilor delta prin
propagare inversă într-o reţea cu două straturi este dată în fig. 2.
Etapa IV (Etapa de actualizare a parametrilor)
Cu ajutorul matricelor delta se pot calcula matricele de actualizare a parametrilor
aplicând regula delta pe fiecare strat:
• pentru stratul de ieşire
- ponderi
DW 2 = Δ 2 ( X 2 )T ∈ p×m , (24-a)
- deplasări
Db 2 = Δ 2 [1 … 1]
T p
∈ ; (24-b)
N elemente
• pentru stratul de intrare
- ponderi
DW 1 = Δ1 X T ∈ m×n
, (25-a)
- deplasări
Aplicaţii ale Reţelelor Neuronale în Automatică 7
Db1 = Δ1 [1 … 1]
T m
∈ . (25-b)
N elemente
m× N
În relaţia (21-a), matricea X ∈ 2
colectează vectorii xi2 = y1i ∈ m
, i = 1,… , N , care se
prezintă la intrarea celui de-al doilea strat, adică:
m× N
X 2 = [ x12 … x N2 ] ∈ . (26)
Pe baza matricelor de actualizare se determină noile valori ale parametrilor reţelei:
• pentru stratul de ieşire
- ponderi
2 2
Wnew = Wold + η DW 2 , (27-a)
- deplasări
2 2
bnew = bold + η Db2 ; (27-b)
• pentru stratul de intrare
- ponderi
1 1
Wnew = Wold + η DW 1 , (28-a)
- deplasări
b1new = bold
1
+ η Db1 . (28-b)
Cu aceste calcule, iteraţia curentă se încheie şi se trece la o nouă iteraţie, efectuând
atribuirile:
2 2 2 2
Wnew → Wold , bnew → bold ,
(29)
1 1
Wnew → Wold , b1new → bold
1
.
Observaţii
1 m×n 2 p×m 1 m
1° Iniţializarea parametrilor reţelei (adică Wold ∈ , Wold ∈ , bold ∈ ,
2 p
bold ∈ la prima iteraţie a algoritmului) se face cu valori subunitare arbitrare; în acest mod
se asigură senzitivitate maximă pentru funcţiile sigmoidale din primul strat al reţelei.
2° Convergenţa algoritmului de propagare inversă se realizează în condiţiile specifice
metodei gradientului (ca tehnică de optimizare), fiind puternic dependentă de valoarea ratei de
învăţare η şi anume:
• pentru η inadecvat mic, deplasarea către optim, în spaţiul parametrilor, este foarte lentă,
• pentru η inadecvat mare, deplasarea către optim, în spaţiul parametrilor, se realizează cu
oscilaţii (eventual cu pierderea stabilităţii algoritmului).
3° În cazul când algoritmul se încheie prin satisfacerea condiţiei (χ1), acurateţea
parametrilor furnizaţi W 1f ∈ m×n , W f2 ∈ p×m (ponderi) şi b1f ∈ m , b 2f ∈ p (deplasări)
depinde de valoarea pragului ε stabilit pentru eroarea pătratică globală.
4° Suprafaţa erorii J (v ) definită prin (10) uzual posedă minime locale în care căutarea
minimului poate eşua, dacă rata de învăţare are o valoare prea mică. Astfel de minime locale
Aplicaţii ale Reţelelor Neuronale în Automatică 8
nu pot fi părăsite decât prin schimbarea valorii ratei de învăţare, sau prin restartarea
algoritmului cu alte valori iniţiale ale parametrilor.
50 Numărul de neuroni din stratul de intrare se alege în funcţie de “gradul de
neliniaritate” care se constată la funcţia ϕ din examinarea eşantioanelor (4).
zi = sin( xi ), i = 1,..., 7 .
Să se opereze modificările necesare în program asupra ratei de învăţare şi a numărului
de iteraţii pentru a realiza antrenarea, pornind de la condiţiile iniţiale situate în următoarele
domenii:
1. ( w0 , b0 ) ∈ [−4.5, − 1.5] × [−4.5, − 1.5]
2. ( w0 , b0 ) ∈ [−1.5, 1.5] × [−4.5, − 1.5]
3. ( w0 , b0 ) ∈ [1.5, 4.5] × [−4.5, − 1.5]
4. ( w0 , b0 ) ∈ [−4.5, − 1.5] × [−1.5, 1.5]
5. ( w0 , b0 ) ∈ [−1.5, 1.5] × [−1.5, 1.5]
6. ( w0 , b0 ) ∈ [1.5, 4.5] × [−1.5, 1.5]
7. ( w0 , b0 ) ∈ [−4.5, − 1.5] × [1.5, 4.5]
8. ( w0 , b0 ) ∈ [−1.5, 1.5] × [1.5, 4.5]
9. ( w0 , b0 ) ∈ [1.5, 4.5] × [1.5, 4.5]
În fiecare din situaţiile (1) - (9) se vor preciza:
a) valorile iniţiale ale parametrilor, reprezentarea grafică a aproximării realizate de reţea
pe baza acestor valori şi eroarea corespunzătoare;
b) valorile finale ale parametrilor (rezultate din antrenare), reprezentarea grafică a
aproximării realizate de reţea pe baza acestor valori şi eroarea corespunzătoare;
c) numărul total de iteraţii cât a durat antrenarea şi reprezentarea grafică a evoluţiei erorii
ca funcţie de numărul de iteraţii;
d) traiectoria în planul parametrilor ( w, b) – reprezentare grafică;
e) valorile utilizate pentru parametrii de antrenare comentate prin prisma convergenţei
algoritmului şi a formei suprafeţei erorii. Se vor raporta şi explica eventualele eşecuri
în antrenare, datorate alegerii neadecvate a parametrilor de antrenare.
Problema 2
Să se utilizeze programul arna_bp1 (cu modificările necesare considerate) pentru a
selecta o regiune din planul parametrilor ( w, b) şi o gamă de valori a ratei de învăţare care să
asigure antrenarea eficientă pentru perechile de vectori (prototip, ţintă):
π (i − 1)π
xi = + ; zi = sin( xi ) ; i = 1,..., 7.
2 12
Să se comenteze criteriile care au condus la selectarea respectivă, prin referire la
convergenţa algoritmului şi forma suprafeţei erorii.
Problema 3
Se va studia şi lansa în execuţie programul arna_bp2 elaborat în MATLAB care antrenează o
reţea cu două straturi (cu noduri tansigmoidale pe primul strat şi liniare pe al doilea) pentru a
aproxima o funcţie neliniară ϕ : → cunoscută prin intermediul perechilor de vectori
prototip-ţintă:
( xi , zi ), zi = ϕ( xi ), i = 1,..., N .
Aplicaţii ale Reţelelor Neuronale în Automatică 10
Problema 4
Să se reia Problema 3 pentru aceiaşi vectori ţintă şi vectorii prototip:
π
zi = ϕ ( xi ) = 1 + exp(− xi ) sin(8π xi − ), i = 1,...,51 .
2
Apli
licaţi
ţii al
alee Re
y1 ≡ x 2 ∈ \ m
u2 ∈ \ p
Reţţelelor Ne
1 m
n
u ∈\ y2 ∈ \ p
x∈\
W1 σ1 W2 σ2
+ + +
Neuron
+
1
W ∈\ m×n σ 1 : \m → \m W 2 ∈ \ p×m σ 2 :\p → \p
funcţii funcţii
onale în Automatică
sigmoidale liniare
1 1
b1 b2
b1 ∈ \ m b2 ∈ \ p
Fig.1. Schema bloc a unei reţele neuronale cu două straturi, utilizată în probleme de aproximare neliniară
z∈\p
y1 ≡ x 2 ∈ \ m
u1 ∈ \ m u2 ∈ \ p y2 ∈ \ p +
Apl
n + + –
x∈\
δ 1 ∈ \m δ 2 ∈\p
Q1 (W 2 )T Q2
Q1 ∈ \ m×m (W 2 )T ∈ \ m× p Q 2 ∈ \ p× p
Fig.2. Schema bloc a procesării în sens invers a informaţiei în antrenarea unei reţele cu două straturi prin
algoritmul propagării inverse - calculul vectorilor delta: δ2 şi δ1