CATEGORII DOCUMENTE |
Alimentatie nutritie | Asistenta sociala | Cosmetica frumusete | Logopedie | Retete culinare | Sport |
RETELE NEURONALE ARTIFICIALE
1. Consideratii generale
Retelele Neuronale Artificiale (RNA) sunt sisteme dinamice de prelucrare a informatiei, formate dintr-un numar mare de elemente elementare de prelucrare, numite neuroni, puternic interconectate.
Desi preocuparile privind studiul retelelor neuronale dateaza din anii 1940, interesul pentru acestea cunoaste o adevarata explozie incepand cu anii 1980.
Dintre cele mai importante caracteristici ale RNA se mentioneaza:
Prelucrarea paralela care permite construirea unor arhitecturi deosebit de performante capabile sa ofere raspunsuri rapide in timp real;
Invatarea din exemple a fenomenului pentru care se antreneaza. Procesul de invatare poate fi supervizat sau nesupervizat;
Permite modelarea unor procese complexe ale caror legi de functionare sunt fie prea complicate, fie nu pot fi algoritmizate. Prin urmare, procesul analizat nu trebuie descris prin reguli clare.
Capacitatea de a asocia datele de intrare cu setul sau seturile de date de antrenare cu care "rezoneaza" cel mai bine. Aceasta caracteristica asigura un comportament bun chiar in conditiile unor seturi de date de intrare incomplete sau partial gresite.
Memorarea distribuita a informatiei ceea ce asigura o functionarea relativ corecta si in situatia in care anumiti neuroni se "defecteaza". Fiecare neuron participa la formarea iesirilor pentru toate seturile de vectori de intrare (antrenare). Deteriorarea unui anumit neuron inrautateste doar intr-o mica masura functionarea globala, datorita aportului distribuit, dat de toti ceilalti neuroni valizi. Desigur numarul de neuroni trebuie sa fie suficient de mare. Acest mecanism al memorarii distribuite a informatiei este cel care explica si functionarea corecta de durata a creierului uman, in care celulele nervoase ce mor nu afecteaza functia de gandire in general si totodata nu afecteaza nici notiunile memorate.
Pornind de la o multime reprezentativa de exemple de instruire, o RNA construieste singura algoritmul pentru rezolvarea unei probleme. Astfel, intr-o prima etapa, numita etapa de antrenare, ea extrage informatia prezentata in multimea de exemple, numita multime de antrenare, si o memoreaza in ponderile conexiunilor dintre neuroni. In faza de lucru reteaua va folosi informatia achizitionata in etapa de antrenare pentru a trata situatii de aceeasi natura cu cele continute in multimea de antrenare.
Capacitatea RNA de a rezolva probleme practice complexe utilizand o multime (uneori restransa) de exemple, confera un potential de aplicabilitate extrem de larg.
Spectrul aplicatiilor cuprinde:
sisteme de recunoastere a caracterelor utilizate in trierea corespondentei;
sisteme de recunoastere a semnaturilor folosite in sistemul bancar;
sistemele de recunoastere a vorbirii utilizate in traficul aerian;
piloti automati
sisteme in timp real pentru controlul unor procese complexe
Calculul neuronal reprezinta actualmente un domeniu de cercetare fascinant si o provocare intelectuala si tehnologica majora. RNA au modificat imaginea noastra asupra proceselor de calcul si aspectelor algoritmice ale inteligentei artificiale si au furnizat psihologiei un model al proceselor mentale.
Analogia dintre structura sistemului nervos si retelele neuronale artificiale
RNA preiau caracteristicile de baza ale structurii sistemului nervos uman alcatuit, in medie, din 1010.1011 celule nervoase (fig. 1), numite neuroni, strans interconectate, care sunt dispuse pe mai multe straturi sau niveluri.
Fig. 1. Structura celulei nervoase.
Celula nervoasa este constituita din:
mai multe dendrite ramificate prin care receptioneaza diferite informatii de la alti neuroni. Acestea constituie intrarile in celula nervoasa.
corpul celulei sau nucleul care realizeaza o prelucrare a stimulilor generati de informatiile primite si elaboreaza raspunsul;
un axon - o fibra unica care transmite raspunsul elaborat catre alte celule;
sinapse - ramificatii ale axonului care realizeaza legaturi cu alti neuroni (axonul unei celule umane realizeaza in medie 103 legaturi sinaptice cu alti neuroni).
Impulsurile prezente la intrarea neuronului il pot excita cea ce face ca acesta sa genereze un impuls ce se transmite mai departe spre neuronii cu care este conectat. Legaturile dintre neuroni sunt ponderate, iar fiecare neuron aplica o transformare asupra impulsului de intrare inainte de a-l transmite mai departe.
3. Modele formale ale neuronului artificial
3.1. Neuronul formal
Neuronul formal are o structura asemanatoare neuronului uman. El este o unitate elementara de procesare care realizeaza o operatie simpla pe un set de marimi de intrare, reprezentate prin vectorul , pentru a produce o marime de iesire .
Intrarile sunt alcatuite din semnalele venite de la alti neuroni sau din mediul inconjurator si sunt reprezentate, in general, prin numere reale. Fiecare intrare are asociata o valoare reala , numita pondere sinaptica, care are rolul de a pondera semnalul de intrare. Daca atunci ponderea este excitatoare, iar daca atunci ponderea este inhibitoare. Vectorul ponderilor reprezinta "memoria" proprie a neuronului.
Fig. Structura neuronului formal.
Corpul unui neuron oarecare j este constituit dintr-un sumator, un prag de activare si o functie de activare .
Starea neuronului se actualizeaza periodic dupa urmatorul mecanism:
se determina potentialul neuronal , denumit si starea interna sau activarea totala, ca fiind suma ponderata a intrarilor , adica
(1)
se compara potentialul neuronal cu pragul de activare al neuronului , adica se calculeaza:
(2)
asupra expresiei astfel obtinuta se aplica o functie de activare rezultand valoarea iesirii neuronului respectiv:
(3)
Daca se considera , atunci .
In general, pragul de activare este nenul si poate fi incorporat in vectorul ponderilor considerand o intrare suplimentara careia i se asociaza ponderea .
Functiile de activare pot fi liniare sau neliniare (fig. 3).
|
||||
Identitate
|
Treapta
|
Rampa |
Sigmoid |
|
|
|
Fig. 3. Tipuri de functii de transfer.
Functia de activare liniara este de forma
(4,a)
unde coeficientul b joaca rolul pragului . Pentru si se obtine functia de activare identitate (fig. 3, a), iar pentru si rezulta functia de activare identitate plus prag.
Functia de activare treapta (fig. 3, b)
(4,b)
Functia de activare rampa (fig. 3, c), constituie o combinatie intre functiile liniara si treapta.
(4,c)
In principiu, functia rampa stabileste limitele maxima si minima pentru iesirea neuronului, asigurand o variatie liniara intre acestea pe intervalul .
Functia de activare sigmoid corespunde unor forme netezite ale functiei rampa. Functiile sigmoid, denumite astfel dupa forma in S a reprezentarii lor grafice, sunt functii continue, derivabile si monotone pe intreg intervalul de definitie. Aceste proprietati sunt esentiale daca se doreste aplicarea unor algoritmi de invatare performanti si eficienti. Cele mai raspandite functii sigmoid sunt:
sigmoidul logistic (fig. 3, d), numit si sigmoid unipolar, care ia valori in intervalul (0, 1);
(4,d)
sigmoidul tangent hiperbolic (fig. 3, e), numit si sigmoid bipolar, care ia valori in intervalul (-1, 1).
(4,e)
In concluzie, functionarea unui neuron j, vazut ca element de procesare in intervale discrete de timp, este descrisa de relatiile:
(5)
unde: este vectorul de intrare;
- pragul corespunzator neuronului;
- functia de activare (treapta, sigmoid etc.).
Modelul McCulloch-Pitts (MCP), reprezinta primul model formal al neuronului si a fost propus de catre W. McCulloch si S. Pitts in anul 1943. Atat intrarile, cat si iesirea sunt de tip binar, iar functia de transfer este functia treapta
Prin urmare, functionarea MCP este descrisa de relatiile:
(6)
Obs. Fiind vorba de un singur neuron s a renuntat la indicele j care-l desemneaza.
Acest model are meritul istoric ca a pus in evidenta o structura simpla, la care relatia functionala intrare-iesire este codificata sub forma unor valori numerice corespunzand ponderilor. La acea data ramanea insa deschisa problema stabilirii unui algoritm de antrenare pentru determinarea valorilor acestor ponderi.
3. Neuronul clasificator sau perceptronul
Pornind de la modelul MCP, psihologul Rosenblatt a introdus, in anul 1958, notiunea de perceptron sau neuron clasificator. Perceptronul este asemanator neuronului MCP (fig. 4) si a fost dezvoltat din dorinta de a modela functia de perceptie vizuala a retinei.
Fig. 4. Modelul perceptronului.
Ecuatiile de functionare ale perceptronului sunt ecuatiile (6) ale modelului MCP. Deosebirea provine din faptul ca de aceasta data intrarile sunt valori reale si nu valori binare de tipul 1 sau 0, functia de activare fiind tot de tipul treapta.
Prin urmare evolutia perceptronului este descrisa de:
(7)
in care:
este vectorul de intrare
- vectorul ponderilor
Ecuatia
(8)
este ecuatia unui hiperplan care imparte spatiul vectorilor de intrare in doua regiuni de decizie. Astfel, vectorii aflati in partea pozitiva caracterizati de
(9)
apartin clasei A, iar vectorii situati in partea negativa caracterizati de
(10)
apartin clasei B.
Pentru a dezvolta modelul matematic si algoritmul de instruire sau antrenare, se efectueaza o normalizare de semn a vectorilor de intrare notand:
(11)
In aceste conditii, hiperplanul corespunzator ecuatiei (8) separa clasele A si B daca si numai daca exista inegalitatea:
(12)
Definitie Daca pentru doua clase de obiecte reprezentate prin vectori din spatiul exista un hiperplan de separare, atunci cele doua clase se numesc liniar separabile.
De exemplu, pentru n=2 ecuatia
defineste o dreapta in planul care-l imparte in doua regiuni de decizia A si B (fig. 5).
Fig. 5. Separarea planului in zone de decizie.
Problema care se pune consta in gasirea unui algoritm de invatare care sa determine vectorul ponderilor astfel incat frontiera sa ajunga sa separe corect elementele. Cu alte cuvinte, iesirea neuronului sa fie y =1 sau y =0, dupa cum intrarea apartine clasei A sau clasei B
Raspunsul la aceasta problema a fost dat, intr-o prima etapa, de catre Rosenblatt. Algoritmul propus de acesta, cunoscut sub denumirea de algoritmul standard de antrenare a perceptronuli, modifica valorile ponderilor ori de cate ori la intrarea retelei este prezentata o configuratie (forma sau pattern) incorect clasificata.
Procedura de instruire este o metoda iterativa de invatare supervizata care are ca obiectiv minimizarea distantelor punctelor eronat clasificate fata de hiperplanul de separare.
Se considera ca multimea de antrenare, numita si multimea de exemple, este constituita din m perechi de forma :
in care dk este raspunsul corect, adica:
Notam cu multimea vectorilor (punctelor) din setul de antrenare clasificati eronat de catre vectorul pondere W curent, adica:
(13)
Daca , atunci eroarea de clasificare este data de distanta punctului corespunzator vectorului , la hiperplanul de decizie H definit de ecuatia:
(14)
adica
(15)
Observatii:
Se reaminteste faptul ca ecuatia unui hiperplan oarecare H, care trece prin punctul si este perpendicular pe vectorul U este:
(16)
In ipoteza ca , distanta de la punctul corespunzator unui vector oarecare la hiperplanul H este data de:
(17)
Comparand relatia (14) cu (16) rezulta ca hiperplanul de separare H trece prin origine si este perpendicular pe vectorul ponderilor. Prin urmare, in ipoteza ca , eroarea de clasificare, definita de relatia (15), este:
(18)
In stabilirea formei finale a relatiei (18) s-a tinut seama de faptul ca , adica
In concluzie, scopul algoritmului de antrenare este de a determina vectorul ponderilor W pentru care suma:
(19)
este minima.
Deoarece , rezulta ca:
iar pentru determinarea minimului se foloseste o metoda de gradient. Astfel, pornind de la o estimare initiala a vectorului ponderilor se genereaza un sir de vectori folosind relatia de recurenta:
(20)
in care
(21)
sunt corectiile la pasul t.
In relatia (21), specifica metodelor de gradient, este o valoare pozitiva, numita rata sau viteza de invatare, care reprezinta marimea deplasarii fata de in directia data de . In cazul unei probleme de minimizare, directia de deplasare este directia de coborare, adica directia contrara gradientului. Prin urmare:
(22)
Avand in vedere ca si tinand cont de regula de derivare a produsului scalar , rezulta ca:
(23)
in care este multimea vectorilor/punctelor clasificate eronat de catre vectorul curent al ponderilor .
In concluzie, corectiile ponderilor sunt direct proportionale cu vectorii clasificati eronat.
Pentru a simplifica algoritmul, la fiecare pas se considera toate exemplele din multimea de antrenare si se modifica ponderile doar in cazul exemplelor clasificate eronat conform urmatoarelor regului:
(i) daca pentru un exemplu perceptronul se activeaza cand ar trebui sa ramana inactiv, adica daca si , atunci se reduc ponderile cu o valoare proportionala cu ;
(ii) daca pentru un exemplu perceptronul nu se activeaza desi ar trebui sa o faca, adica daca si , atunci se cresc ponderile cu o valoare proportionala cu .
Sintetizand cele doua reguli rezulta urmatoarea expresie generala pentru corectia ponderilor:
(24)
iar relatia (20) devine
(25)
adica:
(26)
respectiv
(27)
Observatii:
Daca , adica exemplul a fost clasificat corect, atunci conform relatiei (24) ponderile nu se modifica.
In teoria dezvoltata si, in conformitate cu relatia (27) pragul se modifica adaugand sau scazand pe la valoarea anterioara. In unele variante ale algoritmului corectia pragului se face cu o cantitate proportionala cu valoarea lui, in sensul stabilit de regulile anterioare, adica:
(28)
Viteza de invatare . O valoare prea mare a lui poate conduce la omiterea unui vector de ponderi corect, in timp ce o valoare prea mica poate mari excesiv timpul de calcul.
Ciclul de operatii care vizeaza parcurgerea tuturor exemplelor in vederea modificarii ponderilor poarta numele de epoca.
In cazul in care multimea de antrenare este constituita dintr-un numar de exemple liniar separabile, algoritmul de antrenare al perceptronului este convergent intr-un anumit numar de epoci, adica va identifica un vector al ponderilor care clasifica corect toate exemplele.
Algoritmul de antrenare al perceptronului |
Pasul 1: Initializeaza ponderile () si valoarea pragului de activare la momentul cu valori aleatoare mici, de obicei in intervalul [-0,1; 0,1]. Pasul 2: Selecteaza valoarea vitezei de invatare Pasul 3: Testeaza convergenta. DACAtoate exemplele au fost clasificate corect, adica , respectiv Contor_Eroare=0 ATUNCIStop ALTFELSeteaza Contor_Eroare=0 si trece la pasul 4 Pasul 4: Pentru fiecare exemplu repeta 4.1. Calculeaza iesirea reala generata de perceptron
4. Compara cu DACA
ATUNCIIncrementeaza Contor_Eroare si modifica ponderile, respectiv pragul conform relatiilor:
Pasul 5: Repeta de la pasul 3 |
Exemplu
Se considera perceptronul cu trei intrari si setul de 5 exemple prezentate in figura 6. Pentru acest perceptron se aleg aleator valorile initiale ale ponderilor: ;; , valoarea de prag si valoarea vitezei de invatare .
Fig. 6. Exemplu de perceptron si multimea de antrenare.
Pentru exemplul 1 iesirea perceptronului se determina astfel:
Deoarece iesirea furnizata de perceptron , este diferita de cea dorita , exemplul este clasificat gresit, iar ponderile vor fi modificate conform relatiilor:
Pentru exemplul 2 iesirea perceptronului este:
Deoarece aceasta este diferita de cea dorita , exemplul este clasificat gresit si, prin urmare, ponderile vor fi modificate rezultand:
In mod similar, pentru exemplul 3 iesirea perceptronului este:
Deoarece aceasta este diferita iesirea dorita , exemplul este clasificat gresit, iar ponderile vor fi modificate astfel:
Pentru exemplul 4, iesirea perceptronului este:
Deoarece aceasta este identica cu cea dorita , exemplul este clasificat corect, iar ponderile nu se modifica. Prin urmare:
Pentru exemplul 5,iesirea perceptronului rezulta:
Intrucat aceasta este identica cu cea dorita , exemplul este clasificat corect, iar ponderile nu se modifica. Prin urmare:
In acest stadiu s-a incheiat o epoca dar, pentru ca nu toate exemplele au fost clasificate corect, se reia procesul de modificare al ponderilor, adica se efectueaza un nou ciclu. Procesul se repeta pana cand toate exemple sunt clasificate corect.
Limitele perceptronului
In numeroase probleme concrete de clasificare intervin clase de obiecte care nu sunt liniar separabile. Prin urmare, utilizarea perceptronului ca atare este sever limitata. O analiza a limitarilor perceptronului a fost efectuata de cercetatorii Minsky si Papert in 1969. Ei furnizeaza celebrul exemplu care evidentiaza limitarile perceptronului si anume problema invatarii tabelei de adevar a functiei logice XOR (tabelul 1).
Tabelul 1. Functia logica XOR
Considerand un perceptron cu doua intrari (fig. 7) si functia de iesire standard
(28)
algoritmul de antrenare nu va putea determina valorile , si T astfel incat iesirea perceptronului sa furnizeze valorile functiei XOR.
Fig. 7. Structura perceptronului cu doua intrari
Intr-adevar, reprezentand in plan cele patru puncte corespunzatoare celor patru vectori de intrare posibili ai perceptronului se observa ca nu exista nici o dreapta avand ecuatia:
(29)
care sa separe cele doua clase de obiecte (cele a caror iesire este 1, respectiv cele care au iesirea 0).
Pentru a putea sa rezolve problema, reteaua neuronala artificiala ar trebui sa realizeze separarea planului in trei regiuni de decizie (fig. 8).
Fig. 8. Separarea planului in regiuni de decizie multipla
O astfel de partitionare poate fi realizata folosind o retea cu mai multe straturi denumita perceptronul multistrat sau multi layer perceptron - MLP in terminologia englezeasca.
4. Structuri ale RNA
4.1. Structura generala si clasificari ale RNA
Cele prezentate in paragraful precedent evidentiaza faptul ca limitele perceptronului nu sunt datorate algoritmului de instruire, ci structurii foarte simple a acestuia, care asigura doar impartirea spatiului intrarilor in doua semiplane. Prin urmare, utilizarea RNA in rezolvarea unor probleme complexe necesita cresterea complexitatii topologiei acestora.
In general RNA sunt formate din neuroni (structuri elementare de procesare) legati prin conexiuni sinaptice (caile de transmitere a informatiei intre neuroni caracterizate de anumite ponderi organizati pe straturi succesive. In figura 9 este prezentata structura tipica a unei RNA cu patru straturi.
Fig. 9. Arhitectura tipica a unei RNA.
Primul strat, numit stratul de intrare, este format din neuroni liniari care nu realizeaza nici un proces de calcul. Rolul lui este acela de a dirija componentele ale vectorului de intrare X catre neuronii de calcul din primul strat. Ultimul strat de prelucrare este stratul de iesire si poate fi constituit din unul sau mai multi neuroni. In general, topologia unei retele neuronale poate cuprinde unul sau mai mute straturi intermediare, numite si straturi ascunse.
Legaturile dintre straturile RNA se realizeaza prin conexiuni sinaptice ponderate. In cazul structurii prezentata in fig. 9 fiecare neuron dintr-un strat este legat cu toti neuronii din stratul urmator si nu exista legaturi intre straturile neconsecutive O astfel de structura se numeste complet conectata si corespunde clasei de RNA numita MLP (Multi Layer Perceptron), adica perceptronul multistrat.
Structura RNA este descrisa complet de matricea ponderilor conexiunilor dintre doua straturi consecutive , ale carei elemente indica influenta pe care iesirea neuronului i din stratul inferior o are asupra activarii neuronului j din stratul urmator. Ca si in cazul perceptronului clasic, ponderile pozitive au caracter excitatoriu, ponderile negative au caracter inhibitoriu, iar ponderile nule indica absenta conexiunii intre cei doi neuroni. Evident, cu cat valoarea absoluta a ponderii este mai mare, cu atat influenta neuronului i asupra neuronului j este mai pregnanta.
Ansamblul ponderilor constituie memoria RNA, adica parametrii ce caracterizeaza, intr-o maniera absoluta, procesul modelat de reteaua neuronala artificiala. Prin urmare, antrenarea retelei necesita o strategie de ajustare a ponderilor, respectiv un algoritm de antrenare sau invatare in cadrul caruia se prezinta retelei neuronale un numar de exemple formate din perechi (intrare - iesire dorita), ale caror atribute sunt cunoscute si reprezentative pentru procesul modelat. Acestea formeaza multimea de antrenare.
Structura prezentata in figura 9, prezinta urmatoarele proprietati, specifice unei largi categorii de retele neuronale:
(i) fiecare neuron actioneaza independent de ceilalti neuroni din acelasi strat; iesirea unui neuron depinde numai de semnalele ce se aplica pe conexiunile sale sinaptice de intrare;
(ii) activarea fiecarui neuron depinde numai de informatii cu caracter local; informatia ce este prelucrata de neuron provine numai de pe conexiunile adiacente, nefiind necesara cunoasterea starilor neuronilor care nu au legaturi directe cu neuronul considerat;
(iii) numarul mare de conexiuni existente asigura un grad ridicat de rezervare si usureaza reprezentarea distribuita a informatiei.
Primele doua proprietati permit functionarea eficienta a RNA in paralel, iar ultima proprietate le confera o sensibilitate redusa fata de posibilele perturbatii, respectiv calitati de generalizare greu de obtinut cu sistemele clasice de calcul.
Clasificarea retelelor neuronale poate fi facuta pe baza mai multor criterii care tin cont de tipul parametrilor de intrare, modul de invatare, existenta legaturilor de reactie inversa, numarul de straturi etc.
Clasificarea RNA in functie de tipul parametrilor de intrare
In functie de tipul parametrilor de intrare retelele neuronale sunt:
retele cu intrari binare;
retele cu intrari reale; in acest caz, valorile parametrilor de intrare trebuie mapate (scalate) in domeniul [-1, 1].
Clasificarea retelelor neuronale pe baza modului de invatare
Legea de invatare a unei RNA este o relatie care specifica modul in care se modifica toate sau numai o parte din ponderile unui neuron ca raspuns la semnalele de intrare si valorile furnizate de functia de transfer. Aceasta relatie permite retelei sa invete, adica sa se adapteze la exemplele furnizate, organizandu-si informatia privind topologia si ponderile care se modifica in mod dinamic pe parcursul procesului de invatare.
In functie de modul de invatare se disting doua tipuri de retele neuronale: retele neuronale artificiale cu invatare supervizata si retele neuronale artificiale cu invatare nesupervizata.
In cazul instruirii supervizate reteaua primeste atat datele vectorii de intrare dintr-un set sau multime de instruire, cat si datele de iesire corespunzatoare (raspunsuri corecte sau raspunsuri dorite). Dupa fiecare exemplu, reteaua compara propria-i iesire cu raspunsurile corecte, corecteaza diferentele si incearca din nou, procedand in mod iterativ pana cand eroarea raspunsului de iesire ajunge sub nivelul impus. Metoda de antrenare supervizata mai poarta denumirea de invatare neadaptiva.
In cazul instruirii nesupervizate, reteaua dispune de datele de intrare, dar nu mai primeste nici o informatie privind iesirea corecta. In schimb, dupa fiecare incercare i se da o nota, un scor de performanta, care cuantifica corectitudinea rezultatului. Reteaua se organizeaza numai in functie de intrare, deci se autoorganizeaza, grupand setul de vectori de antrenare in zone (clustere) bazate pe un concept de similitudine. Din aceasta cauza, instruirea nesupervizata mai poarta denumirea de autoorganizare sau invatare adaptiva.
Se mentioneaza faptul ca invatarea nesupervizata este calitativ superioara invatarii supervizate.
Pe baza celor doua criterii mentionate - tipul parametrilor de intrare si modul de invatare se poate realiza clasificarea prezentata in figura 10. in care se evidentiaza sase dintre modelele RNA mai des intalnite.
Fig. 10. Clasificarea RNA.
Retelele cu invatare supervizata, cum ar fi reteaua Hopfield si perceptronii sunt utilizate mai ales ca memorii asociative sau ca structuri de clasificare. Retelele cu invatare nesupervizata, cum ar fi hartile cu auto-organizare Kohonen, sunt folosite mai ales pentru formarea configuratiilor de memorii asociative.
Aceasta clasificare este departe de a indica toate modelele neuronale existente, clasificarea facandu-se si pe baza altor criterii.
Clasificarea RNA pe baza legaturilor de reactie inversa
Un al treilea criteriu de clasificare se refera la existenta sau absenta legaturilor de reactie inversa intre neuronii din diversele straturi ale retelei. Astfel, se disting patru tipuri de RNA:
RNA nebuclate (retele feedforward). In asemenea retele informatia circula intr-un singur sens, de la intrare catre iesire. La un moment dat, starea unui neuron depinde numai de starea din acelasi moment a neuronilor de la care primeste semnale (fig. 11, a). RNA nebuclate sunt structuri statice, folosite cu precadere pentru rezolvarea unor probleme de clasificare sau de identificare a proceselor statice. Din aceasta categorie fac parte retelele de tipul perceptron multistrat, a carei arhitectura a fost prezentata anterior.
Fig. 11. Clasificarea retelelor neuronale pe baza existentei/inexistentei reactiei inverse:
a - RNA nebuclate (feedforward); b - RNA buclate (feedback
RNA buclate (retele feedback) sunt acele retele ale caror grafuri de conexiuni contin cicluri; circulatia informatiei are loc de aceasta data in ambele sensuri (intrare-iesire, respectiv iesire-intrare), astfel incat starea neuronilor la un moment dat este determinata de starea curenta si de starea la momentul anterior (fig. 11, b). Prin urmare, RNA buclate au proprietatile unor sisteme dinamice; ele sunt utilizate ca memorii asociative si pentru identificarea sau controlul sistemelor dinamice. Un exemplu de retea buclata il constituie retelele Hopfield.
RNA de tip mixt este o retea ce foloseste atat legaturi feedforward cat si legaturi feedback. O retea hibrida, care foloseste atat legaturi feedforward cat si legaturi feedback este reteaua Hamming .
RNA de tip celular (plasa) constau din neuroni artificiali numiti celule, organizati intr-o plasa bidimensionala, neuroni care comunica direct doar cu alti neuroni aflati in imediata vecinatate a lor. Neuronii neconectati se pot influenta unul pe celalalt indirect din cauza propagarii semnalelor in timpul procesului de antrenare. Un exemplu de astfel de retea este reteaua Kohonen.
Clasificarea RNA pe baza numarului de straturi ascunse
Un alt criteriu de clasificare a RNA are in vedere numarul de neuroni din retea. Din acest punct de vedere se disting:
RNA cu un singur strat. In acest caz stratul unic joaca rol dublu intrare-iesire. Totodata, absenta altor straturi impune ca aceste RNA sa aiba o topologie buclata. In aceasta categorie se inscriu retelele Hopfield, precum si variante ale acestora, care se deosebesc in functie de modul de conectare a neuronilor. Retele cu un singur strat sunt folosite pentru completarea modelelor, filtrarea unor semnale sau rezolvarea unor probleme de optimizare;
RNA cu doua straturi. In acest caz, primul strat este stratul de intrare, iar al doilea cel de iesire, neexistand un strat ascuns. Retelele din aceasta categorie sunt folosite cu precadere ca retele clasificatoare. In functie de topologia lor, se disting RNA feedforward (fig. 12) si RNA hibride feedforward-feedback (fig. 13).
|
|
Fig. 1 RNA cu doua straturi de tip feedforward. |
Fig. 13. RNA cu doua straturi de tip hibrid. |
RNA multistrat. Retelele din aceasta categorie pot avea, in principiu, un numar nelimitat de straturi. Toate straturile, cu exceptia primului si ultimului, sunt straturi ascunse. Structura generala a unei asemenea RNA a fost prezentata in figura 9. Majoritatea RNA multistrat utilizate in diverse aplicatii practice fac parte din categoria retelelor feedforward (nebuclate), iar raspandirea cea mai mare o are perceptronul multistrat. Principalele aplicatii ale acestui tip de retea au in vedere probleme de clasificare precum si de aproximare euristica a unor functii matematice.
4. Perceptronul multistrat MLP
Se considera o retea neuronala artificiala de tip MLP cu un singur strat ascuns (fig. 14) si se fac notatiile:
- numarul neuronilor de pe stratul de intrare;
- numarul neuronilor de pe stratul ascuns;
- numarul neuronilor de pe stratul de iesire;
- matricea ponderilor neuronilor de pe stratul ascuns ale carei elemente sunt ponderile conexiunilor sinaptice dintre neuronul j de pe stratul ascuns si neuronul i de pe stratul de intrare;
- matricea ponderilor neuronilor de pe stratul de iesire ale carei elemente sunt ponderile conexiunilor sinaptice dintre neuronul k de pe stratul de iesire si neuronul j de pe stratul de ascuns;
- numarul de exemple, adica numarul de perechi care alcatuiesc multimea de antrenare;
- iesirea neuronului k de pe stratul de iesire cand la intrare se prezinta exemplul m;
- iesirea neuronului j de pe stratul ascuns cand la intrare se prezinta exemplul m;
Fig. 14. Retea neuronala artificiala cu un singur strat ascuns
4.1. Regula delta generalizata
Perceptronii multistrat cu mai multe iesiri si functii de transfer sigmoidale se mai numesc si retele backpropagation. Denumirea provine de la algoritmul de invatare utilizat de aceste structuri si anume algoritmul backpropagation - BP sau algoritmul de propagare inapoi a erorii, respectiv algoritmul retropropagarii introdus de Rumelhart si membrii grupului "Parallel Distributed Processing" PDP in 1986. Acest algoritm poate depasi limitarile perceptronului enumerate de Minsy si Papert in 1969 si a fost considerat un mare succes care a contribuit la relansarea calculului neuronal in IA.
Algoritmul BP urmareste minimizarea erorii patratice printr-o metoda de gradient. Din acest motiv functiile de activare sau transfer ale neuronilor trebuie sa fie continue si derivabile pe tot domeniul de definitie, cerinte satisfacute de functiile sigmoidale si functia liniara.
La fel ca si in cazul perceptronilor, generarea unei retele MLP cuprinde doua etape:
etapa de invatare in care, pe baza multimii de antrenare, se sintetizeaza ponderile si valorile pragurilor de activare ale neuronilor;
etapa de testare, in care reteaua este utilizata pentru a clasifica multimi de forme necunoscute, dar similare celor din multimea de antrenare.
Algoritmul backpropagation de invatare al retelelor MLP consta in urmatorii doi pasi:
parcurgere directa a retelei, de la intrari spre iesiri, in care se determina iesirile generate de retea pentru exemplele din multimea de antrenare;
parcurgere inapoi a retelei, de la iesiri spre intrari, in care iesirile calculate se compara cu iesirile dorite pentru fiecare exemplu si se determina eroarea care, printr-un proces de propagare inapoi, este utilizata la actualizarea ponderilor.
Legea de antrenare sau regula de modificare a ponderilor poarta denumirea regula delta generalizata si este descrisa de urmatoarele trei propozitii:
(i) Pentru fiecare exemplu din multimea de antrenare corectia unei ponderi oarecare a unui neuron j conectat cu neuronul i din stratul precedent este proportionala cu un termen de eroare asociat neuronului j, adica:
(30)
in care: este rata de invatare;
- iesirea neuronului i din stratul precedent.
(ii) Daca neuronul j se afla in stratul de iesire (fig. 15,a) termenul de eroare este proportional cu diferenta dintre valoarea dorita si cea furnizata de reteaua neuronala si se calculeaza cu relatia:
(31)
in care: este diferenta dintre valoarea dorita si cea furnizata de reteaua neuronala pentru exemplul m;
- derivata functiei de activare a neuronului j in raport cu intrarea neta a acestuia corespunzatoare exemplului m considerat;
(iii) Daca neuronul j se afla in stratul ascuns (fig. 15,b) fiind legat prin conexiunile sinaptice cu neuronii din stratul de iesire, termenul de eroare este proportional cu suma ponderata a termenilor de eroare asociati neuronilor de iesire si se calculeaza cu relatia:
(32)
in care se determina cu relatia precedenta (31) aplicata neuronilor k de pe stratul de iesire.
|
|
a) |
b) |
Fig. 15. Aplicarea regulii delta in functie de pozitia neuronului:
a) neuronul se afla pe stratul de iesire
b) neuronul se afla pe stratul ascuns
Dupa cum se poate observa, erorile , identificate la iesire, sunt transmise inapoi catre intrare pentru a corecta ponderile sinaptice dintre straturile succesive cu valori proportionale cu aceste erori.
Regulile enuntate se refera numai la ponderile neuronale fara a se specifica nimic despre pragurile ce se pot asocia fiecarui neuron din straturile de prelucrare. Aceasta formalizare nu exclude utilizarea pragurilor care pot fi tratate ca ponderi ale conexiunilor cu un neuron din stratul precedent avand iesirea -1.
4. Antrenarea MLP
O retea neuronala de tip MLP poate fi antrenata pentru aproximarea unei functii sau pentru asocierea, respectiv clasificarea formelor de intrare.
Procesul de antrenare consta in modificarea iterativa a ponderilor si pragurilor neuronilor de pe straturile de prelucrare in scopul minimizarii functiei de performanta a retelei. Aceasta poate fi:
Abaterea patratica partiala:
(33)
Abaterea patratica medie partiala:
(34)
Abaterea patratica totala:
(35)
Abaterea patratica medie totala:
(36)
In general functia de performanta utilizata este abaterea patratica medie multiplicata, din considerente de simplificare a expresiilor de calcul, cu factorul .
Implementarea algoritmului se poate efectua in doua moduri:
(i) modul incremental (incremental mode) in care corectiile ponderilor se efectueaza fiecare exemplu, iar functia de performanta este abaterea patratica medie partiala;
(ii) modul global batch mode in care corectiile ponderilor se efectueaza dupa ce toate exemplele din multimea de antrenare au fost prezentate retelei, adica la sfarsitul unei epoci, iar functia de performanta este abaterea patratica medie totala.
Determinarea matricelor ponderilor si care asigura minimul functiei de performanta se efectueaza impunand conditiile:
(37)
Acestea conduc la un sistem de ecuatii neliniare care se rezolva iterativ printr-o metoda de gradient.
4.1. Metoda gradientului descendent
Cea mai simpla metoda de determinare a unui punct de extrem local pentru functia consta in anularea derivatei
(37)
In cazul unei functii neliniare, cu o forma complexa, rezolvarea directa a ecuatiei (37) nu este posibila si din acest motiv se recurge la o metoda iterativa. Astfel, pentru a determina minimul se porneste de la o aproximatie iniaiala si se genereaza un sir de aproximatii succesive folosind relatia de recurenta:
(38)
care defineste asa numita metoda a gradientului descendent.
In aceasta relatie este un parametru pozitiv utilizat pentru a amplifica sau atenua deplasarea in lungul directiei . In cazul unor valori mari punctul de minim poate fi depasit, iar an cazul unor valori prea mici apropierea de punctul de minim cautate poate deveni prea lenta.
In cazul algoritmului backpropagation pentru care functia de performanta, al carei minim este cautat, depinde de mai multe variabile (ponderile conexiunilor sinaptice si ) relatia de recurenta (38) se aduce la forma vectoriala inlocuind derivata cu gradientul. Rezulta, astfel, urmatoarele relatii, specifice metodei gradientului descendent, pentru determinarea ponderilor conexiunilor sinaptice ale neuronilor de pe stratul ascuns:
(39,a)
respectiv ale celor de pe stratul de iesire:
(39,b)
in care este viteza de invatare.
4. Metoda Newton de ordinul II
In metoda gradientului descendent procesul de cautare a punctului de minim al functiei de performanta a retelei MLP consta in deplasarea dupa directia antigradientului pe o lungime proportionala cu rata de invatare a carei valoare este selectata in mod arbitrar de catre utilizator. O convergenta mai rapida a procesului iterativ de calcul catre punctul de minim cautat este posibila atunci cand se cunosc detalii suplimentare privind functia , detalii care sa permita estimarea unei valori optime pentru viteza de invatare .
Fiind cunoscuta o estimare oarecare a punctului de extrem cautat se pune problema determinarii corectiei astfel incat sa constituie solutia problemei, adica :
(40)
In acest sens, se dezvolta in serie Taylor in jurul punctului si se retin termenii pana la ordinul I. Rezulta:
(42)
Aplicand acestei expresii operatorul de derivare si admitand ca noua aproximare este solutia cautata se obtine:
(43)
din care rezulta relatia de recurenta:
(44)
Comparand relatia (44) cu relatia (38) din metoda gradientului descendent rezulta ca reprezinta o estimare a vitezei de invatare in punctul .
In cazul unei functii de mai multe variabile , relatia (44) capata forma vectoriala:
(45)
in care: ;
este matricea hesian, iar gradientul functiei
in punctul .
Adaptarea metodei Newton de ordinul II la antrenarea retelelor MLP conduce la urmatoarele relatii de recurenta pentru modificarea ponderilor:
(46,a)
(46,b)
Utilizarea relatiilor (46) in cadrul procesului de antrenare a unei retele neuronale de tip MLP, impune vectorizarea matricelor si , adica transformarea acestora in vectori de forma:
respectiv
Dupa cum se poate observa adaptarea ponderilor se realizeaza folosind viteze de invatare distincte pentru fiecare pondere, care, in plus, se modifica de la o iteratie la alta.
4.3. Metoda gradientului conjugat
Metodele de gradient conjugat utilizate in problemele de determinare a unui punct de extrem al unei functii de mai multe variabile , pornesc de la o aproximatie initiala si determina un sir de aproximatii succesive prin deplasarea in n pasi dupa n directii H conjugate.
Dupa cum este cunoscut, doi vectori care satisfac relatia
(47)
se numesc canonic conjugati.
Relatia (47) se poate scrie si sub forma:
(48)
in care este matricea unitate de ordinul n.
Generalizand, daca pentru o matrice oarecare H de ordinul n, vectorii satisfac relatia
(49)
atunci acestia se numesc H conjugati.
Pentru a determina minimul functiei folosind metoda gradientului conjugat, se porneste din punctul initial si se alege deplasarea in sensul antigradientului. Pentru simplificarea expunerii deplasarea se va nota cu Y. Prin urmare, .
In continuare procesul de cautare se desfasoara in n pasi, dupa n directii H conjugate,conform relatiei:
(50)
in care: este o aproximatie intermediara, iar un scalar care se determina astfel incat vectorii si sa fie H conjugati, adica:
(51)
Avand in vedere relatia (50) relatia (51) devine:
(52)
din care rezulta:
(53)
Pentru a utiliza metoda gradientului conjugat la antrenarea retelelor neuronale de tip MPL functia f este inlocuita cu functia de performanta, iar vectorul X cu vectorul U format prin vectorizarea simultana a matricelor ponderilor sinaptice W si V, adica:
Implementarea acestei metode implica rezolvarea urmatoarelor doua probleme suplimentare:
Selectarea vitezei de invatare
O metoda de determinare a unei valori pentru rata de invatare consta in aproximarea variatiei functiei de performanta in raport cu printr-un polinom de gradul II, adica:
(54)
din care, prin anularea derivatei, rezulta valoarea optima
(55)
In cadrul fiecarui pas de calcul, coeficientii A, B si C se determina evaluand functia de performanta in trei puncte distincte, astfel:
pentru rezulta , respectiv
(56,a)
pentru rezulta , respectiv
(56,b)
pentru rezulta , respectiv
(56,c)
Rezolvand sistemul de ecuatii format din relatiile (56,a,b,c) se obtin coeficientii A, B si C, iar din relatia (55) valoarea vitezei de invatare.
Selectarea matricei H pentru calculul factorului
Matricea H din expresia (53) a factorului ar putea fi Hessianul functiei de performanta E. Totusi, pentru reducerea timpului de calcul se evita calculul matricei Hessian. In acest sesns, dezvoltand in serie Taylor gradientul si adoptand o serie de ipoteze simplificatoare se poate demonstra ca:
(57)
Inlocuind relatia (57) in (53) rezulta:
(58)
4.3. Retele neuronale artificiale Kohonen
Retelele neuronale Kohonen numite harti de trasaturi cu auto-organizare, sunt inspirate din modul in care este organizat cortexul cerebral care, dupa cum este cunoscut, are rolul de a coordona functiile organismului. El poate fi asemuit cu o panza subtire, de intindere relativ mare (aproximativ 0,5 m2 ), pliata astfel incat sa poata ocupa suprafata din interiorul craniului, pe care se realizeaza o proiectie deformata a intregului corp uman. Pentru a asigura coordonarea functiilor organismului in scopul asigurarii unitatii functionale a acestuia si al adaptarii la mediu, cortexul sau scoarta cerebrala poseda proprietati topologice/organizatorice remarcabile. De exemplu, zona corespunzatoare mainii se afla langa zona corespunzatoare bratului si asa mai departe.
Pornind de la aceste observatii, Kohonen a pus bazele teoriei hartilor de trasaturi cu auto-organizare, care sunt retele neuronale artificiale cu invatare nesupervizata si cu iesiri con
tinue, cunoscute si ca retele neuronale Kohonen.
Auto-organizarea se defineste ca fiind capacitatea unui sistem de a descoperi si invata structura datelor de intrare chiar si atunci cand nu exista informatii referitoare la aceasta structura. Fara a i se specifica raspunsul corect pentru fiecare exemplu prezentat la intrare, reteaua neuronala artificiala cu auto-organizare invata singura. Cu alte cuvinte, ea descopera trasaturi caracteristice ale datelor de intrare pe care le organizeaza si le memoreaza intr-o maniera specifica. In acest context, setul sau multimea de antrenare contine numai marimile de intrare si nu perechi de tipul adica intrare - iesire dorita.
Informatiile privind trasaturile specifice multimii datelor de antrenare sunt sintetizate in cursul procesului de invatare nesupervizata si sunt memorate in vectorii conexiunilor sinaptice ale caror componente nu mai reprezinta ponderile ci componentele asa numitilor vectori prototip. Fiecare neuron al retelei artificiale corespunde unui prototip, iar iesirea defineste relatia dintre intrarea curenta si aceste prototipuri memorate.
Particularitatea retelelor Kohonen este aceea ca neuronii nu mai sunt asezati pe straturi (de intrare, de iesire si ascuns), ci in nodurile unei plase bidimensionale de dimensiune () (fig 16), numita grila suport.
In aceasta structura exista conexiuni doar intre intrarea si fiecare neuron, prin intermediul vectorilor , iar ponderile legaturilor dintre neuroni grilei suport nu au nici o relevanta. Fiecare neuron este asociat unei clase, motiv pentru care se utilizeaza si termenul neuron clasa, si este caracterizat de:
vectorul numit vector prototip asociat;
pozitia sa pe grila suport, adica coordonatele si .
Fig. 16. Structura unei retele neuronale Kohonen.
Interactiunea dintre neuroni depinde de distanta dintre acestia. Distanta dintre doi neuroni r si s poate fi definita ca fiind distanta euclidiana:
(59)
sau distanta Manhattan:
. (60)
La inceputul procesului de antrenare al retelei, componentele ale vectorilor prototip sunt initializate aleator urmand a fi adaptate intr-o maniera care sa asigure faptul ca neuronii apropiati din punct de vedere topologic, sa fie sensibili la intrari apropiate.
Astfel, dupa initializarea aleatoare a valorilor ponderilor , retelei i se prezinta la intrare cate un exemplu din multimea de antrenare care este comparat cu toti vectorii prototip in scopul determinarii neuronului castigator. Acesta este neuronul al carui vector prototip este cel mai apropiat de vectorul prezentat la intrare, adica neuronul care satisface relatia:
(60)
in care
. (61)
Dupa ce a fost determinat castigatorul competitiei, are loc procesul de actualizare a ponderilor. In acest sens, se utilizeaza conceptul de vecinatate. Vecinatatea unui neuron j, notata este formata din acei neuroni pentru care distanta dintre ei si neuronul j nu depaseste o valoare prestabilita. Vecinatatea unui neuron depinde de tipul de distanta utilizata. Pentru exemplificare, in figura 17 sunt prezentate vecinatatea de dimensiune 2 a unui neuron in situatia utilizarii distantei euclidiene (17, a), respectiv a distantei Manhattan (17, b).
Actualizarea ponderilor se face utilizand relatia:
(62)
unde: este viteza de invatare;
- functia de invecinare definita de relatia:
(63)
Pentru a eficientiza procesul de antrenare, valoarea vitezei de invatare si a functiei de invecinare sunt modificate in timp folosind in acest sens relatiile:
(64)
si
(65)
unde .
Procesul de antrenare se incheie atunci cand ponderile atasate tuturor neuronilor nu se mai modifica semnificativ.
Fig. 4.17. Vecinatate de dimensiune 2 in cazul utilizarii:
a - distantei euclidiene; b - distantei Manhattan.
Dupa prezentarea unui numar suficient de vectori de intrare, neuronii clasa din retea vor evidentia grupari de puncte sub forma unor nori sau clustere care partitioneaza spatiul de intrare. Cu alte cuvinte reteaua incearca sa proiecteze grila suport in spatiul de intrare astfel incat fiecare vector de antrenare sa fie cat mai apropiat de un prototip, iar grila suport sa fie cat mai putin posibil deformata.
Stimul - Cuvant de origine latina ("stimulus"). Defineste un factor exterior care determina excitatia (activarea) de scurta durata a unui organ sau a unei functii biologice, care declanseaza un proces fiziologic. In contextul retelelor neuronale artificiale prin stimul se va intelege informatia receptionata de catre neuronul artificial (unitatea de procesare) prin una din conexiunile de intrare.
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 3966
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved