26.5 Evaluarea rezultatelor

Deci, cum lucrează? Programul de instruire pentru recunoașterea vocalei a fost executat de trei ori folosind diferite valori aleatorii pentru ponderile inițiale. Aproximativ o oră este necesară pentru a finaliza 800 de iterații pe un calculator personal Pentium de 100 MHz. Figura 26-9 arată cum se modifică eroarea rețelei, ESUM, pe această perioadă. Declinul treptat indică faptul că rețeaua învață sarcina și că ponderile ating o valoare aproape optimă după câteva sute de iterații. Fiecare încercare produce o soluție diferită la problemă, cu o performanță finală diferită. Acest lucru este similar cu parașutistul care pornește de la diferite locații și, astfel, se termină la fundul diferitelor văi. La fel cum unele văi sunt mai adânci decât altele, unele soluții de rețele neuronale sunt mai bune decât altele. Aceasta înseamnă că algoritmul de învățare ar trebui să ruleze de mai multe ori, cu cel mai bun din grup luat ca soluție finală.

Figura 26-10 Exemplu de ponderări ale rețelei neuronale.

În această figură, sunt afișate, ca imagini, ponderile stratului ascuns pentru cele trei soluții. Toate aceste trei soluții apar aleatoare pentru ochiul uman.

În figura 26-10, ponderile stratului ascuns ale celor trei soluții sunt afișate ca imagini. Asta înseamnă că prima acțiune efectuată de rețeaua neuronală este de a corela (multiplica și însuma) aceste imagini cu semnalul de intrare. Arată ca zgomot aleator! Aceste valori ale ponderilor se pot dovedi a lucra, dar de ce lucrează acestea sunt ceva de mister. Iată și altceva de gândit. Creierul uman este compus din circa 100 trilioane de neuroni, fiecare cu o medie de 10.000 de interconexiuni. Dacă nu putem înțelege rețeaua simplă neuronală din acest exemplu, cum putem studia ceva care este cel puțin 100.000.000.000.000 de ori mai complex? Aceasta este cercetarea secolului XXI.

Figura 26-11a prezintă o histogramă a ieșirii rețelei neuronale pentru cele 260 de litere din setul de instruire. Rețineți că ponderile au fost selectate pentru a face ca ieșirea să fie aproape unu pentru imaginile vocale și aproape zero în caz contrar. Separarea a fost realizată perfect, fără suprapuneri între cele două distribuții. De asemenea, observați că distribuția vocalelor este mai restrânsă decât distribuția non-vocalelor. Acest lucru se datorează faptului că am declarat că eroarea țintă este de cinci ori mai importantă decât eroarea non-țintă (a se vedea linia 2220).

În comparație, Fig. 26-11b prezintă histograma pentru imaginile 261 până la 1300 din baza de date. Deși distribuțiile țintă și cele non-țintă sunt în mod rezonabil distincte, ele nu sunt complet separate. De ce rețeaua neuronală funcționează mai bine pe primele 260 de litere decât ​​ultimele 1040? Figura (a) trișează! Este ușor să faceți un test dacă ați văzut deja răspunsurile. Cu alte cuvinte, rețeaua neuronală recunoaște imagini specifice în setul de instruire, nu modelele generale care identifică vocalele din non-vocale.

Figura 26-11 Performanța rețelei neuronale.

Acestea sunt histograme ale valorilor de ieșire a rețelei neuronale, (a) pentru datele de formare, și (b) pentru imaginile rămase. Rețeaua neuronală performează mai bine cu datele de formare deoarece ea a văzut deja răspunsurile la test.

Figura 26-12 arată performanța celor trei soluții, afișate ca curbe ROC. Încercarea (b) oferă o rețea semnificativ mai bună decât celelalte două. Este o chestiune de șansă aleatorie, în funcție de ponderile inițiale utilizate. La un set de prag, rețeaua neuronală proiectată în încercarea "b" poate detecta 24 din 25 de ținte (adică 96% din imaginile vocalei), cu o rată de alarmă falsă de numai 1 din 25 non-ținte (adică 4% imagini nonvocală). Nu este rău având în vedere natura abstractă a acestei probleme și soluția foarte generală aplicată.

Figura 26-12 Analiza ROC a exemplelor de rețea neuronală.

Aceste curbe compară trei rețele neuronale proiectate pentru a detecta imaginile vocalelor. Încercarea (b) este cea mai bună soluție, arătată prin curba sa care este mai aproape de colțul din stânga-sus al graficului. Această rețea poate detecta corect 24 din 25 ținte, în timp ce produce doar 1 alarmă falsă pentru fiecare 25 neținte. Adică, există un punct pe curba ROC la x=4% și y=96%.

Câteva comentarii finale asupra rețelelor neuronale. Obținerea unei rețele neuronale de a converge în timpul instruirii poate fi dificilă. Dacă eroarea de rețea (ESUM) nu scade constant, programul trebuie să fie terminat, modificat și apoi repornit. Acest lucru poate dura mai multe încercări înainte ca succesul să fie atins. Trei lucruri pot fi modificate pentru a afecta convergența: (1) MU, (2) magnitudinea ponderilor inițiale aleatoare și (3) numărul de noduri ascunse (în ordinea în care ar trebui schimbate).

Cel mai important element din dezvoltarea rețelei neuronale este valabilitatea exemplelor de instruire. De exemplu, atunci când se dezvoltă noi produse comerciale, singurele date de testare disponibile sunt de la prototipuri, simulări, ghiciri educate etc. Dacă o rețea neuronală este instruită pe baza acestor informații preliminare, este posibil să nu funcționeze corect în aplicația finală. Orice diferență între baza de date de instruire și eventualele date va degrada performanța rețelei neuronale (legea lui Murphy pentru rețelele neuronale). Nu încercați să susțineți ghicitul rețelei neuronale pentru această problemă; nu puteți!

Secțiunea următoare: Proiectare filtru recursiv