Sunteți pe pagina 1din 10

• Rețea cu mai multe straturi

•Eroare pentru Regula de învățare prin backpropagation


• Capacitățile de calcul ale rețelelor MLP

Cortexul cerebral (sau neocortexul) este stratul pliat de aproximativ 2 mm gros, care acoperă
emisferele cerebrale și asigură funcții cognitive superioare. Pentru om (și șoareci), cortexul este
compus din șase straturi distincte de neuroni ( vezi diagrama stanga). Aceste straturi orizontale se
disting prin tipul de neuroni prezenți (interneuronii piramidali, granulari etc.), dar și de tipul
conexiunilor pe care le stabilesc cu cele vecine sau mai îndepărtate. Studiile funcționale au arătat că
acești neuroni sunt de asemenea organizați pe verticală (diagrama dreaptă ) în unități funcționale numite
"coloane corticale". Fiecare coloană sau cortex cilindric conține aproximativ 10.000 de neuroni care
primesc și procesează un anumit tip de stimuli senzoriali (cum ar fi orientarea unui obiect sau frecvența
unui sunet). Creierul uman ar avea un milion de coloane corticale conectate între ele nu numai în
vecinătate, ci și la o distanță mare între zonele creierului sau celelalte emisfere. Această organizație a
fost demonstrată în coloane pentru cortexul vizual primar și auditiv, apoi generalizată pentru întregul
neocortex.

Simularea neuronului integrată în cortex, care poate fi vizualizată prin diferite culori

1
Luați în considerare arhitectura feed -forward în două straturi prezentată în Figura.
Această rețea primește un set de semnale scalare { x0, x1,... xn} x0 x este un semnal de bias egal cu 1.
Acest set de semnale constituie un vector de intrare xϵRn+1.
Stratul care primește semnalul de intrare se numește stratul ascuns . Figura arată un strat ascuns având J
unități.
τ
Ieșirea stratului ascuns este un vector (J + l) -dimensional cu valori reale z =[z0,z1....zj] .
Din nou, z0 =1 reprezintă o intrare bias și poate fi considerată ca fiind generată de o
unitate falsa (cu indice zero) a cărei ieșire z0 este fixată la 1. Vectorul z furnizează intrarea pentru
stratul de ieșire al unităților L.
Stratul de ieșire generează un vector y cu dimensiunea L ca răspuns la intrarea x care, atunci când
rețeaua este complet instruită, ar treb ui să fie identică (sau foarte apropiată) cu un vector de ieșire
"dorit" d asociat cu x.

Figura O arhitectură a rețelei neuronale în două straturi complet interconectate. Pentru claritate, sunt
desenate numai conexiunile selectate.

Funcția de activare f h a unităților ascunse este presupusă a fi o funcț ie diferențială neliniară


[în mod obișnuit, f h este funcția logistică definită de f h( net) = 1/(1+e-λnet), sau tangentă hiperbolică
funcția fh (net)t =tanh( βnet), cu valori pentru λ și β aproape de unitate].
Se presupune că fiecare unitate a stratului de ieșire are aceeași funcție de activare, notată f0
forma funcțională a f0 este determinată de reprezentarea semnalului de ieșire / modelul de ieșire dorit
sau de tipul de aplicatie.
De exemplu, dacă ieșirea dorită este evaluată real (ca în aplicații de aproximare unei funcții
2
), atunci poate fi utilizată o activare liniară fh (net)= λnet. Pe de altă parte, dacă
rețeaua implementează un clasificator de șablon cu ieșiri binare, apoi o nelinearitate saturată
similar cu fh poate fi folosit pentru f0. În acest caz, componentele vectorului de ieșire dorit d
trebuie să fie aleasă în intervalul f0.

În cele din urmă, notăm cu wji, ponderea unității ascunse j asociată cu semnalul de intrare xi.
În mod similar, wlj este ponderea celei de-a l unități de ieșire asociată cu semnalul ascuns zj.
Apoi, luăm în considerare un set de m perechi de intrare /ieșire {xk,dk}, unde dk este un vector L-
dimensional reprezentând ieșirea dorită a rețelei la prezentarea lui xk.
Obiectivul este ajustarea adaptivă a ponderilor J (n + 1) + L (J + 1) ale acestei rețele
a.i. funcția / maparea de bază reprezentată de setul de antrenament este aproximată sau învățată.
Deoarece învățarea aici este supravegheată (adică sunt disponibile ieșirile țintă), o funcție de
eroare poate fi definită pentru a măsura gradul de aproximare pentru orice setare dată a ponderilor
rețelei. O funcție de eroare utilizată frecvent este măsura SSE-Suma Erorilor Patratice, dar aceasta nu
este singura posibilitate, și pot fi avute în vedere câteva alte funcții de eroare.
Odată ce a fost formulată o funcție de eroare adecvată, învățarea poate fi văzută (așa cum sa făcut în
Unitatea 3) ca un proces de optimizare. Adică, funcția de eroare servește ca funcție de cost / criteriu, și
algoritmul de învățare urmărește să minimizeze funcția criteriu în raport cu setarile pentru ponderi.
De exemplu, dacă se folosește o funcție de criteriu diferențiabil, algoritmul gradientului pe o astfel de
funcție va duce în mod firesc la o regulă de învăț are supravegheată pentru ajustarea greutăților w ji și
wlj astfel încât următoarea funcție de eroare este minimizată (în sens local) peste setul de antrenament
dat.

E(w) = 1/2Σl=1L(dl – yl)2 (3.1)

Aici, w reprezintă setul tuturor ponderilor din rețea. Rețineți că Ecuația (3.1) este
criteriul SSE "instantanee" pentru un perceptron generalizat pentru o rețea cu mai multe ieșiri

Eroare la regula de învățare Backpropagation


Deoarece obiectivele pentru unitățile de ieșire sunt specificate explicit, se poate folosi direct regula
Delta, derivata în Unitatea 2 pentru actualizarea ponderilor wlj. Acesta este,

Δwlj = wljnew - wljc = -ρ0 ................ (3.2)

cu l=1....L si j=0,1....J

netl = Σj=0J wljzj este suma ponderată pentru a l-lea unitate de ieșire,

f0 este derivata lui f0, în ceea ce privește net,

și wljnew si wljc reprezintă valorile actualizate (noi) și, respectiv, cele actuale ale ponderii.
Valorile zj sunt calculate prin propagarea vectorului de intrare x prin stratul ascuns conform
3
n
zj = fh (Σj=0 wjixi) = fh (netj ) j=1,2, ...,J (3.3)
Regula de învățare pentru pondeerile stratului ascuns wji nu este la fel de evidentă ca cea pentru stratul
de ieșire deoarece nu avem un set de valori țintă (ieșirile dorite) pentru unitățile ascunse.
Cu toate acestea, se poate determina o regulă de învăț are pentru unitățile ascunse prin încercarea de a
minimiza eroarea stratului de ieșire. Aceasta înseamnă propagarea erorilor de ieșire (dl – yl) înapoi prin
stratul de ieșire către unitățile ascunse, în încercarea de a estima țintele "dinamice" pentru aceste
unități. Așa regula de învățare este denumită backpropagation de eroare sau regula de învățare
backprop și poate fi văzută ca extensie a regulii delta [Ecuația (3.2)] utilizată pentru actualizarea
stratului de ieșire.

Pentru a finaliza derivarea backprop pentru ponderile stratului ascuns și similar cu


derivarea precedentă pentru greutățile stratului de ieșire, algoritmul gradientului se face pe
funcția criteriu în Ecuația (3.1), dar de această dată, gradientul este calculat în raport cu cel ponderile
ascunse:
Δwji = - ρh ∂E/∂wji j=1,2,..J i=0,1,2.....n (3.4)

unde derivata parțial a urmează să fie evaluata la valorile actuale ale ponderii.
Folosind regula de lanț pentru diferențiere, se poate exprima derivatul parțial din Ecuația (3.4)
și să obțină, în sfârșit, regula de învățare dorită

Δwji = - ρh[Σl=1L(dl – yl) f0’ (netl ) wlj]fh’(netj)xi (3.9)

Comparând Ecuația (3.9) cu Ecuația (3.2), se poate defini imediat o "tinta estimată"
dj pentru unitatea ascunsă a j-lea în termenii semnalului de eroare backpropagated cum
urmează:

dj – zj ...................................................(3.10)

Este de obicei posibil să se exprime derivatele funcțiilor de activare în Ecuațiile (3.2) și


(3.9) din punct de vedere al activărilor în sine. De exemplu, pentru funcția de activare logistică,

f’ ( net) = λf(net)[1 - f (net )] (3.11)

și pentru funcția hiperbolică tangentă,

f’ (net) = β[1 – f2 (net )] (3.12)

Aceste ecuații de învățare pot fi, de asemenea, extinse la rețelele feedforward cu mai mult de un strat
ascuns si / sau retele cu conexiuni care sar peste unul sau mai multe straturi. Procedura completă
pentru actualizarea ponderilor într-o retea neuronală feedforward care utilizează aceste reguli este
rezumată mai jos pentru arhitectura cu două straturi din Figura .
Această procedura învățare va fi menționată ca backprop incremental sau backprop.

4
1. Inițializați toate ponderile și faceți referire la ele ca ponderi "curente" wljc si wjic .
2. Setați ratele de învățare ρ0 și ρh la mici valori pozitive.
3. Selectați un model de intrare x k din setul de antrenament (de preferință la întâmplare) și propagați -l
prin intermediul rețelei, generând astfel activități ale uniitatii ascunse și unitatii de iesire bazate pe
setarile ponderale curente.
4. Folosiți ținta dorită d k asociată cu xk și folosiți Ecuația (3.2) pentru a calcula
schimbarile de ponderi al stratului de ieșire Δwlj.
5. Utilizați Ecuația (3.9) pentru a calcula modificările de ponderi ale stratului ascuns Δwji . În mod
normal, ponderile actuale sunt utilizate în aceste calcule.
6. Actualizați toate greutățile în conformitate cu w ljnew = wlj c + Δwlj și wjinew = wji c + Δwji pentru
ieșire și straturile ascunse, respectiv.
7. Testarea convergenței. Acest lucru se face verificând o anumită funcție preselectată a erorilor (1)
ieșirii
pentru a vedea dacă mărimea sa este sub un anumit prag prestabilit. Dacă convergența este îndeplinită,
opriți-vă;
In caz contrar, setați wji c = wjinew si wlj c = wljnew și mergeți la pasul 3.
(1) O selecție convenabilă este eroarea rădăcină medie -pătrată (RMS) dată de
Radical[2E / (mL) cu E ca în Ecuația (3.13). Ca alternativa și mai sensibil test de oprire
poate fi formulata prin utilizarea validării încrucișate.

Trebuie remarcat faptul că backprop ar putea să nu găsească o soluție care să treacă testul de
convergență. În acest caz, se poate încerca să reinitializați procesul de căutare, să ajustați parametrii de
învățare și / sau să utilizați mai multe unități ascunse.
Această procedură se bazează pe învățarea incrementală, ceea ce înseamnă că greutățil e sunt
actualizate dupa fiecare prezentare a unui model de intrare.
O altă alternativă este folosirea învățării în loturi batch , în cazul în care actualizarea în greutate se face
numai după ce toate modelele (presupunând un set de antrenament finit) au fost prezentate. Învățarea
pe lot este formulată în mod oficial prin însumarea laturilor drepte ale Ecuațiilor (3.2) și (3.9) peste
toate modelele xk. Aceasta echivaleaza la algoritmul gradientului pe funcția criteriului

E(w) = ½ Σk=1m Σl=1L(dl – yl)2 (3.13)

Chiar dacă actualizarea loturilor mută punctul de căutare w în direcția gradientului real la fiecare pas
de actualizare, actualizarea incrementală "aproximativă" este mai de dorit din două motive:
(1) necesită mai puțin stocare și
(2) face calea de căutare în spațiul de greutate stochastic (aici, la fiecare etapă a timpului, vectorul de
intrare x este tras la întâmplare), ceea ce permite o explorare mai amplă a spațiului de căutare și,
eventual, duce la soluții de o calitate mai bună.
Atunci când backprop converge, converge la un minim local al funcției criteriului. Acest fapt este
valabil pentru orice regulă de învățare pe bază de algoritm gradient atunci când suprafața căutată este
neconvexă; adică, admite minimele locale.
5
Exemplul 3.1 Luați în considerare problema de două clase prezentată în Figura .
Punctele din regiunea umbrită aparțin clasei B și toate celelalte puncte sunt în clasa A.
Este utilizată o rețea neuronală feedforward cu trei straturi cu instruire backprop, care ar trebui să
învețe să facă distincția între aceste două clase. Rețeaua constă dintr -un prim strat ascuns de opt unități,
urmat de un al doilea strat ascuns cu patru unități, urmat de un strat de ieșire cu o singură unitate. O
astfel de rețea se spune că are o arhitectură 8-4-1.
Toate unitățile folosesc o funcție de activare tangentă hiperbolică. Unitatea de ieșire trebuie să codifice
clasa fiecărui vector de intrare, o ieșire pozitivă indică clasa B, iar o ieșire negativă indică clasa A.
A fost utilizat un backprop incremental cu rate de învățare setate la 0,1. Setul de antrenament este
format din 500 de puncte alese aleatoriu, 250 din regiunea A și 250 din regiunea B. În acest set de
antrenamente,
punctele reprezentând clasa B și clasa A le-au fost atribuite valorile dorite de ieșire (țintă) de +1 și
1, respectiv(2). Antrenamentul a fost efectuat pentru mai multe sute de cicluri pe setul de
antrenament.

Figura Regiuni de decizie pentru problema de clasificare a modelului din Exemplul 3.1
(2) De fapt, țintele reale utilizate au fost compensate de o mică constantă pozitivă ε (să zicem, ε = 0,1)
dplasare de valorile limită ale funcției de activare. Acest lucru a dus la înlocuirea
obiectivele +1 și 1 cu 1 - εe și respectiv - 1 + 2β. În caz contrar, backprop-ul tinde să conducă
greutatea rețelei la infinit și astfel să încetinească procesul de învățare.

Figura 3 prezintă parcelele geometrice ale tuturor răspunsurilor unității după


testarea rețelei cu un nou set de 1000 de puncte generate uniform (în mod aleatoriu) în interiorul
[-1,+1]2 regiunea. În generarea fiecărui parcel, un punct negru a fost plasat la coordonatele exacte ale i
punctului de test (intrare) în spațiul de intrare dacă și numai dacă răspunsul la unitate corespunzător a
6
fost pozitiv.
Limitele dintre regiunile albe și cele albe din parcele reprezintă aproximativ
limitele de decizie învățate de diferitele unități ale rețelei.
Figura 3a-h reprezintă limitele de decizie învățate de către opt unități din primul strat ascuns.
Figura 3i-l arată limitele de decizie învățate de cele patru unități ale celui de-al doilea strat ascuns.
Figura 3m arată limita de decizie realizată de unitatea de ieșire.

Observați natura liniară a suprafeței de separare realizată de către primele unități de strat ascuns, din
care se realizează suprafețe de separare neliniară complexe prin intermediul celor două unități de strat
ascuns și, în cele din urmă, prin unitatea s trat de ieșire. Acest exemplu ilustrează, de asemenea, modul
în care o rețea feedforward cu un singur strat ascuns (numărand doar primele două straturi) este
capabilă să realizeze regiuni de decizie convexe, concave, precum și disjuncte, după cum se poate
observa din Figura 3i-l. Aici, neglijăm unitatea de ieșire și vedem reteaua rămasă ca una cu o
arhitectură 8-4. Problema prezentă poate fi rezolvată și cu rețele mai mici (număr mai mic de unități
ascunse sau chiar o rețea cu un singur strat ascuns). Cu toate acestea, formarea unor astfel de rețele mai
mici cu backprop poate deveni mai dificilă. O rețea mai mică, cu o arhitectură 5-3-1, care utilizează o
procedură de învățare retroprogramată, are o suprafață de separare comparabilă cu cea din Figura 3m.

Figura Separarea suprafețelor generate de diferitele unități din rețeaua 8 -4-1 din Exemplul 3.1. (a-h)

7
Suprafețele de separare realizate de unitățile din primul strat ascuns; (i-1) suprafața de separare

realizată de unitățile din al doilea strat ascuns, (m) suprafața de separare realizată de unitatea de

ieșire.

Capabilitățile computaționale ale MLP


Deoarece una dintre motivațiile noastre de a examina rețelele multistrat este de a evita limitarea
perceptronului la regiuni de decizie liniară, prima întrebare care apare este
"Ce tipuri de regiuni de decizie poate reprezenta o rețea multistratificată?"
Poate că în mod surprinzător, răspunsul este acela
cu doar trei straturi și suficiente unități în fiecare strat, o rețea multistratificată poate aproxima orice
regulă de decizie. De fapt, al treilea strat (stratul de ieșire) constă dintr-o singură unitate de ieșire,
astfel încât unitățile multiple sunt necesare numai în primul și al doilea strat.
Pentru regulile de decizie care atribuie clasei 1 un număr posibil de infinit de zone din plan (sau
volumele în N-spațiu), acest rezultat poate fi arătat relativ simplu după cum urmează.
În primul rând, putem aproxima orice regulă de decizie care atribuie vectori de funcții într-un anumit
set convex la clasa 1 și toate celelalte la clasa 0. (Un set de puncte este convex dacă o linie între
oricare două punctele din set sunt întotdeauna în întregime în cadrul setului.) Acest lucru se
datorează faptului că poate fi un set convex aproximată printr-un poliedru obținut prin intersecția
unui număr de jumătăți de spații (Fig
10,2 și 10,3).

Fiecare semi-spațiu are o limită de decizie liniară care poate fi implementată de un singur perceptron.
Diferitele jumătăți de spații folosite pentru a aproxima setul convex sunt implementate de diferite
unități, toate din primul strat.
8
Pentru a obține intersecția semiplanurilor, trecem ieșirile perceptronilor din primul strat la un singur
perceptron în al doilea strat care calculează logicul AND al intrărilor sale, astfel încât ieșirea să fie 1
dacă și numai dacă fiecare intrare la perceptronul unic în al doilea strat este 1.
Acest lucru se întâmplă exact atunci când vectorul caracteristic se află în interiorul polyhedronului
definit de jumătățile spațiilor.
Prin luarea mai multor unități în primul strat, obținem un polyhedron cu mai multe fețe și, prin
urmare, o aproximare mai bună a setului convex.

Pentru a aproxima un set arbitrar (nonconvex), putem să îl aproximăm mai întâi cu o uniune de
convexe (Figura 10.4).

Un mod sistematic de a face acest lucru este de a împărți spațiul în mod regulat de-a lungul fiecărei
dimensiuni pentru a forma hipercuburi. Fiecare set convex constitutiv poate fi aproximat așa cum
este descris mai sus, deci avem nevoie doar de o modalitate de a lua unirea acestor seturi. Pentru a
obține uniunea, putem folosi un singur perceptron care calculează OR logic al intrărilor sale.
În cele din urmă, rețeaua utilizată pentru a aproxima un set general are următoarea formă.
• Fiecare unitate din primul strat calculează o jumătate de spațiu.
• Ieșirile acestui strat sunt transferate către cel de-al doilea strat, unde fiecare unitate execută logica
AND a acelor jumătăți de spațiu necesare pentru a aproxima diferite seturi convexe.

9
• Ieșirile din cel de-al doilea strat sunt apoi trecute printr-o unitate finală care efectuează o operație
OR pentru a lua unirea acelor seturi convexe. (Vezi Figura 10.5)

NOTĂ Rețeaua de mai jos nu poate generaliza deoarece recunoaște, într-adevăr fără
eroare, numai figura 10.4

10

S-ar putea să vă placă și