26.2 Arhitectura rețelei neuronale

Oamenii și alte animale procesează informații cu rețele neuronale. Acestea sunt formate din trilioane de neuroni (celule nervoase) care schimbă impulsuri electrice scurte numite potențiale de acțiune. Algoritmii de calculator care imită aceste structuri biologice sunt numiți în mod oficial rețele neuronale artificiale pentru a le distinge de lucrurile squishy din interiorul animalelor. Totuși, majoritatea oamenilor de știință și ingineri nu sunt atât de formali și folosesc termenul de rețea neuronală pentru a include atât sistemele biologice, cât și cele nebiologice.

Cercetarea rețelelor neuronale este motivată de două dorințe: obținerea unei mai bune înțelegeri a creierului uman și dezvoltarea de computere care să se ocupe de probleme abstracte și prost definite. De exemplu, computerele convenționale au dificultăți în înțelegerea vorbirii și recunoașterea fețelor oamenilor. În comparație, oamenii fac foarte bine aceste sarcini.

Au fost încercate multe structuri ale rețelelor neuronale, unele bazate pe imitarea a ceea ce vede biologul sub microscop, altele bazate pe o analiză mai matematică a problemei. Structura cea mai frecvent utilizată este arătată în Fig. 26-5. Această rețea neuronală este formată în trei straturi, numite stratul de intrare, stratul ascuns și stratul de ieșire. Fiecare strat este format din unul sau mai multe noduri, reprezentate în această diagramă de mici cercuri. Liniile dintre noduri indică fluxul de informații de la un nod la altul. În acest tip particular de rețea neuronală, informațiile curg numai de la intrare la ieșire (adică de la stânga la dreapta). Alte tipuri de rețele neuronale au legături mai complexe, cum ar fi căile de feedback.

Figura 26-5 Arhitectura rețelei neuronale.

Aceasta este cea mai obișnuită structură pentru rețele neuronale: trei straturi cu interconectare completă. Nodurile stratului de intrare sunt pasive, nefăcând nimic, dar retransmit valorile de la singura lor intrare la ieșirile lor multiple. În comparație, nodurile straturilor ascuns și de ieșire sunt active, modificând semnalul conform cu fig. 26-6. Acțiunea acestei rețele neuronale este determinată de ponderile aplicate în nodurile ascunse și de ieșire.

Nodurile stratului de intrare sunt pasive, ceea ce înseamnă că nu modifică datele. Ele primesc o singură valoare la intrarea lor și duplică valoarea la ieșirile lor multiple. În comparație, nodurile stratului ascuns și ale ieșirii sunt active. Asta înseamnă că modifică datele așa cum se arată în Fig. 26-6. Variabilele: X11,X12X115 dețin datele care urmează să fie evaluate (vezi Fig. 26-5). De ex., ele pot fi valori de pixeli dintr-o imagine, eșantioane dintr-un semnal audio, prețuri de pe bursă pe zile succesive etc. Acestea pot fi, de asemenea, rezultatul unui alt algoritm, cum ar fi clasificatorii din exemplul nostru de detectare a cancerului: diametru, luminozitate, ascuțimea muchiei, etc.

Fiecare valoare din stratul de intrare este duplicată și trimisă tuturor nodurilor ascunse. Aceasta se numește o structură complet interconectată. După cum se arată în Fig. 26-6, valorile care intră într-un nod ascuns sunt înmulțite cu ponderi, un set de numere predeterminate stocate în program. Intrările ponderate sunt apoi adunate pentru a produce un singur număr. Acest lucru este arătat în diagramă prin simbolul Σ. Înainte de a părăsi nodul, acest număr este trecut printr-o funcție matematică neliniară numită sigmoid. Aceasta este o curbă în formă de "s" care limitează ieșirea nodului. Adică, intrarea în sigmoid este o valoare între -∞ și + ∞, în timp ce ieșirea sa poate fi numai între 0 și 1.

Ieșirile din stratul ascuns sunt reprezentate în diagrama de flux (Fig. 26-5) prin variabilele: X21,X22,X23 și X24. La fel ca înainte, fiecare dintre aceste valori este duplicată și aplicată stratului următor. Nodurile active ale stratului de ieșire combină și modifică datele pentru a produce cele două valori de ieșire ale acestei rețele, X31 și X32.

Rețelele neuronale pot avea orice număr de straturi și orice număr de noduri pe strat. Cele mai multe aplicații utilizează structura celor trei straturi cu un maximum de câteva sute de noduri de intrare. Stratul ascuns este de obicei de aproximativ 10% din dimensiunea stratului de intrare. În cazul detectării țintei, stratul de ieșire necesită un singur nod. Ieșirea acestui nod este cu prag pentru a furniza o indicație pozitivă sau negativă a prezenței sau absenței țintei în datele de intrare.

Tabelul 26-1 este un program de realizare a diagramei flux din Fig. 26-5. Punctul cheie este că această arhitectură este foarte generalizată și foarte simplă. Aceeași diagramă flux poate fi utilizată pentru multe probleme, indiferent de particularitățile lor. Abilitatea rețelei neuronale de a furniza manipularea datelor utile constă în selectarea corectă a ponderilor. Aceasta este o deviere dramatică de la procesarea convențională a informațiilor în care soluțiile sunt descrise în proceduri pas cu pas.

De exemplu, imaginați o rețea neuronală pentru recunoașterea obiectelor într-un semnal sonar. Să presupunem că 1000 de eșantioane din semnal sunt stocate pe un computer. Cum determină computerul dacă aceste date reprezintă un submarin, o balenă, un munte submarin sau nimic deloc? DSP convențional ar aborda această problemă cu matematică și algoritmi, cum ar fi corelarea și analiza spectrului de frecvență. Cu o rețea neuronală, cele 1000 de eșantioane sunt pur și simplu introduse în stratul de intrare, rezultând valori ce apar din stratul de ieșire. Prin selectarea ponderilor potrivite, ieșirea poate fi configurată pentru a raporta o gamă largă de informații. De exemplu, ar putea exista rezultate pentru: submarin (da/nu), balenă (da/nu), munte submarin (da/nu) etc.

Figura 26-6 Nod activ al rețelei neuronale.

Aceasta este o diagramă flux a nodurilor active utilizate în straturile ascuns și de ieșire al rețelei neuronale. Fiecare intrare este multiplicată cu o pondere (valorile wN) și apoi însumate. Aceasta produce o singură valoare care este trecută printr-o funcție neliniară în formă de "s" numită sigmoid. Funcția sigmoid este prezentată mai în detaliu în Fig. 26-7.

Cu alte ponderi, ieșirile ar putea clasifica obiectele ca: metal sau nemetal, biologic sau nebiologic, inamic sau aliat, etc. Nici un algoritm, nici o regulă, nici o procedură; doar o relație între intrare și ieșire dictată de valorile ponderilor selectate.

Figura 26-7 Funcția sigmoid și derivata sa.
Ecuațiile 26-1 și 26-2 generează aceste curbe.

Figura 26-7a prezintă o privire mai atentă asupra funcției sigmoid, descrisă matematic prin ecuația:

Ecuația 26-1 Funcția sigmoid.

Aceasta este utilizată în rețele neuronale ca un prag neted. Această funcție este trasată în fig. 26-7a.

Forma exactă a sigmoidului nu este importantă, ci doar că este un prag neted. Pentru comparație, un prag simplu produce o valoare de unu atunci când x > 0 și o valoare de zero când x < 0. Sigmoidul efectuează aceeași funcție de prag de bază, dar este, de asemenea, diferențiabilă, așa cum se arată în Fig. 26-7b. În timp ce derivata nu este utilizată în diagrama flux (Fig. 25-5), ea este o parte critică a găsirii ponderilor adecvate de utilizat. Mai multe despre acest lucru în curând. Un avantaj al sigmoidului este că există o scurtătură pentru calculul valorii derivatei sale:

Ecuația 26-2 Prima derivată a funcției sigmoid.

Aceasta este calculată prin utilizarea valorii însăși a funcției sigmoid.

De exemplu, dacă x = 0, atunci s(x) = 0,5 (cu Ec. 26-1) și se calculează prima derivată: s'(x) = 0,5 (1 - 0,5) = 0,25. Acesta nu este un concept critic, ci doar un truc pentru a face algebra mai scurtă.

Rețeaua neuronală nu ar fi mai flexibilă dacă sigmoidul ar putea fi ajustat la stânga sau la dreapta, făcându-l centrat pe o altă valoare decât x = 0? Răspunsul este da, iar majoritatea rețelelor neuronale permit acest lucru. Este foarte simplu de implementat; un nod suplimentar este adăugat la stratul de intrare, cu intrarea lui având întotdeauna o valoare de unu. Când acesta se înmulțește cu ponderile stratului ascuns, oferă o polarizare (offset DC) pentru fiecare sigmoid. Această suplimentare este denumită nod de polarizare. Este tratat la fel ca celelalte noduri, cu excepția intrării constante.

Pot fi realizate rețele neuronale fără o neliniaritate sigmoid sau similară? Pentru a răspunde la aceasta, uitați-vă la rețeaua de trei straturi din Fig. 26-5. Dacă sigmoizii nu erau prezenți, cele trei straturi s-ar prăbuși în numai două straturi. Cu alte cuvinte, însumările și ponderile straturilor ascuns și de ieșire ar putea fi combinate într-un singur strat, rezultând doar o rețea cu două straturi.

Secțiunea următoare: De ce funcționează?