Sunteți pe pagina 1din 54

Investeşte în oameni !

FONDUL SOCIAL EUROPEAN


Programul Operaţional Sectorial pentru Dezvoltarea Resurselor Umane 2007 – 2013
Axa prioritară.1 „Educatie si formare profesionala initiala de calitate in sprijinul dezvoltarii si
cresterii economice”
Domeniul major de intervenţie.1.5 „Programe doctorale si postdoctorale in sprijinul cercetarii”
Proiect: Proiect de dezvoltare a studiilor de doctorat in tehnologii avansate – “PRODOC”
Cod contract: POSDRU/6/1.5/S/5

ŞCOALA DOCTORALĂ

RAPORT DE CERCETARE
ŞTIINŢIFICĂ

STUDIU PRIVIND STADIUL ACTUAL ÎN


UTILIZAREA REŢELELOR NEURONALE
PENTRU IDENTIFICAREA ŞI MODELAREA
SISTEMELOR
Domeniul de doctorat: Ingineria Sistemelor

Conducător Ştiinţific, Doctorand,


Prof. Univ. Dr. Ing. Ioan Naşcu Drd. Ing. Bogdan MUREŞAN

Anul 2009
ŞCOALA DOCTORALĂ

RAPORT DE CERCETARE
ŞTIINŢIFICĂ

STUDIU PRIVIND STADIUL ACTUAL ÎN


UTILIZAREA REŢELELOR NEURONALE
PENTRU IDENTIFICAREA ŞI MODELAREA
SISTEMELOR
Domeniul de doctorat: Ingineria Sistemelor

Conducător Ştiinţific, Doctorand,


Prof. Univ. Dr. Ing. Ioan Naşcu Drd. Ing. Bogdan Mureşan

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

Problema inteligenţei artificiale, deci implicit şi a reţelelor neuronale ca o componentă a


acesteia, preocupă un număr mare de cercetători din cele mai diverse domenii ale ştiinţei. Reţelele
neuronale reprezintă o încercare de a modela, de a simula – momentan, într-un mod destul de
rudimentar încă – structura şi funcţiile creierului specifice organismelor vii. La fel ca şi în natură,
funcţia reţelei este determinată de legăturile dintre elemente.
Interesul deosebit pentru acest domeniu este motivat de recunoaşterea faptului că, creierul
uman este deosebit de complex şi eficient în acţiunile sale, însă modul în care acesta procesează
datele este complet diferit faţă de cel al calculatoarelor numerice convenţionale. Astfel, spre
deosebire de maşinile clasice von Neumann, unde există o unitate de procesare care execută în mod
serial instrucţiunile stocate în memorie, adică numai o instrucţiune la un moment dat, reţelele
neuronale utilizează în mod masiv paralelismul [2].
Ca şi o definiţie generală, se poate spune că reţelele neuronale reprezintă un sistem de
procesare a semnalelor, compus dintr-un număr mare de elemente interconectate, numite neuroni
artificiali – echivalenţi neuronilor biologici.
O altă definiție este dată de Simon Haykin care consideră că o reţea neuronală este un
procesor masiv paralel, distribuit, care are o tendinţă naturală de a înmagazina cunoştinţe
experimentale şi de a le face disponibile pentru utilizare [27].
Ea se aseamănă cu creierul în două privinţe: cunoştinţele sunt căpătate de reţea printr-un
proces de învăţare; cunoştinţele sunt depozitate nu în unităţile de procesare (neuroni), ci în
conexiunile interneuronale, cunoscute drept ponderi sinaptice.
În general, o reţea neuronală se comportă ca un sistem adaptiv, care îşi modifică (adaptează)
structura în funcţie de variaţiile interne ale sistemului sau variaţiile externe ale mediului. Adaptarea
la condiţiile mediului constă în modificarea ponderilor asociate conexiunilor dintre neuroni şi
eventual a structurii reţelei neuronale.
Reţelele neuronale nu dispun de unităţi de procesare puternice, dimpotrivă, acestea sunt
caracterizate printr-o simplitate extremă, însă interacţiunile lor per ansamblu produc rezultate
complexe datorită numărului mare de conexiuni.
Deja o serie de aplicaţii, cum ar fi procesarea de imagini, recunoaşterea de forme sau
caractere, sinteza semnalului vocal au devenit clasice în domeniul inteligenţei artificiale. Datorită
dezvoltării de noi arhitecturi şi algoritmi de învăţare reţelele neuronale îşi găsesc tot mai mult
2

aplicabilitatea şi sunt utilizate cu success în identificarea, modelarea şi controlul sistemelor


dinamice. Dacă ne referim la controlul sistemelor trebuie menţionate următoarele proprietăţi ale
reţelelor neuronale :
- 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;
- 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.

1.2 Sistemul nervos biologic

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;

Fig. 1.2.1 Structura celulei nervoase (neuron)

- Dendritele (numite aşa datorită asemănării cu un copac, în limba greacă ”dendron”


= copac) sunt intrările neuronului, prelungiri ale citoplasmei, fibre scurte şi bogat ramificate.
Dentritele recepţionează impulsuri nervoase şi le transmite corpului neuronului. Un neuron poate
avea până la 104 dendrite;
- Interacțiunea dintre neuroni se realizează prin sinapse. Sinapsele (vezi Fig. 1.2.1)
reprezintă joncțiuni specilizate prin care neuronii comunică cu alți neuroni , dar și cu celule non-
neuronale cum ar fi mușchii sau glandele. Tipul cel mai răspandit de sinapsă este sinapsa chimică,
ce operează astfel: un proces presinaptic eliberează o substanţă transmiţătoare, care difuzează peste
joncţiunea sinaptică dintre neuroni şi apoi acţionează asupra unui proces postsinaptic. Altfel spus, o
sinapsă converteşte un semnal electric presinaptic într-un semnal chimic (ioni de sodiu şi potasiu) şi
apoi din nou într-un semnal electric postsinaptic.
Sinapsele dintre doi neuroni se pot realiza în trei feluri: între butonii terminali ai axonului
unui neuron și dendritele unui alt neuron (sinapse axo-dendritice), între butonii terminali ai
axonului unui neuron și corpul unui alt neuron (sinapse axo-somatice) și între butonii terminali ai
axonului unui neuron și porțiunea incipientă a axonului unui alt neuron (sinapse axo-axomatice).
Stocarea informației în neuroni se presupune că este efectuată prin intermediul conexiunilor
sinaptice, mai exact prin tiparele pe care acestea le formează și prin ponderea pe care o are fiecare
legătură în parte.
Corpul celulei primește semnale de la alți neuroni prin intermediul conexiunilor sinaptice
ajustabile. Din punct de vedere funcțional sinapsele pot fi excitatorii sau inhibatorii. Ambele efecte
4

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.

1.3 Neuronul artificial

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

Figura 1.3.1 Modelul McCullock Pitts

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

și este numită intrarea netă.


Ieşirea se calculează după formula:

 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

Figura 1.3.2 Funcţii de activare tipice

- funcția liniară: f(s) = s ;

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 ) ;

Analizând comparativ modelul neuronului biologic și modelul neuronului artificial se pot


face câteva observații:
- din punct de vedere al implementării, deocamdată este practic imposibil ca modelul
artificial al neuronului să copieze exact comportamentul și structura neuronului biologic. Cu toate
acestea nu trebuie minimizată sau ignorată importanța rețelelor neuronale artificiale, și este posibil
ca pe viitor, cu ajutorul lor să se ajungă la o cunoaştere mai aprofundată a fenomenelor ce au loc in
creierul uman;
- rețelele neuronale sunt proiectate pentru rezolvarea unor probleme specifice, deci
prin urmare arhitectura și structura rețelei va depinde de natura problemei. Datorită modului de
prelucrare a informației, rețelele neuronale pot fi folosite pentru a rezolva probleme complexe care
sunt dificil de abordat prin metode clasice;
7

- un neuron biologic are la ieșire o secvență de impulsuri și nu o anumită valoare cum


este cazul celui artificial. Reprezentarea ratei de activare printr-un singur număr ignoră informația
care ar putea fi conținută de exemplu în faza impulsurilor;
- unele celule nervoase biologice efectuează o însumare neliniară a intrărilor. De
asemenea ieșirile neuronilor nu se modifică în mod sincron și nu toți au același tip de întârziere;
- cantitatatea de substanță transmițătoare (mediator chimic) eliberată la nivelul
sinapsei poate varia într-un mod imprevizibil. Acest fenomen este aproximat grosier prin
intermediul funcției de activare;
- în final, ceea ce recomandă reţelele neuronale artificiale este raportul favorabil
performanţă-complexitate, aflat într-o continuă creştere şi care este superior sistemelor de
inteligenţă artificială implementate prin alte tehnologii.
8

Capitolul 2. Arhitecturi de reţele neuronale

2.1 Reţele neuronale feedforward

Î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).

Figura 2.1.1 Rețea neuronală feedforward total conectată

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.

Figura 2.1.2 Rețea neuronală feedforward parțial conectată

2.1.1 Perceptronul simplu

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ă.

Figura 2.1.1.1 Arhitectura unui perceptron simplu

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:

w i (n + 1) = w i (n) + η ⋅ e(n) ⋅ x i (n)

unde w i (n) este eșantionul prelevat din w i la momentul t = n și

e(n) = d(n) − y(n)

y = ϕ(v) = sign(v)

N
v = ∑ wixi − θ
i =1

η - rata de învățare, 0 < η < 1

2.1.2 Modelul Adaline

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.

Figura 2.1.2.1 Structura rețelei neuronale Adaline

Neuronul prezentat în figură are N intrări x i , o ieșire analogică v și una numerică y,


obținută din cea analogică prin cuantizarea între valorile de prag -1 și 1, depinzând de polaritatea
ieșirii v. Intrarea d este utilizată ca referință în procesul de învățare, fiind activă numai în timpul
acestuia. Semnalul de ieșire v este comparat cu semnalul referință d, diferenţa e dintre ele, numit
semnal de eroare, fiind folosit ca și semnal de învățare. În general, modificarea ponderilor intrărilor
neuronului se face în sensul minimizării erorii pătratice.
Există mai multe metode de antrenare, dar cel mai utilizat algoritm este algoritmul Widrow
– Hoff sau regula delta. Este poate mai cunoscut sub denumirea de: algoritmul celor mai mici
pătrate (LMS – Least Mean Square) și este destinat antrenării unei rețele neuronale formată
dintr-un singur neuron liniar. Ceea ce îl diferențiază de algoritmul de învățare Rosenblatt (pentru
antrenarea perceptronului simplu) este faptul că regula delta utilizează ca semnal de antrenare o
eroare liniară (nu este cuantizată), fiind deci un algoritm liniar, iar cel de-al doilea o eroare
cuantificată, filtrată de un bloc neliniar, fiind deci un algorim neliniar . Pentru cuantificarea erorii la
nivelul neuronului de ieşire se defineşte o funcție de cost, uneori denumită şi criteriu de
performanță. O posibilă formă pentru aceasta este:

1 
J = M  ∑ e 2 k (n)
2 k 

cu M[.] reprezentând media în sens static.


12

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

Pentru că proprietățile statistice nu sunt de regulă cunoscute, se poate folosi în loc de J,


suma erorilor pătratice instantanee:

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:

e k (n) = d k (n) − y k (n) = d k (n) − ϕ(v k (n))

în care ϕ reprezintă funcția de activare şi v k potențialul de activare. Rezultă astfel:

Δw (n) = η ⋅ ∑ e k (n) ⋅ ϕ ' (v k (n)) ⋅ x(n)


k

Astfel, pentru cazul în care avem k=1 şi ϕ = sgn, se obține:

Δw (n) = η ⋅ e(n) ⋅ x(n) = η ⋅ (d(n) − y(n)) ⋅ x(n)

2.1.3 Perceptronul multistrat

Pentru a rezolva limitările legate de liniar separabilitate a fost dezvoltat perceptronul


multistrat.
Perceptronul multistrat (Rețea neuronală MLP - Multilayer Perceptron) reprezintă o
generalizare a perceptronului simplu prezentat în capitolul anterior. Este o rețea neuronală de tip
feedforward (cu propagare înainte a semnalului) compusă din (Fig. 2.1.2.1):
- un strat de intrare;
- unul sau mai multe straturi ascunse;
- strat de ieşire.
În cazul antrenării unei rețele neuronale o epocă reprezintă prezentarea tuturor exemplelor
din setul de antrenare. De obicei antrenarea reţelei presupune mai multe epoci de antrenare. Există
două moduri de a adapta ponderile pentru o reţea MLP:
13

- antrenare incrementală (online sau pattern by pattern), în care ponderile sunt


actualizate după fiecare set de intrare aplicat reţelei (în acest caz, poate conta ordinea în care sunt
prezentaţi vectorii de test);
- antrenare periodică (batch training), în care ponderile sunt actualizate numai după
ce toţi vectorii de test sunt aplicaţi reţelei. Astfel la sfârşitul unei epoci de antrenare ponderile se vor
modifica o singură dată.

Figura 2.1.3.1 Perceptron cu două straturi

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 Reţele neuronale recurente

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

Figura 2.2.1.1 Rețea neuronală recurentă

Î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

2.2.2 Reţele neuronale de tip Hopfield

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).

Figura 2.2.1.1Arhitectura unei rețele de tip Hopefield cu 3 neuroni

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

Iar potențialul intern al unui neuron ”j” este:


N
v j = ∑ w ji s i − θ j
i =1

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ă.

În funcționarea rețelelor neuronale de tip Hopfield se pot distinge două etape:


16

1) Etapa de memorare. Dacă se dorește stocarea a ”p” vectori ”N” dimensionali


{ξ μ | μ = 1,2,..., p} atunci conform postulatului lui Hebb se poate scrie:

1 N
w ji = ∑ ξ μ, jξ μ,i
N μ =1

Iar sub formă matriceală are forma:

1 N p
W= ∑ ξμξμ − I
T

N μ =1 N

în care W reprezintă matricea ponderilor sinaptice ale rețelei și are dimensiunea N × N .


Din ecuația de calcul pentru ponderile rețelei neuronale se pot constata următoarele:
ponderile rețelei se calculează într-o singură epocă, spre deosebire de rețelele neuronale MLP sau
RBF; ieşirea fiecărui neuron se constituie în intrare pentru toți ceilalți neuroni ai rețelei; nu există
autoexcitație (“self-feedback”), adică w ii = 0, ∀I ; matricea ponderilor rețelei este simetrică

w ij = w ji (sau W = WT) adică influența exercitată de neuronul “i” asupra neuronului “j” este egală

cu influența exercitată de neuronul “j” asupra neuronului “i”.


b) Etapa de utilizare (regăsire). În această etapă, un anumit tipar x este impus ca și vector
de stare. De regulă el reprezintă o versiune incompletă sau afectată de zgomot al unui tipar
memorat. Procesul de regăsire se desfăşoară în mod dinamic: fiecare neuron al rețelei, în mod
aleator ales, estimează propriul potențial de activare şi îşi stabileşte starea finală. Acest proces
asincron (serial) de modificare a stărilor se va opri în momentul în care vectorul de stare nu se va
mai modifica. Aceasta înseamnă că rețeaua Hopfield a produs un vector de stare y invariant în timp,
ale cărui elemente satisfac condiția de stabilitate:

 N 
y j = sgn  ∑ w ji y i − θ i , j = 1,2,..., N
 i=1 

sau în forma matriceală:

y = sgn (W ⋅ y − θ )

Vectorul de stare y este denumit stare stabilă a spațiului fazelor sistemului.


Mai departe, unei rețele neuronale de tip Hopfield i se poate asocia așa numita funcție de
energie:

1 N N
E=− ∑∑ w ijsis j
2 i=1 j=1
17

Variația energiei ∆E ca urmare a variației stării neuronului “j” e dată de expresia:


N
ΔE = −Δs j ∑ w ijs i
i =1
i≠ j

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

2.3 Reţele neuronale bazate pe funcţii radiale

În continuare este prezentată o abordare diferită a modului de implementare a rețelelor


neuronale. De această dată procesul este văzut ca o problemă de aproximare a unei curbe într-un
spațiu multidimensional. Astfel, în locul determinării minimului gradientului funcţiei de eroare,
antrenarea reţelei neuronale poate fi concepută astfel încât, fiind dată mulţimea datelor de test, să se
determine hipersuprafaţa care realizează cea mai bună interpolare a ei într-un spaţiu
multidimensional. În acest caz, stratul neuronilor ascunşi are rolul de a produce o mulţime de funcţii
(funcţii radiale) pentru reprezentarea vectorilor de intrare.
Reţelele neuronale bazate pe funcţii radiale (RBF – Radial Basis Function) se bucură în
ultimul timp de o atenţie tot mai mare, datorită avantajelor pe care le prezintă. Acest mod de
implementare a rețelelor neuronale a fost propus și utilizat de mai mulți autori: Moody and Darken
1989, Renals and Rohwer 1989 și alții. În Fig. 2.3.1 este prezentată o arhitectură generală.
Comparativ cu rețelele neuronale de tip perceptron multistrat, rețelele neuronale bazate pe
funcții radiale pot necesita mai mulți neuroni dar antrenarea acestora necesită mai puțin timp decât
în cazul perceptronului. Explicația acestui fapt este următoarea: ieşirile neuronilor sigmoidali ai
stratului ascuns sunt semnificative pentru regiuni largi ale spațiului de intrare în timp ce neuronii
18

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.

Figura 2.3.1 Arhitectura unei rețele neuronale RBF

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.

Figura 2.3.2 Arhitectura unui neuron RBF

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.

Figura 2.3.3 Formă tipică pentru funcția de activare radial

Problema interpolării, în sensul strict al său, poate fi enunţată astfel:


{ }
Fiind dată mulţimea de puncte x k ∈ R p|k = 1,2,...,N şi o mulţime de numere reale

{d k ∈ R|k = 1,2,...,N}, să se determine funcţia F : R p → R, care să satisfacă condiţia de


interpolare:

F(x k ) = d k , ∀k = 1, 2,  , N

Tehnica funcţiilor radiale constă în alegerea funcţiei F de forma:

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

cunoscuţi (şabloanele) x k ∈ R p | k = 1,2,..., N se numesc centrii funcţiei radiale, iar wk sunt


ponderi, iniţial necunoscute. Astfel, prin găsirea ponderilor wk, funcţia F este complet determinată.
Pentru aceasta, prin combinarea celor două ecuații de mai sus se obţine:

∑ 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:

 ϕ11 ϕ12  ϕ1N   w 1   d1 


ϕ  ϕ 2N   w 2   d 2 
 21 ϕ 22 =
        
    
ϕ N1 ϕ N2  ϕ NN   w N  d N 

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σ 

Problema numărului de nivele și respectiv a numărului de neuroni pentru fiecare nivel în


parte pe care trebuie să-i conțină rețeaua pentru a oferi o cât mai exactă aproximație a unei funcții
neliniare, rămâne încă o problemă deschisă. O serie de autori (Hecht şi Nielsen, Lippman, 1987)
enunță faptul că pentru o bună aproximare a unei funcții neliniare de N variabile, trebuie utilizată o
rețea neuronală cu două nivele ascunse, având N(2N+1) neuroni în primul nivel ascuns și 2N+1
neuroni în cel de-al doilea.Aceste afirmații pot fi contrazise însă de unele aplicații (Poggio 1989,
Kurkova 1991.)
Rețelele neuronale recurente, care includ și elemente de tip integrator sau unități de
întârziere precum și bucle de reacție în interiorul lor, spre deosebire de rețelele feedforward,
prezintă o dinamică proprie. Proprietățile dinamice ale unei astfel de rețele sunt descries de ecuații
diferențiale neliniare.
21

O rețea neuronală nu este caracterizată numai de arhitectura sa, ci și de tipul neuronilor ce o


compun, algoritmul utilizat pentru antrenarea ei precum și modul ei de operare.
Rețelele neuronale pot opera fie ca și sisteme deterministe, fie ca sisteme stochastice. În
cazul celor deterministe toate semnalele folosite precum și parametrii rețelei au un caracter
determinist. În cazul rețelelor stochastice, semnalele vehiculate precum și parametrii (ponderile de
intrare) se schimbă aleator. Există patru modalităși de a construi rețele neuronale stochastice:
- prin utilizarea unui semnal de intrare de tip zgomot, parametrii rețelei având un
caracter determinist;
- prin modificarea aleatoare a ponderilor de intrare a neuronilor;
- prin utilizarea unor funcții de activare neliniare stochastice;
- prin combinare tehnicilor menționate mai sus.
Problema realizării unui model artificial cât mai exact al sistemului nervos biologic rămâne
o problemă deschisă. La ora actuală există un real interes în a realiza o rețea neuronală artificială cu
un comportament cât mai apropiat de cel al creierului uman.
22

Capitolul 3. Algoritmi de învăţare a reţelelor neuronale

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.

3.1 Învăţare supervizată

În cazul metode de învăţare cu supervizor, se utilizează un semnal de învăţare, care


specifică reţelei semnalul care se aşteaptă să se obţină la ieşire pentru un set de intrare dat.
Ponderile neuronilor sunt ajustate astfel încât să se minimizeze diferenţa dintre semnalul de învăţare
(semnalul dorit) şi semnalul de ieşire obţinut, pentru fiecare set de semnale de intrare.

3.1.1 Algoritmul Back-Propagation

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:

e j (n) = d j (n) − y j (n)

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.

Într-o manieră asemănătoare algoritmului Widrow-Hoff (sau LMS), algoritmul back-


propagation aplică o corecție Δw ji (n) ponderii sinaptice w ji (n) , care este proporțională cu derivata

parțială a erorii, după cum apare în continuare:

∂ε(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:

∂ε(n) ∂ε(n) ∂e j (n) ∂y j (n) ∂v j (n)


= ⋅ ⋅ ⋅
∂w ji (n) ∂e j (n) ∂y j (n) ∂v j (n) ∂w ji (n)
24

Derivata parțială ∂ε(n)/∂w ji (n) reprezintă un factor de senzitivitate, determinând direcția de


căutare în spațiul ponderilor pentru ponderea sinaptică w ji .
Diferențiind ecuațiile de mai sus avem :

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)

Definind un gradient local δ j (n) descris astfel:

∂ε(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))

De unde putem scrie:

Δw ji (n) = η ⋅ δ(n) ⋅ y 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

neuron j aflat în stratul ascuns:

∂ε(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

Astfel obținem ecuația :

∂ε(n) ∂e (n)
= ∑ ek k
∂y j (n) k ∂y j (n)

care poate fi scrisă mai departe:

∂ε(n) ∂e (n) ∂v k (n)


= ∑ ek k
∂y j (n) k ∂v k (n) ∂y j (n)

Observăm că:

e k (n) = d k (n) - y k (n) = d k (n) - ϕ(v k (n))


∂e k (n)
⇒ = −ϕ' (v k (n))
∂v k (n)

De asemenea putem nota că potențialul local pentru neuronul k este:


26

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)

Am ajuns acum la derivata parțială care ne interesează:

∂ε(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:

δ k (n) = ϕ j ' (v j (n))∑ δ k (n)w kj (n)


k

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

associate acestor conexiuni.


Acum însumăm relațiile pe care le-am derivat pentru algoritmul back-propagation și
obținem:

 
Δw ji (n) = ηϕ j ' (v k (n))∑ δ k (n)w kj (n) y i (n)
 k 

3.1.2 Algoritmi rapizi de antrenament pentru reţele neuronale feedforward

Algoritmul back-propagation standard prezintă o serie de dezavantaje. Printre acestea se pot


enumera convergența lentă şi dependența acesteia de parametrii liberi ai rețelei (ponderile,
27

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ă.

Metoda lui Newton

Funcția de cost ε (w ) poate fi aproximată conform dezvoltării în serie Taylor în jurul


punctului w 0 :

ε (w ) = ε 0 + (w − w 0 )∇ε (w 0 ) + (w − w 0 )T ∇ 2 ε(w 0 )(w − w 0 )


1
2

Matricea cu derivate parțiale de ordinul doi :

∂ 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

Metoda Levenberg- Marquardt

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

b) pozitiv definită, dacă x Ax > 0, ∀x ≠ 0, x ∈ R ;


T n

−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.

Metoda de tip cvasi-Newton

Se circumscriu în cadrul metodelor de minimizare care folosesc doar informație provenită


din derivata de ordinul I, combinată cu aşa numita căutare după o linie („line search”):

w = w0 + η ⋅ d ,

în care η este reprezintă pasul iar d direcția în care se face căutarea.


În cazul în care direcția de căutare se alege ca fiind negativul gradientului, d = −∇ε (w 0 ) ,

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):

w (k +1) = w (k) + η (k) ⋅ d k

d k = w (k +1) − w (k) = −H k ∇ε (w (k) )

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
( )]

Metode bazate pe gradientul conjugat

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:

d(n + 1) = −∇ε (n + 1) + β(n )d(w )

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ă:

d(n )∇ε (w 0 + ηd(n + 1)) = 0

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 )

în care cu g(n) s-a notat vectorul gradient ∇ε(n) şi:

η(n) = arg min{ε (w (n) ) + ηd(n)}


η

Din punct de vedere al rapidității convergenței şi al complexității algoritmului, metoda


gradientului conjugat se situează între metoda gradientului descendent şi cea de tip cvasi-Newton.

3.2 Învăţare nesupervizată

În cadrul învăţării nesupervizate nu există un ”învățător” sau critic extern care să


supervizeze procesul de învățare. Mai degrabă, este furnizată o măsură independentă legată de
calitatea reprezentării pe care rețeaua trebuie sa o învețe (pentru a rezolva o anumită problemă), iar
parametrii liberi ai rețelei sunt optimizați în funcție de această măsură. Mai simplu spus, singurele
informații disponibile pentru antrenarea rețelei rezultă din setul de semnale aplicate la intrarea
rețelei. Odată ce rețeaua a fost ”tunată” în funcție de regularitățile statistice a datelor de intrare, își
31

dezvoltă abilitatea de a-și forma reprezentări interne ale datelor de intrare și, deci de a creea
automat noi clase.

3.2.1 Algoritmul hebbian generalizat

În continuare se va prezenta succint algoritmul hebbian generalizat (GHA, Generalized


Hebbian Algorithm) propus de Sanger [24] în 1989 precum şi o generalizare a acestuia denumit
algoritm hebbian generalizat pentru domeniul complex (CGHA, Complex Domain Generalized
Hebbian Algorithm ) prezentată de Y. Ma şi Y. Zhang [25] în 1997.
Prin intermediul algoritmului hebbian generalizat vectorii proprii ai matricii de corelație a
datelor de intrare pot fi deduşi iterativ cu ajutorul unei rețele neuronale cu un singur strat liniar (Fig.
3.2.1.1).

Figura 3.2.1.1 Rețeaua pentru implementarea algoritmului hebbian generalizat

Presupunem vectorul de intrare de forma :

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

Principala problemă a algoritmului hebbian generalizat este găsirea ponderilor W j (j = 1,

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 

în care n reprezintă indexul iterațiilor şi

y j (n ) = W jT (n )x (n )

Sanger arată că W j converge spre componenta de ordinul j a vectorului propriu al R xx .


Ma şi Zhang [25] observă că algoritmul este restrâns doar la domeniul real şi propun
algoritmul CGHA capabil să prelucreze date din domeniul complex (de exemplu, datele obținute de
la o matrice de senzori sunt transformate prin eşantionare în cuadratură în mărimi complexe). În
acest caz modificarea ponderilor se va face după o regulă asemănătoare cu cea de la GHA:

 
[ ]
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 )

unde X reprezintă hermitianul transpus.

3.3 Învăţarea prin întărire (Reinforcement Learning)

Î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

b) Metode statistice şi de programare dinamică. Se bazează pe estimarea utilității


acțiunilor.Nu este clar deocamdată care din abordările sus-menționate este cea mai bună în anumite
circumstanțe date.
În concluzie, RL înseamnă învățarea transformării situații în acțiuni astfel încât să fie
maximizată o recompensă numerică. Sistemului supus învățării nu i se precizează ce acțiuni trebuie
efectuate ci el singur descopere comportamentul ce aduce recompensa maximă prin încercarea
diverselor acțiuni posibile.
O diferență majoră dintre învțarea prin întărire şi învățarea de tip supervizat o reprezintă
faptul că primului tip îi este necesară o fază explicită de explorare a mediului în scopul
achiziționării de cunoştinţe. Cel de al doilea tip de învățare, cel supervizat, presupune acumularea
cunoştințelor pe baza unor exemple furnizate de către un expert/supervizor extern şi, deşi reprezintă
unul din tipurile cele mai importante de instruire, nu este adecvată învățării din interacțiuni cu
mediul. În probleme interactive este deseori imposibil şi nepractic să se obține exemple de
comportament adecvat şi reprezentativ pentru toate situațiile posibile în care un agent ar putea să se
găsească. Este deci necesară capacitatea agentului de a învăţa din propria experienţă.
Elementele de bază ale RL sunt agentul supus învățării şi mediul înconjurător acestuia.
Agentul reprezintă un sistem care încearcă să îndeplinească un scop într-un mediu complex şi
dinamic. În modelul standard al RL agentul (program, robot etc.) este conectat la mediul
înconjurător prin intermediul percepției şi al acțiunilor (Fig.3.3.1).

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”).

Înainte de a aborda algoritmii RL ce conduc la un comportament optim, trebuie definită


această din urmă noțiune. În literatură [1] sunt menționate de regulă trei modele: modelul
orizontului finit, modelul orizontului infinit, modelul recompensei medii.
34

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

Capitolul 4. Reţele neuronale în identificarea şi modelarea sistemelor

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

astfel încât să se minimizeze eroarea e = y p − y m . Cea mai importantă caracteristică a reţelelor

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

Figura 4.1 Structura de antrenare a unei reţele neuronale

Problema identificării poate fi împărțită în trei subprobleme, după cum urmează:


36

- construirea modelului (alegerea tipului și arhitectura rețelei);


- antrenarea rețelei;
- verificarea corectitudinii modelului (validarea modelului cu date de intrare diferite
de cele folosite pentru antrenare).
Structura de antrenare a rețelei neuronale uzual folosită în acest caz este prezentată în Fig.
4.1. Modelul neuronal este plasat în paralel cu sistemul fizic real, recepționând ca semnal de eroare.
Datorită caracteristicilor lor, rețelele neuronale vor putea modela atât sisteme liniare, cât și sisteme
liniare.
În cazul sistemelor liniare cel mai simplu mod de identificare este cel dat de regresia liniară,
adică

y(t) = w T φ(t) + e(t)

unde y(t) reprezintă variabila măsurabilă de ieșire, φ = [φ1 , φ 2 ,..., φ n ] vectorul variabilelor de
T

regresie (cunoscute), w = [w 1 , w 2 ,..., w n ] ∈ R n vectorul parametrilor ce urmează a fi estimați, iar


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

y(i) = w T φ(i) + e(i), i = 1,2,...m

De fapt problema revine la minimizarea funcției de eroare:


m
E(w ) = ∑ σ[ri (w )]
i =1

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
β

Minimizarea funcției de eroare prin intermediul unei tehnici de scădere a gradientului,


conduce la ecuația diferențială neliniară:

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:

y(k) = F[y(k − 1),  , y(k − n a ), u (k − 1),  , u (k − n b )];


^
-

y(k) = F1 [u (k − 1),  , u (k − n b )] + F2 [y(k − 1),  , y(k − n a )];


^
-
nb
y(k) = ∑ b ju (k − j) + F2 [y(k − 1),  , y(k − n a )];
^
-
j=1
na
y(k) = F1 [u (k − 1),  , u (k − n b )] + ∑ a i u (k − i);
^
-
i =1
Î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
38

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.

Figura 4.2 Arhitectura generală a unei rețele neuronale


pentru identificarea unui proces

Mai departe identificarea și modelarea pe baza rețelelor neuronale poate fi folosită în


reglarea adaptivă. În general sunt folosite două tipuri de scheme în conducerea adaptivă : în buclă
deschisă (feedforward sau cu programarea parametrilor) şi în buclă închisă. Se porneşte de la o
buclă de reglare obişnuită, cu reacţie negativă, cu un regulator cu parametrii ajustabili. Cheia
39

problemei este de a găsi o cale convenabilă de ajustare a parametrilor regulatorului, ca răspuns la


modificările dinamicii procesului, dar şi la variaţiile perturbaţiilor din proces.
Dacă schimbările acestea sunt predictibile pe baza măsurătorilor se poate folosi un regulator
cu parametrii programabili şi autoacordarea pentru determinarea valorilor parametrilor în diverse
puncte de funcţionare. Există cazuri însă, când variaţia dinamicii procesului nu este predictibilă.
Acest lucru se poate întâmpla în cazul modificărilor unor parametrii tehnologici nemăsurabili, a
uzurii, neliniarităţi necunoscute etc. Variaţiile de acest gen nu pot fi compensate decât prin folosirea
adaptării, regulatorul adaptiv fiind iniţializat prin pre-acordare sau acordare inţială şi este nevoie de
o schemă de reglare în buclă închisă. De asemena este necesară o buclă de reglare suplimentară ce
acţionează asupra parametrilor regulatorului în prezenţa variaţiilor parametrice ale procesului.
Sistemele adaptive în buclă închisă pot fi clasificate în sisteme duale şi nonduale, iar mai
departe cele nonduale se împart în două categorii mari, şi anume în sisteme adaptive cu model de
referinţă şi în sisteme adaptive cu identificarea modelului.
Există mai multe căi de utilizare a tehnicilor de control adaptiv, dar datorită faptului că
teoria în domeniu nu este completă, apar deseori confuzii în terminologie. O catalogare a acestor
tehnici ar fi următoarea :
- Acordarea automată (auto-acordarea) reprezintă o metodă prin care regulatorul
este acordat automat la solicitarea utilizatorului;
- Reglare adaptivă cu programarea parametrilor care presupune prestabilirea unei
dependenţe între parametrii regulatorului şi anumite modificări măsurabile în condiţiile de
funcţionare ale procesului;
- Reglare adaptivă care implică utilizarea unui regulator ai cărui parametrii se
modifică continuu, pentru a se adapta schimbărilor din dinamica procesului şi perturbaţiilor (Fig.
4.3).

Estimator

Parametrii
Regulatorului
Referinţă
Ieşire
Regulator Proces
Comanda

Fig. 4.3 Structura de reglare adaptivă


40

Capitolul 5. Stadiul actual în utilizarea reţelelor neuronale pentru


identificarea și controlul proceselor

Marele avantaj pe care îl prezintă rețelele neuronale în domeniul identificării și modelării


sistemelor este acela că pot aproxima comportarea oricărui proces neliniar pe toată dinamica
procesului (și nu doar în puncte de funcționare). În literatura de specialitate există un număr
considerabil de lucrări care dovedesc preocupările a numeroși cercetători în acest domeniu.
De asemenea în mediul software Matlab exisă un ”toolbox” dedicat (Neural Network
Toolbox) care facilitează realizarea unor aplicații pentru modelarea și controlul proceselor [3], [26].
Unii autori au dezvoltat ”toolbox-uri” proprii pentru utilizarea în mediul Matlab, utile în cazul unor
probleme specifice (ca de exemplu în [16]). O altă modalitate de implementare software a rețelelor
neuronale este în limbajul C/C++. Este mai dificil de implementat însă timpul de calcul este mai
redus.
În cele ce urmează vor fi prezentate câteva aplicații apărute în unele lucrări de specialitate
(din domenii diverse ale inginerie), în care sunt folosite rețele neuronale pentru identificarea și
modelarea sau estimarea parametrilor unor procese.
În [28] este descrisă o tehnică bazată pe rețele neuronale feedforward multistrat, antrenate
cu algorimul back-propagation, folosită în procesul de gravare cu ioni reactivi. Autorii utilizează
estimatori liniari și neliniari pentru a modela efectul pe care îl au parametrii procesului (cum ar fi
presiunea camerei de gravare, puterea RF, amestecul de gaz) asupra măsurătorile efectuate in situ
prin emisia optică spectroscopică și analiza gazului rezidual. Rezultatele obținute au fost
satisfăcătoare, având performanțe superioare în comparație cu modelele liniare. Tehnica utilizată
surprinde modificările din camera de contaminare și pare a fi o unealtă promițătoare pentru
monitorizarea în timp real și controlul procesului de gravare cu ioni activi.
O altă problemă în care și-au gasit utilitatea rețelele neuronale este în controlul procesului
de electroliză a celulelor de aluminiu [10]. În acest caz rețelele neuronale sunt antrenate inițial cu
date obținute din sumulări realizate pe calculator, înainte de a fi învățate on-line pentru a prezice
comportamentul variabilelor de decizie din cadrul acestui proces. Mai apoi, rețelele antrenate sunt
folosite în controlul procesului, care are ca scop principal eliminarea efectului de anod, un
eveniment destabilizator ce apare în timpul electrolizei.
S-a folosit o rețea neuronală feedforward cu nouă noduri în stratul de intrare (pentru ca toate
datele de intrare necesare în identificare să poată fi aplicate rețelei pentru antrenarea ei) și nouă
neuroni ascunși. Adaptarea on-line a ponderilor sinaptice s-a realizat cu algoritmul back-
propagation folosind ca parametrii rata de învățare adaptivă și momentum.
41

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.

Figura 5.1 Predicția în timp real 15 minute în viitor, a rezistenței unei


celule folosind date de la o celulă reală [10]
42

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.2 Reprezentare schematică a procesului de apurare al apelor uzate [17]

În [17] a fost folosită o rețea neuronală feedforward pentru a modela comportamentul


procesului din Fig. 5.2. Rețeaua conține 15 neuroni în primul strat, 7 neuroni în stratul ascuns și 4
neuroni în strtul de ieșire. Pentru a surprinde corect toate interconexiunile dintre variabile, au fost
furnizate intrării rețelei până valori întârziate de până la patru ori perioada de timp. Datele utilizate
pentru antrenarea rețelei au fost obținute prin simularea unui model descris de ecuații diferențiale.
Un alt set de date diferit, obținut tot prin simulare, a fost folosit pentru validarea datelor. Rezultatele
obținute apar în Fig 5.3. Performanțele rețelei au fost bune, ținând însă cont de faptul cont că
rețeaua este folosită numai pentru predicția unui parametru din proces (oxigenul dizolvat).
Ca și în cazul precedent rețeaua neuronală este folosită pentru implementarea unui algoritm
de conducere predictiv.
43

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 )

unde y* (k ) reprezintă răspunsul dorit al reţelei.

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]

În lucrare se evidențiază necesitatea caracterului recurent al reţelei neuronale utilizate,


prezentată în Fig. 5.4, unele intrări în reţea corespunzând unor valori trecute ale ieşirii acesteia.
Altfel spus, pentru a putea fi folosit în procesul de predicţie pe un pas, modelul obţinut trebuie să fie
de tip paralel deoarece în realizarea predicţiei nu vor putea fi furnizate la intrarea reţelei valori reale
45

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:

rp(k+i|k) + ep(k+i|k) up(k+i|k) yp (k+i|k) i =1...N

Regulator Model neuronal


- P̂ Simulator
neuro-predictiv
q

Bloc de Funcţie de cost


optimizare Restricţii
Bloc de adaptare qopt

r(k) e(k) u(k) y(k) Buclă de control de


+
Regulator Proces timp real
- (T)

Figura 5.5. Structură neuro-predictivă de adaptare a parametrilor regulatorului [9]

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]

Fig. 5.6 Rezultate obţinute prin simulare [9]


(a) Răspunsul sistemului real; (b) Răspunsul obţinut prin simulare; (c) Comanda obţinută prin
simulare (d) Parametrii de acord

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.