Bogdan Muresan - STUDIU PRIVIND STADIUL ACTUAL ÎN UTILIZAREA REŢELELOR NEURONALE PENTRU IDENTIFICAREA ŞI MODELAREA SISTEMELOR
Bogdan Muresan - STUDIU PRIVIND STADIUL ACTUAL ÎN UTILIZAREA REŢELELOR NEURONALE PENTRU IDENTIFICAREA ŞI MODELAREA SISTEMELOR
Bogdan Muresan - STUDIU PRIVIND STADIUL ACTUAL ÎN UTILIZAREA REŢELELOR NEURONALE PENTRU IDENTIFICAREA ŞI MODELAREA SISTEMELOR
ŞCOALA DOCTORALĂ
RAPORT DE CERCETARE
ŞTIINŢIFICĂ
Anul 2009
ŞCOALA DOCTORALĂ
RAPORT DE CERCETARE
ŞTIINŢIFICĂ
Anul 2009
CUPRINS
Capitolul 1. Introducere .................................................................................................................... 1
1.1 Generalităţi ................................................................................................................................. 1
1.2 Sistemul nervos biologic ............................................................................................................ 2
1.3 Neuronul artificial ...................................................................................................................... 4
Capitolul 2. Arhitecturi de reţele neuronale .................................................................................... 8
2.1 Reţele neuronale feedforward .................................................................................................... 8
2.1.1 Perceptronul simplu ............................................................................................................ 9
2.1.2 Modelul Adaline ............................................................................................................... 10
2.1.3 Perceptronul multistrat ...................................................................................................... 12
2.2 Reţele neuronale recurente ....................................................................................................... 13
2.2.1 Introducere ........................................................................................................................ 13
2.2.2 Reţele neuronale de tip Hopfield ...................................................................................... 15
2.3 Reţele neuronale bazate pe funcţii radiale ................................................................................ 17
Capitolul 3. Algoritmi de învăţare a reţelelor neuronale ............................................................. 22
3.1 Învăţare supervizată .................................................................................................................. 22
3.1.1 Algoritmul Back-Propagation ........................................................................................... 22
3.1.2 Algoritmi rapizi de antrenament pentru reţele neuronale feedforward ............................. 26
3.2 Învăţare nesupervizată .............................................................................................................. 30
3.2.1 Algoritmul hebbian generalizat ......................................................................................... 31
3.3 Învăţarea prin întărire (Reinforcement Learning) .................................................................... 32
Capitolul 4. Reţele neuronale în identificarea şi modelarea sistemelor ...................................... 35
Capitolul 5. Stadiul actual în utilizarea reţelelor neuronale pentru identificarea și controlul
proceselor .......................................................................................................................................... 40
Capitolul 6. Concluzii ...................................................................................................................... 47
Bibliografie ....................................................................................................................................... 49
1
Capitolul 1. Introducere
1.1 Generalităţi
Pentru a înţelege mai bine modul de abordare folosit la conceperea reţelelor neuronale
trebuie precizat modul de funcţionare al sistemului nervos.
Se estimează că în creierul uman există o reţea formată dintr-un număr între 1010 şi 1011
miliarde de neuroni puternic conectaţi între ei printr-un număr de sinapse de ordinul trilioanelor.
În Fig. 1.2.1 apare structura unui neuron. Astfel, un neuron are următoarele părţi
componente principale :
- Soma sau corpul celulei este partea centrală a celulei care realizează majoritatea
funcţiilor neuronului. Conţine mecanismul metabolic şi genetic necesar menţinerii activităţii
neuronului;
- Axonul (ieşirea celulei) este o fibră mai lungă, neramificată, o prelungire a corpului
celulei (citoplasmă) care poate ajunge la 1, 1.5 metri. Funcţia îndeplinită de axon este aceea de a
3
conduce influxul nervos de la corpul celulei la dendritele sau corpul celular al altei celule nervoase,
sau la o celulă efectoare;
sunt locale, ele propagându-se pe o distanță mică în corpul celulei. Apoi ele sunt însumate la nivelul
axonului. Dacă suma potenţialelor de excitare depăşeşte un anumit prag, atunci neuronul este
activat şi transmite impulsurile nervoase mai departe, de-a lungul axonului, fără atenuare, spre alți
neuroni. Rata impulsurilor ieșirii neuronului depinde de intensitatea semnalelor de intrare cât și de
ponderile sinaptice aferente acestora.
De aici rezultă cea mai importantă proprietate a rețelelor neuronale și anume plasticitatea.
Astfel, ca răspuns la stimulările primite, la nivelul conexiunilor se produc schimbări pe termen lung,
astfel încât conexiunile care ajută la obţinerea de rezultate pozitive sunt întărite, iar cele care
determină rezultate nedorite sunt slăbite. De asemenea, neuronii pot forma în timp noi conexiuni cu
alţi neuroni. Aceste mecanisme stau la baza capacităţii de adaptare a creierului la stimulii primiţi, pe
care o numim în mod convenţional învăţare.
În mod analog funcţionează şi o reţea neuronală artificială. În cea mai general formă a sa, o
reţea neuronală este un sistem proiectat pentru a modela felul în care creierul rezolvă o anumită
problemă sau execută o funcţie cu un anumit scop; reţeaua este de obicei implementată folosindu-se
componente electronice sau simulată printr-un program software.
Neuronul artificial denumit și procesor elementar, sau pur și simplu nod încearcă să imite
structura și funcționarea neuronului biologic. În literatură există numeroase modele, dar cel mai
răspândit, care reprezintă de fapt și fundamentul structural pentru majoritatea arhitecturilor de rețele
neuronale, este cel elaborat în anul 1943 de Warren McCulloch şi Walter Pitts prezentat în Fig.
1.1.3 de mai jos.
x1 w1
s y
∑ θ f
xn wn
Fiecărei conexiuni îi corespunde o valoare reală, numită pondere sinaptică, care determină
efectul intrării respective asupra nivelului de activare a neuronului.
În figură x i sunt intrările ponderate de mărimile w i , care apoi sunt însumate. Ponderile sunt
cele ajustate în timpul procesului de instruire. Rezultatul obținut în urma însumării este:
5
n
u = ∑ wixi
i =1
n
y = f ∑ wixi − θ
i=1
unde f este o funcţie de activare, n este numărul de intrări, iar θ este valoarea pragului de
activare (treshold).
Funcţia de activare f limitează amplitutinea semnalului de ieșire al neuronului și este
descrisă de ecuația: y = f (u − θ ) = f (u + b ) . Uneori este util să adăugăm intrării nete un termen b,
denumit factor al deplasării de scară (bias). Din ecuație rezultă deci că deplasarea de scară
reprezintă negativul valorii pragului de scară. Valoare s = u − θ poartă denumirea de potenţial de
activare.
Modelul original utilizează o funcţie de activare de tip signum, cu valorile -1 și 1. Suma
ponderată a intrărilor este comparată cu valoarea de prag θ , iar în funcţie de rezultat ieşirea este
setată pe “1” sau “0”. Totuşi pentru reţelele neuronale mai complexe sunt folosite funcţii de activare
neliniare, pentru a asigura o creştere a puterii de calcul. Astfel, mai departe sunt prezentate câteva
dintre cele mai folosite funcții de activare (Fig. 1.3.2):
1, s ≥ 0
- funcția de prag: f(s) = ;
0, s < 0
1, s ≥ 0
- funcția de prag simetrică sau funcția signum: f(s) = ;
− 1, s < 0
1
- funcția sigmoid unipolară sau logistică: f(s) = , a = ct;
1 + e −as
1 − e − as
- funcția sigmoid bipolară (tangenta hiperbolică): f(s) = .
1 + e −as
Funcțiile sigmoid unipolară și sigmoid bipolară sunt printre cele mai des folosite funcții de
activare pentru implementarea rețelelor neuronale, unul dintre motive fiind calculul relativ simplu
al derivatelor acestora.
6
0, s < 0
- funcţia liniară cu saturaţie: f(s) = s,0 ≤ s ≤ 1;
1, s > 1
- 1, s < 0
- funcţia liniară cu saturaţie, simetrică: f(s) = s,0 ≤ s ≤ 1;
1, s > 1
- funcţia gaussiană: f(s) = exp(−s 2 ) ;
În cazul rețelele neuronale feedforward (cu propagare înainte), neuronii sunt aranjați pe
nivele, formând un nivel de intrare, unul sau mai multe nivele ascunse și un nivel de ieșire. Nivelul
(nivelele) ascuns poate și să lipsească. Trăsătura definitorie pentru acest tip de rețele neuronale este
că fiecare neuron recepționează semnale fie din mediul extern (în cazul nivelului de intrare), fie de
la neuronii din nivelul anterior, fără a se forma vreo legătură de reacție. Astfel rețeau va furniza un
set de ieșire ca răspuns la un set de semnale de intrare. Se spune că o rețea neuronală este total
conectată dacă fiecare nod din fiecare strat (nivel) este conectat cu toți neuronii din stratul
precedent (Figura 2.1.1).
Dacă unele conexiuni sinaptice lipsesc se spune că rețeau neuronală este numai parţial
conectată (Figura 2.1.1). Cele total conectate au un caracter general, în sensul în care pot fi folosite
într-o gamă largă de probleme, dar rezultatele nu sunt întotdeauna cele mai bune. Rețelele
neuronale parțial conectate introduc anumite restrângeri, dar care constituie cunoștințe apriorice
despre problema în cauză și care reduc gradul de generalitate al unei rețele neuronale. Acest proces
de eliminare (tăiere) a anumitor conexiuni sinaptice se numește pruning (de la cuvântul din engleză
”prune” = a reduce, a tăia, a simplifica) [16]. În principiu acest proces presupune eliminarea
conexiunilor sinaptice care nu influențează răspunsul ieșirii rețelei neuronale (sau au o influență
neglijabilă). În literatura de specialitate există diferiți algoritmi [19], [20] pentru eliminarea acestor
9
conexiuni. Astfel, rețelele neuronale parțial conectate pot avea performanțe superioare celor total
conectate pentru anumite probleme specifice (de exemplu din punct de vedere a timpului de calcul).
După antrenare, având ponderile fixate, răspunsul rețelei la un set de semnale de intrare va fi
același, independent de activitatea anterioară a rețelei. Prin urmare, rețelele neuronale feedforward
nu includ o dinamică proprie și deci nici nu ridică probleme speciale în ceea ce privește stabilitatea
lor.
Unul dintre primele modele dezvoltate pe baza modelului McCulloch Pitts (1943) a fost o
rețea neuronală numită perceptron (Rosenblatt 1958) cu propagare înainte a semnalului
(feedforward). Perceptronul este cea mai simplă formă a unei rețele neuronale folosită pentru
clasificarea unor tipare liniar separabile. Interesul deosebit față de aceste rețele neuronale a fost
generat, printre altele, de capacitatea acestora de a generaliza, adică de a opera cu date diferite de
cele prezentate în etapa de antrenament şi de a învăța plecând de la o distribuție aleatoare a
ponderilor sinaptice ale rețelei. În consecință acest tip de rețele poate fi folosit cu succes în diverse
aplicații ce presupun clasificări.
Ideea principală este de a face mici ajustări ale ponderilor pentru a reduce diferenţa dintre
ieşirea reală a perceptronului şi ieşirea dorită. Ponderile iniţiale sunt iniţializate aleatoriu (în general
în intervalul [-0.5, 0.5]) şi apoi actualizate treptat astfel încât ieşirea să se apropie de valorile dorite.
Apoi, exemplele de antrenare sunt prezentate succesiv, în orice ordine.
Perceptronul simplu are însă o aplicabilitate practică limitată datorită valorii binare a ieşirii
și datorită imposibilității clasificării tiparelor (vectorilor de intrare) neliniare. Acesta constituie însă
punctul de plecare în studiul perceptronului multistrat.
10
Arhitectura unei rețele neuronale de acest tip este prezentată în Figura 2.1.1.1. Putem spune
că perceptronul simplu reprezintă o particularizare a modelului McCulloch-Pitts al neuronului
artificial pentru cazul în care funcția de activare este de tip treaptă unitate bipolară.
Scopul perceptronului simplu este de a clasifica în una din cele două clase disponibile (y =
+1 sau y = -1) un set de stimuli exteriori. Ieșirea binară obținută y este comparată cu un semnal de
referință d, obținându-se o eroare cuantificată e care este folosită mai departe la ajustarea
ponderilor.
Algoritmul de bază al antrenării perceptronului a fost descris de același Rosenblatt.
Conform acestuia ponderile w i sunt modificate astfel:
y = ϕ(v) = sign(v)
N
v = ∑ wixi − θ
i =1
Unul din cele mai importante aspecte ale neuronilor, artficiali sau naturali, este capacitatea
lor de a învăța, deci de a-și modifica ponderile intrărilor în acord cu un algoritm adaptiv. Cu alte
cuvinte, procesul de învățare în cazul rețelelor neuronale se referă la ajustarea ponderilor intrărilor,
11
astfel încât să se obțină ieșirea dorită atunci când semnalele de intrare sunt corespunzătoare. Unul
dintre cele mai simple modele de neuron având capacitatea de a învăța, a fost introdus de Widrow și
Hoff în 1960 numit generic Adaline (Adaptive Linear model) și are structura din Fig. 2.1.2.1.
1
J = M ∑ e 2 k (n)
2 k
Una dintre metodele folosite pentru obținerea minimului funcției J este bazată pe gradientul
acesteia. Conform acestei metode incrementul de modificare a ponderilor este dat de ecuația:
∂J
Δw (n) = −η ⋅ ∇J = −η ⋅
∂w
1
E(n) = ∑ e 2 k (n)
2 k
De aici rezultă:
∂E(n) ∂e (n)
Δw (n) = −η = −η∑ e k (n) k
∂w k ∂w
dar:
Perceptronul multistrat a fost folosit cu succes pentru a rezolva diverse probleme dificile
fiind antrenat într-o manieră supervizată cu un algoritm foarte popular cunoscut denumit algoritmul
de propagare înapoi a erorii (Error Back-Propagation Algorithm). Acest algoritm se bazează
pe regula de învăţare prin corecţia erorii. Astfel, poate fi privit ca o generalizare a la fel de
popularului algoritm de filtrare adaptivă: algoritmul celor mai mici pătrate. Algoritmul de propagare
înapoi a erorii este descris mai în detaliu în Capitolul 4.
2.2.1 Introducere
Rețelele neuronale recurente se individualizează prin existența unui semnal de reacție, din
partea neuronilor de ordin superior, pentru cei de ordin inferior sau chiar pentru propriile lor intrări
(Fig. 2.2.1). Acest tip de rețele lasă o urmă a comportamentului său și sunt capabile să memoreze
stările lor anterioare. Rețele neuronale recurente se pot împărți în: (1) rețele parțial recurente sau
(2) rețele total recurente. În primul caz rețelele au selectate conexiuni de reacție specifice care au o
utilitate mai mare. Conexiunile de reacție pentru stratul de intrare pot fi realizate din nodurile
ascunse sau din nodurile de ieșire.
14
În plus față de conexiunile de reacție, care fac posibilă utilizarea unei valori de ieșire de la
un moment anterior pentru calculul valorii următoare, poate fi folosit un buffer suplimentar pentru a
memora valori de ieșire pentru mai mulți pași anteriori.
Rețelele neuronale recurente sunt caracterizate de:
- unități de procesare neliniare;
- simetria conexiunilor sinaptice (wji = wij);
- folosirea intensivă a feedback-ului .
Din această categorie fac parte rețelele neuronale Boltzmann şi rețelele neuronale Hopfield,
dezvoltarea acestora fiind inspirată din fizica statistică şi termodinamică. Rețelele neuronale
Hopfield vor fi descrise mai detaliat în cele ce urmează.
Câteva din dificultățile ce pot fi întâmpinate în cazul utilizării rețelelor neuronale recurente
sunt enumerate mai jos:
- este necesară o sincronizare la propagarea semnalelor prin rețea pentru a obține
timpi adecvați;
- este greu de descris într-un anumit fel (printr-o formulă de exemplu) dependența de
timp învățată de o rețea neuronală după antrenare, adică echilibrul la care a ajuns rețeaua între a
uita stări anterioare și a învăța stări noi. Problema care se pune este: de câte moment de timp
anterioare poate ține cont o rețea recurentă ?;
- rețelele neuronale pot manifesta un comportament haotic, prin urmare învățarea
poate fi dificilă.
15
O rețea neuronală de tip Hopfield este o rețea dinamică, cu reacție încorporată (Fig.
2.2.1.1). Poate fi văzută ca o memorie asociativă sau ca o memorie adresabilă prin conţinut.
Astfel, o rețea de acest tip are ca funcție principală regăsirea tiparelor stocate în memorie, ca
răspuns la prezentarea unui tipar incomplet sau contaminat cu zgomot la intrare. Acest lucru constă
în transformarea tiparelor ξ μ în stări stabile s μ ale sistemului dinamic (proces de codare) și invers
(proces de decodare ).
Fiecare neuron, de tip McCulloch-Pitts, al rețelei neuronale Hopfield (Fig. 2.2.1.1) este
caracterizat prin una din cele două stări posibile: activ ( s i = 1) , respectiv inactiv ( s i = -1).
Starea unei rețele neuronale de tip Hopfield alcătuită din N neuroni este definită de către
vectorul:
s = [s1 , s 2 ,..., s N ]
T
Neuronul “j” îşi modifică starea conform funcției signum: s j = sgn[v j ] . Dacă v j = 0 atunci
s j poate lua o valoare arbitrară +1 sau -1, sau starea neuronului poate rămâne neschimbată.
1 N
w ji = ∑ ξ μ, jξ μ,i
N μ =1
1 N p
W= ∑ ξμξμ − I
T
N μ =1 N
w ij = w ji (sau W = WT) adică influența exercitată de neuronul “i” asupra neuronului “j” este egală
N
y j = sgn ∑ w ji y i − θ i , j = 1,2,..., N
i=1
y = sgn (W ⋅ y − θ )
1 N N
E=− ∑∑ w ijsis j
2 i=1 j=1
17
Astfel, în timpul etapei de regăsire a unui tipar, E descreşte monoton. Schimbarea stării
rețelei va continua până când se va atinge un minim local al peisajului energetic. Minimele
peisajului energetic corespund unor atractori (stări) specifici spațiului stărilor (fazelor) care în mod
normal reprezintă puncte determinate în faza de memorare. Regiunea învecinată atractorilor poartă
denumirea de bazin de atracție. Nu este obligatoriu ca starea finală să coincidă cu unul din tiparele
memorate. Acest fapt poate fi pus şi pe seama apariției unor stări (atractori) false (“spurious
states”).
Relativ la capacitatea de memorare a rețelei neuronale de tip Hopfield se arată că numărul
maxim de tipare de dimensiune N care pot fi regăsite perfect este:
N
p max ≅
4lnN
bazați pe funcții radiale răspund doar la regiuni relativ mici din spațiul de intrare. În consecință,
rețelele neuronale RBF se comportă mai bine când sunt disponibili mulți vectori de antrenament.
Modelul unui neuron RBF este prezentat în Fig. 2.3.2. În acest caz intrarea netă este
consituită din norma diferenței vectoriale ||t - x||. Un exemplu tipic pentru funcția de activare este:
ϕ(x) = e − x reprezentată în Fig. 2.3.3. Se constată că funcția radială are un maxim dacă intrarea e
2
nulă. Dacă distanța dintre t şi x descreşte, valoarea ieşirii creşte. Adică neuronul radial se comportă
ca un detector care dă “1” la ieşire de fiecare dată când tiparul de intrare e identic cu vectorul
pondere t.
O rețea neuronală RBF este organizată pe trei straturi (vezi Fig 2.3.1): stratul de intrare
sau stratul senzorial, stratul ascuns care furnizează o mulțime de funcții (numite funcții radiale)
pentru reprezentarea vectorilor de intrare. Neuronii din stratul ascuns sunt total conectați cu
19
neuronii din stratul de intrare, dar și cu neuronii din stratul de ieşire. Nodurile din stratul de ieșire
realizează o simplă însumare folosind o funcție de activare liniară.
Transformarea spațiului de intrare în spațiul neuronilor ascunşi este neliniară pe când
transformarea spațiului neuronilor ascunşi în spațiul neuronilor de ieşire este liniară. Justificarea
acestui aspect se bazează pe teorema lui Cover asupra separabilității tiparelor [22], care este și
principiul pe care se bazează funcționarea rețelelor neuronale RBF. Teorema arată că o problemă
complexă de clasificare a tiparelor poate fi mai bine rezolvată în sensul liniar separabilităţii, într-un
spaţiu cu un număr mare de dimensiuni, decât în unul cu un număr mic de dimensiuni.
F(x k ) = d k , ∀k = 1, 2, , N
F(x) = ∑ w k ϕ( x − x k )
N
k =1
unde {ϕ( x − x k ) | k = 1,2,..., N} este o mulţime de N funcţii arbitrare, în general neliniare, numite
funcţii radiale, iar • reprezintă o normă, în general fiind utilizată norma Euclidiană. Vectorii
∑ w ϕ( )= d
N
k x − xk k , ∀k = 1, 2, , N
k =1
20
Dezvoltând relaţia , rezultă următorul sistem de ecuaţii liniare, din care se pot determina
ponderile wk:
unde
ϕ mk = ϕ( x m − x k ), ∀m, k = 1, 2, , N
Fie D = [d1, d2, ..., dN]T şi W = [w1, w2, ..., wN]T vectorul răspunsului dorit şi respectiv
vectorul pondere şi fie Φ matricea de dimensiune NxN, de elemente ϕmk, numită matrice de
interpolare. Sistemul de ecuaţii de mai sus poate fi rescris sub formă matriceală ca:
ΦW = D ,
Rezultatele teoretice şi experimentale arată că alegerea funcției neliniare ϕ(.) nu este crucială
pentru performanțele ulterioare ale une rețele neuronale RBF. Aceasta poate fi, de exemplu:
1
ϕ(r) = , c > 0, r ≥ 0
(r + c 2 )1/2
2
sau
r2
ϕ(r) = exp − 2 , σ > 0, r ≥ 0
2σ
După alegerea arhitecturii unei rețele neuronale (tipul neuronului, numărul de nivele,
existența sau lipsa buclelor de reacție, etc.) pentru ca aceasta să asigure anumite performanțe
impuse în contextul real, este necesară învățarea ei. În general, în faza de învățare ponderile de
intrare sunt ajustate în sensul minimizării unei funcții de performanță. În acest capitol vor fi
prezentați o serie de algoritmi de învățare dintre cei mai utilizați în prezent.
Algoritmul de învățare cu propagare înapoi este probabil cel mai utilizat algoritm de către
utilizatorii rețelelor neuronale. Este un algortim de învățare supervizată, generalizând regula delta a
lui Widrow-Hoff. A fost propus prima dată de Werbos în 1971, însă nu a fost luat în considerare,
fiind apoi redescoperit de Parker în 1982 și respectiv Rumelhart, Hinton și Williams în 1986.
Realizat inițial pentru antrenarea rețelelor neuronale statice, cu propagare înainte (feedforward),
acest algoritm a fost extins și în cazul rețelelor recurente [23]. În esență, algoritmul back-
propagation constă în compararea setului de ieșire cu un set de referință și propagarea înapoi a
erorii de la un nivel la altul, ajustându-se ponderile de intrare astfel încât eroarea să fie minimizată.
Este de fapt un algoritm de modificare pas cu pas a gradientului funcției de eroare.
Semnalul de eroare al neuronului j din stratul de ieșire în iterația n (adică la prezentarea
valorii a n-a din setul de intrare) este:
unde d j este semnalul de referință, iar y j este răspunsul actual al rețelei neuronale MLP.
1 2
Mai departe definim valoarea erorii instantanee a neuronului j ca și e j (n) . Pentru a obține
2
eroarea instantanee la nivelul întregului strat de ieșire (eroarea totală) ε(n) se însumează valoarea
23
1 2
e j (n) corespunzătoare fiecărui neuron din stratul de ieșire; aceștia sunt numai neuronii ”vizibili”
2
pentru care putem calcula semnalul de eroare. Astfel putem scrie:
1
ε(n) = ∑
2 j∈C
e 2j (n)
unde C include toți neuronii din stratul de ieșire. Fie N numărul total de tipare din setul de date de
antrenare. În acest caz eroarea medie pentru întreg setul de date va fi funcția de cost care va trebui
minimizată:
1 N
ε av (n) = ∑ ε(n)
N n =1
Eroarea instantanee ε(n) , deci și eroarea medie totală ε av (n) , este o funcție a tuturor
parametrilor liberi (adică ponderile sinaptice și valorile bias-urilor) ai rețelei. Obiectivul procesului
de antrenare este de a ajusta parametrii liberi ai rețelei minimizând funcția ε av (n) . Pentru a realiza
această minimizare considerăm o metodă simplă de antrenare în care ponderile sunt actualizate
incremental (pattern by pattern) preț de o epocă. Ajustarea ponderilor are loc în conformitate cu
erorile corespunzătoare calculate pentru fiecare tipar prezentat la intrarea rețelei.
Media aritmetică a modificărilor individuale a ponderilor din întreg setul reprezintă o
estimare a adevăratelor modificări care ar rezulta din ajustarea ponderilor bazată pe minimizarea
funcției de cost ε av (n) pe întreg setul de antrenare.
∂ε(n)
Δw ji (n) = -η
∂w ji (n)
unde η este rata de învăţare a algoritmului back-propagation. Semnul minus din ecuația de mai
sus ne indică folosirea gradientului descendent în spațiul ponderilor (căutarea unei direcții pentru
modificarea ponderilor care duce la reducerea valorii ε(n) ).
Mai departe putem exprima gradientul astfel:
1 ∂ε(n)
ε(n) = ∑
2 j∈C
e 2j (n) ⇒
∂e j (n)
= e j (n)
∂e j (n)
e j (n) = d j (n) − y j (n) ⇒ = −1
∂y j (n)
∂y j (n)
y j (n ) = ϕ( v j (n )) ⇒ = ϕ' ( v j (n ))
∂v j (n)
∂v j (n)
v j (n ) = ∑ w ji (n ) y i (n ) ⇒ = y j (n )
j ∂w ji (n)
Deci obținem:
∂ε(n)
= −e j (n) ⋅ ϕ ' (v j (n)) ⋅ y j (n)
∂w ji (n)
∂ε(n)
δ j (n) = -
∂v j (n)
∂ε(n) ∂e j (n) ∂y j (n)
=− ⋅ ⋅
∂e j (n) ∂y j (n) ∂v j (n)
= e j (n) ⋅ ϕ ' (v j (n))
Gradientul local indică modificările cerute în ponderile sinaptice. Astfel după cum se poate
vedea mai sus, gradientul local δ j (n) pentru neuronal j din stratul de ieșire este egal cu produsul
semnalului de eroare e j (n) corespunzător neuronului și derivata ϕ' (v j (n)) funcției de activare
asociate.
Se poate observa că factorul cheie pentru calcularea ajustărilor ponderilor Δw ji (n) este
semnalul de eroare e j (n) la ieșirea neuronului j. În acest context, putem considera două cazuri
distincte, în funcție de locul din cadrul rețelei în care se găsește neuronal j. Primul caz, în care
neuronul j este un nod de ieșire, este simplu de tratat deoarece pentru fiecare nod de ieșire al rețelei
25
este specificat răspunsul dorit, astfel că semnalul de eroare asociat se poate calcula direct. În cazul
doi, neuronul j este un nod ascuns. Chiar dacă neuronii ascunși nu sunt direct accesibili, ei impart
responsabilitatea pentru orice eroare apare la ieșirea rețelei neuronale. Problema care se pune este
de a ști cum să penalizăm sau să recompensăm neuronii ascunșii pentru partea lor de
responsabilitate. Această problemă este rezolvată într-o manieră elegantă prin propagarea înapoi
prin rețea a semnalelor de eroare.
Astfel, pentru un neuron j aflat în stratul ascuns nu este specificat un răspuns dorit. Prin
urmare, semnalul de eroare pentru un neuron ascuns ar trebui determinat recursiv, în funcție de
semnalele de eroare ale tuturor neuronilor direct conectați la neuronul ascuns. În acest punct
algoritmul back-propagation devine complicat. Acum redefinim gradientul local δ j (n) pentru un
∂ε(n) ∂y j (n)
δ j (n) = − ⋅
∂y j (n) ∂v j (n)
∂ε(n)
=− ϕ' (v j (n)), neuronul j este ascuns
∂y j (n)
Pentru a calcula derivata parțială ∂ε(n)/∂y j (n) folosim expresia (cu indexul k în locul
indexului j – pentru a evita confuzia între neuronul ascuns j și neuronul din stratul de ieșire k):
1
ε(n) = ∑
2 k∈C
e 2k (n) , neuronul k este un nod de ieșire
∂ε(n) ∂e (n)
= ∑ ek k
∂y j (n) k ∂y j (n)
Observăm că:
m
v k (n) = ∑ w kj (n)y i (n)
j=0
unde m este numărul total de intrări (excluzând bias-urile) aplicate neuronului k. Aici, din nou,
ponderea sinaptică w k0 (n) este egală cu bias-ul b k (n) aplicat neuronului k, iar intrarea
corespunzătoare este fixată la valoare +1. Astfel, diferențiind ultima ecuație în funcție de y i (n)
rezultă:
∂v k (n)
= w kj (n)
∂y i (n)
∂ε(n)
= −∑ e k (n)ϕ' (v k (n))w kj (n)
∂y j (n) k
= −∑ δ k (n)w kj (n)
k
În cele din urmă obținem formula back-propagation pentru gradientul local δ j (n) descris
de expresia:
Factorul ϕ j ' (v k (n)) folosit pentru calculul graientului local δ j (n) depinde numai de funcția
de activare asociată neuronului ascuns j. Celălalt factor implicat în calcul, suma de k, depinde de
două seturi termeni. Primul set de termeni δ k (n), necesită cunoștințe despre semnalele de eroare
e k (n), pentru toți neuronii aflați în stratul din imediata apropiere a neuronului ascuns j, și care sunt
direct conectați la neuronul j. Cel de-al doilea set de termeni w kj (n), reprezintă ponderile sinaptice
Δw ji (n) = ηϕ j ' (v k (n))∑ δ k (n)w kj (n) y i (n)
k
pragurile, forma funcției de activare, rata de învățare, etc.). Algoritmii prezentați în cadrul acestui
subcapitol oferă o alternativă la backpropagation. Ei converg în mult mai puține epoci de antrenare
spre valori optime ale ponderilor decât back-propagation însă implică o complexitate ridicată a
calculelor. De subliniat însă faptul că în cazul unor rețele de dimensiuni mari convergența într-un
număr mai mic de epoci nu înseamnă implicit şi un timp de antrenament mai scurt deoarece
calculele aferente unei epoci pot să dureze foare mult. Din acest motiv folosirea unuia sau altuia
dintre algoritmii de antrenament este determinată de problema concretă ce se doreşte a fi
soluționată.
∂ 2ε
H ij =
∂w i ∂w j
se numește hessian.
Pentru ca w să fie un punct de minim se anulează derivata relației precedente:
∇ε (w ) = ∇ε (w 0 ) + H (w − w 0 ) = 0
∇ε (w 0 ) ∇ε (w 0 )
⇒ w = w0 − −1
⇒ ∇w = − η
H H −1
Relația de mai sus reprezintă metoda lui Newton, care folosită iterativ (estimarea lui w fiind
un nou w 0 ), conduce la găsirea minimului într-un număr extreme de redus de epoci de
antrenament. Dezavantajul metodei constă în complexitatea extrem de ridicată a calculelor ce
trebuie efectuate la fiecare iterație: calculul derivatelor parțiale de ordin întâi şi doi pentru ε
precum şi inversa hessianului (care poate să fie singular şi deci H −1 nu există!).
În consecință metoda lui Newton îşi găseşte aplicabilitate practică restrânsă, dar poate servi
ca punct de referință pentru abordări ulterioare.
28
Elimină parțial dezavantajele metodei lui Newton prin aproximarea hessianului cu matricea
[∇ ε(w) + νI], în care ν reprezintă un factor de regulă pozitiv iar I matricea identică:
2
∇ε ( w 0 )
∆w = −η
[∇ ε(w) + νI]
2 −1
Observaţie:
O matrice este:
a) simetrică dacă A = A ;
T
−1
c) singulară, dacă nu ∃A .
[ ]
În acest condiții ∇ 2 ε (w ) + νI este simetrică şi nesingulară chiar dacă hessianul e singular.
Pe de altă parte, v poate fi făcut suficient de mic pentru a asigura convergența rapidă a
algoritmului.
Metoda Levenberg–Marquardt reprezintă una din cele mai rapide metode folosite în
practică, dar este dificil de folosit în cazul în care vectorii de antrenament au dimensiuni foarte mari
din cauza cerințelor de memorie şi putere de calcul.
w = w0 + η ⋅ d ,
atunci se obține din relația de mai sus tocmai algoritmul paşilor descendenți (gradientului
descendent) folosit în deducerea algoritmului back-propagation standard:
∆w = w − w 0 = − η∇ε (w 0 )
Ideea care stă la baza metodelor de tip cvasi–Newton este aceea de a aproxima H −1 printr-o
matrice H k care să țină cont doar de informația obținută pe baza derivatelor parțiale de ordinul I.
29
Una din cele mai sofisticate metode cvasi–Newton este algoritmul BFGS (Broyden–Fletcher–
Goldfarb–Shanno):
Fie:
y k = ∇ε (w (k +1) ) − ∇ε (w (k) )
Atunci:
d yT T d k d Tk
H k +1 = I − Tk k H k I − y k d k +
d Tk y k dT y
dk yk k k
și rata de învățare:
[
η(k) = arg min ε w (k) − ηH k Δε w (k)
η≥0
( )]
Conform metodei gradientului (paşilor) descendent vectorul direcție de-a lungul căruia
ajustează vectorul pondere, reprezintă negativul vectorului gradient d = −∇ε (w 0 ) . Paşii succesivi
ai acestui algoritm sunt în mod necesar perpendiculari, deoarece:
∂
0= ε (w 0 + ηd(n) ) = d(n ) ⋅ ∇ε (n + 1)
∂η
adică noul vector gradient este perpendicular pe vechea direcție de căutare (vezi Fig. 3.1.2.1). În
consecință, se urmează o traiectorie în zig - zag.
Figura 3.1.2.1 Găsirea minimului unei suprafețe pătratice (central elipsei) în cazul pașilor
descendenți a) și în cazul gradientului conjugat b)
30
O soluție mai bună constă în alegerea noii direcții ca un compromis între direcția
gradientului şi vechea direcție de căutare:
Aceasta înseamnă că noua direcție trebuie astfel aleasă încât să nu modifice componenta
gradientului de-a lungul direcției anterioare, care a fost tocmai anulată:
adică
d(n )Hd(n + 1) = 0
În acest caz se spune că vectorii d(n+1), şi d(n) sunt conjugaţi, de unde şi denumirea acestor
algoritmi de antrenament.
Există mai multe modalități de alegere a lui β :
g T (n + 1)[g(n + 1) − g(n )]
• Polak-Ribiere: β(n) =
g T (n )g(n )
g T (n + 1)[g(n + 1) − g(n )]
• Fletcher-Reeves: β(n) =
g T (n )g(n )
dezvoltă abilitatea de a-și forma reprezentări interne ale datelor de intrare și, deci de a creea
automat noi clase.
X = [x 1 , x 2 ,.....x n ]T ,
[ ]
Primii M vectori proprii ai matricii de corelație R xx = E XX T , ordonați în manieră
descrescătoare a valorilor proprii sunt furnizați de următorii vectori coloană :
W1 = [w 11 , w 12 ,.....w 1N ]
T
W2 = [w 21 , w 22 ,.....w 2N ]
T
......................................
WM = [w M1 , w M2 ,.....w MN ]
T
2,....M). Pentru aceasta se inițializează W j cu valori aleatoare după care ponderile vor fi modificate
astfel:
32
Wj (n + 1) = Wj (n ) + η (n )y j (n ) X(n ) − y j (n )Wj (n ) − ∑ y i (n )Wi (n )
i< j
y j (n ) = W jT (n )x (n )
[ ]
Wj (n + 1) = Wj (n ) + η (n )conj y j (n ) X(n ) − y j (n )Wj (n ) − ∑ y i (n )Wi (n )
i< j
[ ]
în care conj y j (n ) este conjugata complexă a lui
y j (n ) = W jH (n )X (n )
Învățarea prin întărire (Reinforcement Learning, RL) este sinonimă cu învățarea prin
interacţiune. În timpul învățării sistemul adaptiv încearcă anumite acţiuni asupra mediului; pentru
fiecare dintre acestea primeşte o evaluare, de obicei mărime scalară, denumită semnal de întărire.
Algoritmii RL urmăresc, prin acțiunile selectate, maximizarea recompensei (“reward”) primite într-
o anumită perioadă de timp.
Programarea agenților se face prin semnale de întărire sau slăbire (răsplată/pedeapsă) fără a
fi nevoie să se precizeze modalitatea concretă de rezolvare a sarcinii necesar a fi îndeplinită.
Comportamentul adecvat se învață prin interacțiuni de tipul încercărilor succesive (‘trial-and-
error’) asupra unui mediu înconjurător dinamic.
Există două strategii principale pentru rezolvarea problemelor de tipul învățării prin întărire:
a) Metode evolutive. Din această clasă fac parte metodele de optimizare a funcțiilor, gen
algoritmi genetici, programare evolutivă sau călire simulată. Caracteristic pentru aceste metode este
căutarea în spațiul comportamentelor posibile în scopul găsirii unuia care să fie potrivit mediului
considerat.
33
Fig.3.3.1 Interacțiunea mediu-agent se face prin: acțiuni (“a”), semnal de întărire (“r”),
semnal senzorial ce informează despre starea mediului (“s”).
Ca și algoritmi specifici învățării prin întărire pot fi amintiți: metoda bazată pe valoarea
acţiunilor, metoda bazată pre pogramarea dinamică, metoda de tip Monte Carlo, diferenţa
temporală.
Ca și aplicații cele mai spectaculoase rezultate ale rețelelor neuronale artificale bazate pe
învățarea prin întărire s-au obținut în domeniul jocurilor de inteligență (cum ar fi șahul sau tablele).
35
Un domeniu în care utilizarea rețelelor neuronale este promițătoare, este cel al modelării și
identificării sistemelor.
O problemă care trebuie pusă este cea a identificabilității sistemelor. Spre deosebire de cazul
metodelor analitice de identificare în care această problemă este larg tratată, în cazul identificării
sistemelor cu ajutorul rețelelor neuronale problema nu este încă pe deplin clarificată. Vom
considera însă că toate sistemele pot fi reprezentate printr-o rețea neuronală, indiferent de
complexitatea lor, tipul, arhitectura și algoritmul de învățare ale acesteia fiind stabilite pentru clase
de sisteme în parte. Se presupune de asemenea că pentru sistemul ce urmează a fi identificat, atât
semnalele de ieșire cât și cele de intrare sunt observabile și măsurabile.
Pentru identificarea unui proces trebuie construită o reţea neuronală, care are la intrare
acelaşi vector de intrare u ca şi sistemul real şi trebuie să genereze un vector y m care estimează y p
neuronale, în acest caz, este posibilitatea de a modela, cu ajutorul acestora, atât sisteme liniare, cât
şi sisteme neliniare. Pentru a obține o rețea predictivă cu performanțe bune este important să o
antrenăm cu date reprezentative ale procesului real. Munca de până acuma arată că antrenarea unei
rețele pe baza unora date luate aleator și care acoperă tot domeniul de funcționare oferă cea mai
bună reprezentare și capacitate de generalizare. McGregor și alții în [25] observă că, pentru un
model empiric care este folosit într-o buclă închisă de control, achiziția datelor pentru antrenare
trebuie realizată în aceleași condiții.
u yp
Proces
Model +
Neuronal ym -
Eroare
Algoritm
Antrenare
unde y(t) reprezintă variabila măsurabilă de ieșire, φ = [φ1 , φ 2 ,..., φ n ] vectorul variabilelor de
T
e(t) o variabilă introdusă de incertitudinea asupra modelului, zgomote sau perturbații. Pentru
aplicarea metodei, se realizează o eșantionare cu perioada τ , astfel încât problema regresiei liniare
poate reformulată ca
unde
m
ri (w ) = y(i) − w T φ(i) = y(i) − ∑ w jφ j (i)
j=1
și
r
σ(ri ) = β 2 ln cosh i , β > 0
β
dw j ( t ) m
= µ j ∑ ψ(ri )ϕ j (i), j = 1,2,...n
dt i =1
37
unde
r
µ j > 0, ψ(ri ) = tanh i
β
Considerând variații infinit mici pentru ponderile de intrare, ecuația de mai sus se
transformă într-un set de ecuații cu diferențe:
m
w j (k + 1) = w j (k ) + α(k )∑ ψ (ri (k ))ϕ j (i), k = 0,1,2,...
i =1
unde
m
ri (k ) = y(i) − ∑ w j (k )ϕ j (i)
j=1
w j ( k ) = w j ( t ) | t = kτ
și
α(k ) > 0
Pentru obținerea unor modele cu grad de exactitate mai mare, pot fi utilizate unul sau mai
multe nivele ascunse, introduse de ecuațiile auxiliare:
^ ^ 1 ^
w j (k + 1) = w j (k ) + j
w ( k ) − w j ( k ) , k = 0,1,2,...
k +1
În cazul sistemelor liniare se pot enumera mai multe tipuri de modele folosite uzual:
−1 −1 −1
- modelul ARMAX, de forma: A(z )y(k) = B(z )u(k) + C(z )e(k) ;
−1
- modelul RFI, cu forma: y(k) = B(z )u(k) + e(k) ;
−1 −1
- modelul ARX, cu forma: A(z )y(k) = B(z )u(k) + e(k) ;
În cazul sistemelor neliniare, în literatura de specialitate sunt sugerate patru tipuri de
modele:
să fie atins scopul dorit. Am arătat în capitolul 2, că în literatura de specialitate se consideră că orice
funcție liniară sau neliniară, mono sau multivariabilă poate fi modelată prin intermediul unei rețele
neuronale cu două nivele ascunse. Nu întotdeauna însă sunt neapărat necesare două nivele ascunse.
Numărul optim de neuroni în stratul ascuns, numărul de epoci de antrenare, sau valoarea a
erorii medii pătratice nu pot fi prezise cu exactitate înainte de o evaluare a peformanțelor rețelei în
mai multe seturi de experimente. Optimul acestor valori poate fi determinat numai experimental și
depinde de tipul problemei și structura rețelei neuronale.
În inginerie cea mai utilizată arhitectură pentru rețelele neuronale este arhitectura
feedforward. Acestea își datorează popularitatea ”afinității” lor pentru ecuațiile matematice
întâlnite în inginerie. O altă arhitectură care poate fi utilă în identificarea sistemelor este cea
recurentă, în care stratul ascuns include conexiunile de reacție dintre neuroni, cu o întârziere t. Dacă
aceste conexiuni sunt îndepărtate, rețeaua rămasă corespunde unei arhitecturi feedforward și, de
aceea arhitectura feedforward poate fi văzută ca un subset al arhitecturii recurente. În Fig 4.2 de mai
jos este prezentată structura generală a unei rețele recurente pentru identificarea unui proces.
Estimator
Parametrii
Regulatorului
Referinţă
Ieşire
Regulator Proces
Comanda
Cum rețeaua este antrenată pentru a opera în timp real, sunt impuse două constrângeri legate
de adaptarea on-line pentru a evita modificări ale ponderilor datorate unor disturbații asimilate în
timpul învățării:
(1) Dacă are loc o modificare a anodului, rețeaua nu mai primește date de intrare pentru o
perioadă de timp, la sfârșitul căreia vectorul de intrare este reajustat în funcție de valori de dinainte
și de după modificarea anodului;
(2) Înainte și după adaptarea unei ponderi, dacă raportul dintre două valori a erorii prezise
depășește o anumită limită, noua pondere este rejectată.
Astfel rețeaua a fost antrenată și testată pe o perioadă de 24 de ore pe baza unori factori
prestabiliți (câștigul și eroarea în acest caz). Analiza performanțelor rețelei după antrenare a arătat
că aceasta este capabilă să prezică rezistența unei celule 15 minute în viitor (cu o eroare de 0.005),
chiar și în prezența unor modificări ale anodului. Deci rețeaua a învățat să prezică starea celulelor
mai multe minute în avans, în timp ce menține ultimele stări cunoscute. Acest lucru este de mare
importanță pentru utilizarea rețelei mai departe în controlul predictiv, pentru că astfel operatorul
poate preveni situațiile critice cum ar fi efectele de anod.
În continuare, fără o antrenare adițională rețeaua a fost testată pe date furnizate de la o
celulă reală (în prima situație datele de testare au fost obținute prin simulare). Rezultatele,
prezentate în Fig 5.1 indică faptul că rețeaua este capabilă să surprindă dinamica celulei reale și de
asemenea să reducă nivelul de zgomot, aceasta fiind de fapt esența generalizării.
Pe de altă parte, acest test folosește și ca validare a simulatorului arătând că, după învățarea
rețelei pe baza datelor rezultate din simulare, poate generaliza pentru a prezice dinamica procesului
real. Performanțele rețelei pot fi îmbunătățite prin antrenare suplimentară, dar acest lucru va dăuna
capacității de generalizare a rețelei. Este însă evident că performanțele se vor îmbunătăți odată ce
rețeaua neuronală va fi integrată în procesul real și va începe să învețe on-line. Mai departe în
lucrare, rețeaua neuronală dezvoltată este folosită la implementarea unui algoritm de control
predictiv pentru procesul de obținere a celulelor din aluminiu prin electroliză.
Identificarea și modelarea pe baza rețelelor neuronale şi-a gasit aplicabilitatea și în
conducerea proceselor biologice. Două astfel de exemple sunt cele din [8] și [17]. Ambele lucrări
prezintă metode de control pentru procesul de tratare a apelor uzate din stațiile epurare (Fig. 5.2).
Figura 5.3Validarea modelului nuronal: procesul – linia continuă, modelul – linia întreruptă [17]
În cel de-al doilea caz [8] este folosită o rețea neuronală recurentă care apoi este folosită
pentru implementarea unui coltroler bazat de asemenea tot pe rețele neuronale.
În ultima perioadă rețelele neuronale s-au utilizat cu succes în domeniu aviatic. În [29] este
abordată problema modelării aerodinamice și a estimării parametrilor unui avion aeroelastic pe baza
rețelelor neuronale. Este dezvoltat un model neuronal capabil să prezică forța generalizată și
coeficienții momentului folosind măsurători privind doar variabilele de mișcare și control, fără a fi
nevoie de convenționalele variabile de elasticitate și derivatele lor în funcție de timp. Mai departe
se arată că un astfel de model neuronal poate fi folosit pentru a extrage derivatele de control și
stabilitate echivalente pentru un avion flexibil. Sunt prezentate rezultatele pentru un avion cu
diferite grade de flexibilitate pentru a demonstra utilitatea abordării pe baza rețelelor neuronale atât
în cazul modelării, cât și în cazul estimării parametrilor.
De asemenea, în [30] este implementat un sistem control bazat pe rețele neuronale pentru un
UAV (Unmaned Aerian Vehicle). Foarte interesantă este analiza coparativă care se face în lucrare,
între performanțele obținute de rețelele neuronale bazate pe funcții radiale (RBF) și rețelele
neuronale cu un singur strat ascuns. S-a pornit de la ideea că aceste două arhitecturi de rețele sunt
cele mai utilizate de industrie și de societățile academice pentru implementarea controlului adaptiv
cu model de referință bazat pe rețele neuronale. Sunt evidențiate diferențele cheie între aceste
arhitecturi, care au un impact considerabil asupra abordărilor legate de controlul adaptiv.
Rezultatele și concluziile notate în lucrare pot furniza specialiștilor în domeniu o justificare în
alegerea unei arhitecturi în detrimentul celeilalte, și deci un control cu performanțe mai bune, în
funcție de aplicație.
44
Un alt exemplu de utilizare cu succes a rețelelor neuronale este cel prezentat în [9], și
anume modelarea unui proces de reglare a nivelului din tamburul unui cazan de abur din industria
electroenergetică. Motivația autorilor pentru alegerea de a modela procesul pe baza rețelelor
neuronale este capacitatea acestora de a aproxima sistemele neliniare pentru întreaga zonă de
operare a acestora.
În proiect se presupune că informaţiile privitoare la dinamica procesului neliniar sunt accesibile
numai prin ieşirea acestuia şi se consideră că procesul are o singură intrare şi o singură ieşire. Un model
neuronal de tip model neliniar autoregresiv cu mărimi de intrare exogene (NNARX) este descris de
ecuaţia:
y N (k + 1) = f [ y(k ), y(k − n + 1), u (k − d ), , u (k − d − m + 1)]
unde f (.) este o funcţie neliniară de argumentele sale. Intrări în acest model neuronal sunt valorile
trecute ale intrării exogene în proces, u (k − d ), u (k − d − 1), , u (k − d − m) , şi respectiv regresorii
ieşirii modelului, y(k ), y(k − 1), , y(k − n + 1) ; d este timpul mort estimat iar m şi n reprezintă ordinul
modelului procesului.
Modelul neuronal al procesului, reprezentat în Fig. 5.4, a fost obţinut ajustând, pe baza unui
algoritm de antrenare, ponderile şi deplasările reţelei neuronale multistrat (Multilayer Perceptron –
MLP) astfel încât să fie minimizat în sens statistic, pentru un anumit număr de eşantioane
achiziţionate din proces, semnalul de eroare:
e( k ) = y * ( k ) − y N ( k )
u(k − d )
u(k − d − 1)
u(k )
d *D D D D u(k − d − m + 1)
fN (.)
y (k + 1)
m
y (k )
D D D y (k − n + 1)
n
Figura 5.4 Reţea neuronală extern recurentă; model de tip NNARX [9]
ale ieşirii viitoare a procesului ci vor fi folosite valori ale ieşirii reţelei. Aceasta poate conduce la
instabilitate în cazul unor regimuri din zona de operare a reţelei şi poate fi dificil de determinat dacă
predictorul neuronal este stabil sau nu. În această situaţie ieşirea predicționată peste orizontul de
predicţie va fi puternic influenţată de apariţia şi propagarea erorilor de predicţie datorate unui model
inadecvat.
Mai departe rețeaua neuronală a fost folosită pentru implementarea unui simulator și inclusă
într-o structură de reglare de forma celei prezentate mai jos în Fig. 5.5:
Problema care s-a dorit a fi rezolvată în acest proiect a fost cea referitoare la acordarea
corectă a parametrilor regulatoarelor PID. Astfel s-a pornit de la ideea că, în majoritatea aplicațiilor
industriale, peste 90%, se utilizează regulatoare PI, PID. Mai mult, statisticile arată că 30% din
regulatoare operează în mod manual şi doar 20% din buclele de reglare au fost acordate folosind o
metodă teoretică de determinare a parametrilor. De cele mai multe ori, parametrii regulatoarelor
sunt fixaţi pentru anumite puncte nominale de funcţionare, pentru care problema reglării în
conformitate cu restricţiile şi performanţele impuse este rezolvată. Dar, procesele industriale sunt
complexe, neliniare, multivariabile, cu o comportare dinamică ce se modifică în timp datorită
schimbărilor punctelor de operare şi din aceste motive, utilizarea regulatoarelor PID cu parametrii
constanţi asigură performanţe slabe de reglare. Înlocuirea regulatoarelor clasice PID cu regulatoare
moderne bazate pe strategii avansate de control (regulatoare predictive, regulatoare neurale sau
neuro-fuzzy etc.) ar necesita costuri suplimentare. Astfel, alternativa abordată în lucrare constă în
acordarea parametrilor regulatoarelor în funcţie de condiţiile de funcţionare ale procesului, utilizând
tehnici de auto-tuning sau self-tuning pe baza rețelelor neuronale.
În final tunerul neuro-predictiv, proiectat şi testat inițial în timp real pe o machetă de
laborator (PROCON), a fost testat apoi prin simulare cu ajutorul modelului neural al sistemului de
46
reglare al nivelului în tambur. Modelul neuronal obţinut a fost introdus într-o structură de simulare
care permite adaptarea on-line a parametrilor de acord ai regulatorului PI.
Rezultatele obţinute sunt prezentate în Fig. 5.6. Acestea evidenţiază viabilitatea metodei de
acordare on-line a parametrilor regulatorului, în raport cu structura curentă. Fig. 5.6 (a) ilustrează
răspunsul sistemului de reglare curent de la CET, cu structură într-un punct şi regulator cu
parametrii ficşi. Fig. 5.6 (b) ilustrează răspunsul obţinut prin simulare în jurul aceluiaşi punct de
operare, fiind evidenţiată reducerea oscilaţiilor în variabilei reglate, nivel.
30
comanda
20 iesire nivel
(a) 10
0
-10
0 100 200 300 400 500
0.5
referinta
iesire nivel
(b) 0
-0.5
0 100 200 300 400 500
25
comanda
(c)
24.6
0 100 200 300 400 500
1
q0
q1
(d) 0
-1
0 100 200 300 400 500
Timp [sec]
După cum se poate constata literatura este bogată în lucrări ce prezintă metode de
implementare a rețelelor neuronale pentru identificarea, modelarea și estimarea unor procese, iar
exemplele pot continua.
47
Capitolul 6. Concluzii
Cercetările atât în domeniul reţelelor neuronale sunt în plină expansiune şi preocupă un
număr însemnat de oameni de ştiinţă din domenii variate. Acest lucru se datorează potenţialului
deosebit al acestora şi al aplicabilităţii lor într-un spectru deosebit de larg de activităţii (după cum se
poate deduce din titlurile menționate în lucrare și domeniile foarte diverse în care rețelele neuronale
au fost utilizate).
În procesul de proiectare a unei rețele neuronale, principala problemă care se pune este de a
determina structura ei, adică numărul de straturi și numărul de neuroni pe fiecare strat, astfel încât
să fie atins scopul dorit. Am arătat în capitolul 2, că în literatura de specialitate se consideră că orice
funcție liniară sau neliniară, mono sau multivariabilă poate fi modelată prin intermediul unei rețele
neuronale cu două nivele ascunse. Nu întotdeauna însă sunt neapărat necesare două nivele ascunse.
Numărul optim de neuroni în stratul ascuns, numărul de epoci de antrenare, sau valoarea a
erorii medii pătratice nu pot fi prezise cu exactitate înainte de o evaluare a peformanțelor rețelei în
mai multe seturi de experimente. Optimul acestor valori poate fi determinat numai experimental și
depinde de tipul problemei și structura rețelei neuronale.
Alte probleme legate de implementarea rețelelor sunt legate de resursele de calcul necesare.
La alegerea arhitecturii trebuie făcut un compromis între performanțele rețelei și volumul de
memorie și timpul de calcul necesare.
Totuși, în ciuda unelor dificultăți întâlnite la implementarea rețelelor neuronale, avantajele
pe care le oferă le recomandă drept soluții viabile, cu performanțe deosebite în identificarea,
modelarea și conducerea sistemelor. Mai jos sunt amintite încă o dată aceste avantaje:
- Capacitatea de a aproxima comportamentele neliniare ale sistemelor, deci de a
modela sisteme neliniare. În acest sens, reţelele neuronale pot fi antrenate respectând tehnici de
optimizare, fără a fi necesară implementarea unor algoritmi deosebit de complecşi pentru a obţine
rezultate satisfăcătoare;
- Capacitatea de adaptare şi învăţare permit utilizarea în controlul unor procese
complexe şi care prezintă incertitudini. Reţelele neuronale învaţă utilizând date din trecutul
procesului studiat, iar după ce sunt antrenate au capacitatea de generalizare în cazul apariţiei de
semnale ce nu apar în setul de învăţare. Mai mult, au proprietatea de adaptare on-line, ce are imediat
aplicabilitate în controlul adaptiv;
- Posibilitatea de implementare paralelă a reţelelor neuronale conduc la un grad
ridicat de toleranţă la erori;
48
- Reţelele neuronale pot procesa mai multe intrări şi ieşiri. Deci sunt imediat
aplicabile sistemelor multivariabile, caz în care implementarea unor algoritmi clasici este deosebit
de dificilă şi de complexă;
- Implementările hardware ale reţelelor neuronale, cum ar fi de exemplu prin
intermediul circuitelor integrate pe scară largă (VLSI), permit utilizarea reţelelor neuronale în
cadrul aplicaţiilor de timp real.
După cum apare în capitolul precedent aplicațiile din domeniul ingineriei sunt deosebit de
variate și cu rezultate deosebite.
În cadrul doctoratului se vor dezvolta algoritmi de control neuro-predictiv pentru controlul
unui UAV. Prin dezvoltarea unor algoritmi de control adaptiv pentru conducerea proceselor
utilizând reţele neuronale se încearcă întrunirea avantajelor acestora pentru a putea rezolva câteva
dintre problemele pe care le ridică procesele neliniare ce prezintă incertitudini de modelare, şi
variaţii în dinamica procesului şi a perturbaţiilor. Astfel, acest referat încearcă să stabilească bazele
teoretice, de asemenea să scoată în evidență avantajele, dezavantajele și problemele legate de
implementarea rețelelor neuronale. De asemenea, în capitolul 4 sunt amintite câteva lucrări și
aplicații în care sunt folosite cu succes rețele neuronale pentru controlul unor procese.
49
Bibliografie
[1] V. Toponuţ, C.D. Căleanu, Reţele Neuronale - Arhitecturi şi algoritmi, Editura Politehnica,
Timişoara, 2002.
[2] D. Gâlea, F. Leon, Inteligenţa artificială, Universitatea Tehnică Gh. Asachi Iaşi, Facultatea
de Automatică şi Calculatoare.
[3] H. Demuth, M. Beale, M. Hagan, Neural Network Toolbox 6 User's Guide, 2007.
[4] Honoriu Vălean, Reţele Neuronale - Aplicaţii în Controlul Sistemelor, Referat de doctorat,
1996.
[5] B. Mureşan, ş.a., Reţele Neuronale în Identificarea şi Modelarea Sistemelor, în Ştiinţă şi
Inginerie, Vol 15, Editura AGIR, Bucureşti, 2009, pp. 667-672.
[6] I. Naşcu, Control adaptiv, Editura Mediamira, Cluj-Napoca, 2002.
[7] J.A. Rossiter, Model-based predictive control: a practical approach , Sheffield, 2005;
[8] E. Petre, D. Selişteanu, D. Şendrescu, C. Ionete, Nonlinear and Neural Networks Based
Adaptive Control for a Wastewater Treatment Bioprocess, în Knowledge-Based Intelligent
Information and Engineering Systems, ISBN978-3-540-85564-4, 2008, pp. 273-280.
[9] C. Lazăr, S. Carari, Drăguna Vrabie, T. Ganciu, O. Păstrăvanu, Letiţia Mirea, Alina
Barabulă, M. Kloetzer, D. Ivana, Raport de Cercetare : Acordarea neuro-predictivă a
algoritmilor de conducere, Grant: Cod CNCSIS A258, 2004.
[10] A. Meghlaoui, R.T. Bui, J. Thibault, L. Tikasz, R. Santerre, Predictive Control of
Aluminium Electrolytic Cells Using Neural Networks, Metallurgical and Materials Transactions
B, Volume 29B, 1998.
[11] Tingliang Hu, Jihong Zhu, Chunhua Hu, Zengqi Sun, Neural Networks Robust Adaptive
Control for a Class of MIMO Uncertain Nonlinear Systems, LNCS 3498, pp. 60-68, Springer-
Verlag Berlin Heidelberg 2005.
[12] R. Findeisen, F. Allgower, An Introduction to Nonlinear Model Predictive Control, Institute
for Systems Theory in Engineering, University of Stuttgart, Germany.
[13] Alexander I. Galushkin, Neural Networks Theory, ISBN 978-3-540-48124-9, Springer-
Verlag Berlin Heidelberg 2007.
[14] Diana Robescu, S. Lanyi, A. Verestoy, Dan Robescu, Modelarea şi simularea proceselor de
epurare, Editura Tehnică, Bucureşti, 2004.
[15] F. Nejjari, A. Benhammou, B. Dahhou and G. Roux, Non-linear multivariable adaptive
control of an activated sludge wastewater treatment process, Int. J. Adapt. Control Signal
Process., Vol. 13, pp.347-365, 1999.
50
[16] Nørgaard, Neural Network Based System Identification Toolbox, Tech. Report. 00-E-891,
Department of Automation, Technical University of Denmark, 2000.
[17] S. Caraman, M. Sbarciog, M. Barbu, Predictive Control of a Wastewater Treatment
Process, International Journal of Computers, Communications & Control, Vol. II, No. 2, pp.
132-142, 2007.
[18] E. Petre, D. Selişteanu, D. Şendrescu, C. Ionete, Neural network-based adaptive control for
a class of nonlinear bioprocesses, Neural Comput & Applic, Springer – Verlag London
Limited, 2009.
[19] B. Hassibi, D.G. Stork, Second Order Derivatives for Network Pruning: Optimal Brain
Surgeon, NIPS 5, Eds. S.J. Hanson et al., 164, San Mateo, Morgan Kaufmann, 1993.
[20] M.W. Pedersen, L.K. Hansen, J. Larsen, Pruning With Generalization Based Weight
Saliences, Proc. of the Neural Information Processing Systems 8, 1995.
[21] Nikola K. Kasabov, Foundations of Neural Networks, Fuzzy Systems, and Knowledge
Engineering, A Bradford Book, The MIT Press, Cambridge, Massachusetts Institute of
Technology, London, England, 1996.
[22] T. Cover, Elements of Information Theory, New York, Wiley, 1991.
[23] Pineda F.J., Recurrent backpropagation and dynamical approach to adaptive neural
computation, Neural Computation, vol I, 1989.
[24] J.L. McClelland, D.E. Rumelhart, G.E. Hinton, Parallel Distributed Processing, Exploration
in the Microstructures of Cognition, Vol I., 1989.
[25] J.F. MacGregor, T.E. Marlin, J.V. Kresta, Chemical Process Control CPCIV,
CACHE/AIChE, New York, NY, Y. Arkum and W.H. Ray, eds., 1991, pp. 665-72.
[26] C. R. Marcano-Gamero, Plant identification and Control using a Neural Network Controller
Based on Reference Model, Univesidad Nacional Experimentl Politecnica ”Antonio Jose de
Sucre”, Puerto Ordaz, Venezuela, 2007.
[27] S. Haykin, Neural Network a Coprehensive Foundation, Prentice Hall, 1999.
[28] R. Shadmehr, D. Angell, P. B. Chou, G. S. Oehrlein, R. S. Jaffe, Principal Component
Analysis of Optical Emission Spectroscopy and Mass Spectrometry: Application to Reactive Ion
Etch Process Parameter Estimation Using Neural Networks, The Electrochemical Society, Vol.
139, March 1992.
[29] S.C. Raisinghani, A.K. Ghosh, Parameter Estimation of an Aeroelastic Aircraft Using
Neural Networks, Sadhana, Vol. 25, April 2000, pp. 181-191.
[30] R. T. Anderson, G. Chowdhary, E. N. Johnson, Comparison of RBF and SHL Neural
Network Based Adaptive Control, Journal of Intellugent Robot Systems, pp. 183-189, 2009.