26.3 De ce funcționează?

Ponderile necesare pentru a face o rețea neuronală să efectueze o anumită sarcină sunt găsite de un algoritm de învățare, împreună cu exemple de cum sistemul ar trebui să opereze. De exemplu, exemplele din problema sonarului ar fi o bază de date cu mai multe sute (sau mai multe) dintre cele 1000 de segmente de eșantioane. Unele dintre segmentele exemplu ar corespunde cu submarinele, altele cu balenele, altele cu zgomotul aleatoriu etc. Algoritmul de învățare utilizează aceste exemple pentru a calcula un set de ponderi adecvate pentru sarcina la îndemână. Termenul de învățare este folosit pe scară largă în domeniul rețelei neuronale pentru a descrie acest proces; dar, o descriere mai bună ar putea fi: determinarea unui set optimizat de ponderi bazat pe statistica exemplelor. Indiferent de cum se numește metoda, ponderile rezultate sunt aproape imposibil de înțeles de către oameni. Modelele pot fi observate în unele cazuri rare, dar, în general, ele par a fi numere aleatorii. O rețea neuronală care utilizează aceste ponderi poate fi observată ca având o relație de intrare/ieșire adecvată, dar de ce lucrează aceste ponderi particulare este destul de derutant. Această calitate mistică a rețelelor neuronale a determinat mulți oameni de știință și ingineri să se ferească de ele. Amintește-ți toate filmele de science fiction ale computerelor renegate care preiau pământul?

Cu toate acestea, este obișnuit să auziți avocații rețelei neuronale facând declarații precum: "rețelele neuronale sunt bine înțelese". Pentru a explora această afirmație, vom arăta mai întâi că este posibilă alegerea ponderilor rețelei neuronale prin metodele DSP tradiționale. Apoi, vom demonstra că algoritmii de învățare oferă soluții mai bune decât tehnicile tradiționale. Deși acest lucru nu explică de ce funcționează un anumit set de ponderi, el oferă încredere în metodă.

În cea mai sofisticată vedere, rețeaua neuronală este o metodă de etichetare a diferitelor regiuni în spațiul parametrilor. De exemplu, considerați rețeaua neuronală a sistemului sonar cu 1000 de intrări și o singură ieșire. Cu o selecție corectă a ponderii, ieșirea va fi aproape unu dacă semnalul de intrare este un ecou de la un submarin și aproape de zero dacă intrarea este doar zgomot. Acesta formează un hiperspațiu de parametru de 1000 de dimensiuni. Rețeaua neuronală este o metodă de atribuire a unei valori fiecărei locații în acest hiperspațiu. Adică, cele 1000 de valori de intrare definesc o locație în hiperspațiu, în timp ce ieșirea rețelei neuronale furnizează valoarea la acea locație. Un tabel de căutare poate efectua perfect această sarcină, având o valoare de ieșire stocată pentru fiecare adresă de intrare posibilă. Diferența este că rețeaua neuronală calculează valoarea la fiecare locație (adresă), mai degrabă decât sarcina imposibil de mare de a stoca fiecare valoare. De fapt, arhitecturile rețelelor neuronale sunt adesea evaluate de cât de bine separă hiperspațiul pentru un anumit număr de ponderi.

Această abordare oferă de asemenea un indiciu pentru numărul de noduri necesare în stratul ascuns. Un spațiu de parametri de N dimensiuni necesită N numere pentru a specifica o locație. Identificarea unei regiuni în hiperspațiu necesită 2N valori (adică, o valoare minimă și maximă de-a lungul fiecărei axe definește un solid rectangular hiperspațiu). De exemplu, aceste calcule simple ar indica faptul că o rețea neuronală cu 1000 de intrări necesită 2000 de ponderi pentru a identifica o regiune a hiperspațiului de alta. Într-o rețea complet interconectată, acest lucru ar necesita două noduri ascunse. Numărul de regiuni necesare depinde de problema particulară, însă se poate aștepta să fie mult mai mic decât numărul de dimensiuni din spațiul parametrilor. Deși aceasta este doar o aproximare brută, explică, în general, de ce majoritatea rețelelor neuronale pot opera cu un strat ascuns de 2% până la 30% din dimensiunea stratului de intrare.

Un mod complet diferit de înțelegere a rețelelor neuronale utilizează conceptul DSP de corelație. Așa cum am discutat în Capitolul 7, corelația este modul optim de a detecta dacă un model cunoscut este conținut într-un semnal. Se realizează prin înmulțirea semnalului cu modelul căutat și adunarea produselor. Cu cât suma este mai mare, cu atât semnalul seamănă mai mult cu modelul. Acum, examinați Fig. 26-5 și gândiți-vă la fiecare nod ascuns ca la căutarea unui model specific în datele de intrare. Adică, fiecare dintre nodurile ascunse corelează datele de intrare cu setul de ponderi asociate cu acel nod ascuns. Dacă modelul este prezent, suma trecută la sigmoid va fi mare, altfel va fi mică.

Acțiunea sigmoidului este destul de interesantă în acest punct de vedere. Uitați-vă înapoi la figura 26-1d și observați că curba de probabilitate care separă două distribuții în formă de clopot seamănă cu un sigmoid. Dacă am fi proiectat manual o rețea neuronală, am putea face ca ieșirea fiecărui nod ascuns să fie probabilitatea fracționată cu care un model specific este prezent în datele de intrare. Stratul de ieșire repetă această operație, făcând întreaga structură pe trei straturi o corelare a corelațiilor, o rețea care caută modele de modele.

DSP convențională se bazează pe două tehnici, convoluție și analiza Fourier. Este liniștitor faptul că rețelele neuronale pot efectua ambele operații, plus multe altele. Imaginați-vă că un semnal de N eșantioane este filtrat pentru a produce un alt semnal de N eșantioane. Conform vederii din partea de ieșire a convoluției, fiecare eșantion din semnalul de ieșire este o sumă ponderată a eșantioanelor din intrare. Acum, imaginați-vă o rețea neuronală cu două straturi cu N noduri în fiecare strat. Valoarea produsă de fiecare nod al stratului de ieșire este, de asemenea, o sumă ponderată a valorilor de intrare. Dacă fiecare nod al stratului de ieșire utilizează aceleași ponderi ca toate celelalte noduri de ieșire, rețeaua va implementa convoluția liniară. De asemenea, DFT poate fi calculată cu o rețea neuronală cu două straturi cu N noduri în fiecare strat. Fiecare nod al stratului de ieșire găsește amplitudinea unei componente de frecvență. Acest lucru se face făcând ponderile fiecărui nod al stratului de ieșire la fel ca sinusoidul căutat. Rețeaua rezultată corelează semnalul de intrare cu fiecare din sinusoidele funcției de bază, calculând astfel DFT. Desigur, o rețea neuronală cu două straturi este mult mai puțin puternică decât arhitectura standard cu trei straturiu. Acest lucru înseamnă că rețelele neuronale pot efectua procesare neliniară precum și procesare liniară.

Să presupunem că una dintre aceste strategii DSP convenționale este folosită pentru a concepe ponderile unei rețele neuronale. Se poate susține că rețeaua este optimă? Algoritmii DSP tradiționali se bazează de obicei pe ipoteze privind caracteristicile semnalului de intrare. De exemplu, filtrarea Wiener este optimă pentru maximizarea raportului semnal-zgomot, presupunând că spectrele de semnal și zgomot sunt ambele cunoscute; corelația este optimă pentru detectarea țintelor presupunând că zgomotul este alb; deconvoluția contracarează o convoluție nedorită presupunând că kernelul deconvoluției este inversul kernelului de convoluție inițial etc. Problema este că omul de știință și inginerul rareori au o cunoaștere perfectă a semnalelor de intrare care vor fi întâlnite. În timp ce matematica de bază poate fi elegantă, performanța generală este limitată de cât de bine sunt înțelese datele.

De exemplu, imaginați-vă testarea unui algoritm tradițional DSP cu semnale de intrare reale. Apoi, repetați testul cu algoritmul ușor schimbat, să zicem, prin creșterea unuia dintre parametri cu un procent. Dacă al doilea rezultat al testului este mai bun decât primul, algoritmul inițial nu este optimizat pentru sarcina la îndemână. Aproape toți algoritmii convenționali DSP pot fi îmbunătățiți semnificativ prin evaluarea trial-and-error de mici modificări la parametrii și procedurile algoritmului. Aceasta este strategia rețelei neuronale.

Secțiunea următoare: Formarea rețelei neuronale