Retele neuronale artificiale

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare
Structura unei rețele neuronale artificiale

În domeniul „ învățării automate , rețeaua neuronală artificială (în engleză artificial neural network, prescurtată ANN sau chiar ca NN) este un model de calcul format din„ neuroni ”artificiali, vag inspirat de simplificarea unei rețele neuronale biologice .

Aceste modele matematice sunt prea simple pentru a înțelege rețelele neuronale biologice [1] [2] , dar sunt folosite pentru a încerca să rezolve probleme de inginerie a inteligenței artificiale , precum cele care apar în diferite domenii tehnologice (în electronică , informatică , simulare , și alte discipline).

O rețea neuronală artificială poate fi creată atât prin programe software , cât și prin hardware dedicat (DSP, Digital Signal Processing ). Această ramură poate fi utilizată împreună cu logica fuzzy .

Istorie

Marea varietate de modele nu poate ignora elementul constitutiv de bază, neuronul artificial propus de WS McCulloch și Walter Pitts într-o celebră lucrare din 1943 : Un calcul logic al ideilor imanente în activitatea nervoasă a activității nervoase), [3] care schematizează un prag liniar combinator, cu mai multe date binare la intrare și o singură date binare la ieșire: un număr adecvat de astfel de elemente, conectate în așa fel încât să formeze o rețea, este capabil să calculeze funcții booleene simple.

Primele ipoteze de învățare au fost introduse de DO Hebb în cartea din 1949 : Organizația Comportamentului [4], în care sunt propuse legături cu modele cerebrale complexe.

În 1958 , J. Von Neumann în lucrarea sa Computerul și creierul , [5] examinează soluțiile propuse de autorii anteriori, subliniind precizia redusă pe care o aveau aceste structuri pentru a efectua operații complexe.

În același an, Frank Rosenblatt în revista Psychological review , [6] introduce prima schemă de rețea neuronală, numită Perceptron ( perceptron ), precursorul rețelelor neuronale actuale, pentru recunoașterea și clasificarea formelor, pentru a oferi o interpretare a organizarea generală a sistemelor biologice. Prin urmare, modelul probabilistic al lui Rosenblatt vizează analiza, sub formă matematică, a unor funcții precum stocarea informațiilor și influența acestora asupra recunoașterii tiparelor; constituie un avans decisiv în ceea ce privește modelul binar al lui McCulloch și Pitts, deoarece greutățile sale sinaptice sunt variabile și, prin urmare, perceptronul este capabil să învețe.

Lucrarea lui Rosenblatt a stimulat o serie de studii și cercetări care au durat un deceniu și au stârnit un interes puternic și așteptări considerabile în comunitatea științifică, destinate totuși să fie considerabil reduse atunci când în 1969 Marvin Minsky și Seymour A. Papert , în lucrarea Perceptrons. O Introducere în Geometria Computațională , [7] arată limitele operaționale ale rețelelor simple cu două straturi bazate pe perceptor și demonstrează imposibilitatea rezolvării multor clase de probleme în acest mod, adică a tuturor celor care nu sunt caracterizate de separabilitatea liniară a soluții: acest tip de rețea neuronală nu este suficient de puternic; nici măcar nu este capabil să calculeze funcția exclusivă sau ( XOR ). Datorită acestor limitări, perioada de euforie datorată primelor rezultate ale ciberneticii (așa cum se numea în anii 1960 ) este urmată de o perioadă de neîncredere în timpul căreia toate cercetările din acest domeniu nu mai primesc nicio finanțare din partea guvernului Statelor Unite. America ; de fapt, cercetarea pe rețele tinde să stagneze de peste un deceniu, iar entuziasmul inițial este mult diminuat.

Contextul matematic pentru formarea rețelelor MLP ( Multi-Layers Perceptron ) a fost stabilit de matematicianul american Paul Werbos în teza sa de doctorat din 1974 ( dr .). Nu s-a acordat prea multă greutate muncii sale, atât de puternică a fost respingerea demonstrată de Minsky și Papert cu ani mai devreme și doar intervenția lui JJ Hopfield , în 1982 , care într-una din lucrările sale studiază modele foarte generale de recunoaștere a tiparelor, s-a opus direct lui Minsky. refutare, redeschizând astfel deschiderile pentru cercetare în acest domeniu.

Una dintre cele mai populare și eficiente metode de instruire a acestei clase de rețele neuronale se numește algoritmul propagării înapoi a erorilor („backpropagation error”), propus în 1986 de David E. Rumelhart , G. Hinton și RJ Williams, care sistematic modifică greutățile conexiunilor dintre noduri, astfel încât răspunsul rețelei să se apropie din ce în ce mai mult de cel dorit. Această lucrare a fost produsă prin preluarea modelului creat de Werbos. Algoritmul de propagare înapoi (BP) este un exemplu de tehnică de învățare, care constituie o generalizare a algoritmului de învățare a perceptorului dezvoltat de Rosenblatt la începutul anilor 1960. Prin intermediul acestei tehnici, a fost posibil, după cum sa menționat, să se trateze numai aplicațiile care pot fi caracterizate ca funcții booleene separabile liniar.

Algoritmul de învățare se bazează pe metoda de coborâre în gradient care permite găsirea unui minim local al unei funcții într-un spațiu N- dimensional . Ponderile asociate cu conexiunile dintre straturile de neuroni sunt inițializate la valori mici (adică mult mai mici decât valorile reale pe care le vor asuma apoi) și aleatorii, iar apoi regula de învățare este aplicată prin prezentarea modelelor de probă în rețea . Aceste rețele neuronale sunt apoi capabile să se generalizeze în mod adecvat, adică să ofere răspunsuri plauzibile la intrările pe care nu le-au văzut niciodată.

Antrenarea unei rețele neuronale de tip BP are loc în două etape diferite: trecere înainte și trecere înapoi . În prima fază vectorii de intrare sunt aplicați nodurilor de intrare cu o propagare directă a semnalelor prin fiecare nivel al rețelei ( forward-pass ). În această fază, valorile ponderilor sinaptice sunt fixe. În a doua fază, răspunsul rețelei este comparat cu ieșirea dorită obținând semnalul de eroare. Eroarea calculată este propagată în sens invers față de cea a conexiunilor sinaptice. În cele din urmă, greutățile sinaptice sunt modificate pentru a minimiza diferența dintre ieșirea curentă și ieșirea dorită ( back-pass ).

Acest algoritm permite să depășească limitele perceptorului și să rezolve problema separabilității neliniare (și, prin urmare, să calculeze funcția XOR), marcând relansarea definitivă a rețelelor neuronale, dovadă fiind și varietatea largă de aplicații comerciale: în prezent BP reprezintă un algoritm utilizat pe scară largă în multe câmpuri de aplicații.

Fundamente

O rețea neuronală artificială este o interconectare a unui grup de noduri numite neuroni

O rețea neuronală artificială (ANN " Artificial Neural Network " în engleză), numită în mod normal doar o "rețea neuronală" (NN " Neural Network " în engleză), este un model matematic / computerizat de calcul bazat pe rețele neuronale biologice. Acest model constă dintr-un grup de interconectări de informații alcătuite din neuroni artificiali și procese care utilizează o abordare de conexionism computațional. În majoritatea cazurilor, o rețea neuronală artificială este un sistem adaptiv care își schimbă structura pe baza informațiilor externe sau interne care curg prin rețea însăși în faza de învățare.

În termeni practici, rețelele neuronale sunt structuri neliniare ale datelor statistice organizate ca instrumente de modelare. Ele pot fi utilizate pentru a simula relații complexe între intrări și ieșiri pe care alte funcții analitice nu le pot reprezenta.

O rețea neuronală artificială primește semnale externe pe un strat de noduri de intrare (unități de procesare), fiecare dintre acestea fiind conectat cu numeroase noduri interne, organizate în mai multe straturi. Fiecare nod prelucrează semnalele primite și transmite rezultatul către nodurile ulterioare.

Teoria și paradigmele învățării

Analiza sistemului de învățare al unei rețele neuronale

Conceptul de rețea neuronală apare deoarece este o funcție este definit ca o compoziție a altor funcții , care la rândul său poate fi definit în continuare ca o compoziție a altor funcții. Aceasta poate fi reprezentată în mod convenabil ca o structură de rețea, cu săgeți care descriu dependențele dintre variabile. O reprezentare larg utilizată este suma ponderată neliniară, unde , unde este este o funcție predefinită, cum ar fi tangenta hiperbolică . Va fi convenabil ca următoarele să se refere la un set de funcții ca vector .

Figura 1: Diagrama de dependență a unei rețele neuronale „feedforward”

Figura 1 exemplifică o descompunere a funcției , cu dependențe între variabilele indicate de săgeți. Acestea pot fi interpretate în două moduri:

  1. Primul punct de vedere este vizualizarea funcțională: intrarea este transformat într-un vector tridimensional, care este apoi transformat într-un vector bidimensional , care este apoi transformat în cele din urmă în . Această viziune este întâlnită cel mai frecvent în contextul optimizării.
  2. Al doilea punct de vedere este viziunea probabilistică: variabila aleatorie depinde de variabila aleatorie , care depinde de , care la rândul său depinde de variabila aleatorie . Această vizualizare este întâlnită cel mai frecvent în contextul modelelor grafice.

Cele două puncte de vedere sunt în mare măsură echivalente. În ambele cazuri, pentru această arhitectură de rețea specială, componentele straturilor individuale sunt independente una de cealaltă (de exemplu, componentele sunt independenți unul de celălalt, având în vedere intrarea lor ). Aceasta, desigur, permite un anumit grad de paralelism în construcția sistemului.

Figura 2: Diagrama de stare și dependență a rețelelor neuronale recurente

Rețelele precum cele de mai sus sunt denumite în mod obișnuit „feedforward” deoarece a lor este un grafic aciclic direct. Rețelele cu bucle în ele sunt denumite în mod obișnuit rețele recurente. Astfel de rețele sunt descrise în mod obișnuit așa cum se arată în partea superioară a figurii 2, unde funcția se arată ca dependentă de ea însăși. Cu toate acestea, există o dependență temporală implicită care nu poate fi demonstrată. Aceasta înseamnă practic că valoarea la un moment dat în timp depinde de valorile la momentul zero sau la unul sau mai multe alte puncte de timp. Modelul graficului din partea de jos a Figura 2 ilustrează cazul în care valoarea lui la momentul depinde doar de valoarea sa anterioară.

Cu toate acestea, cea mai interesantă funcționalitate a acestor funcții, ceea ce a atras interesul și studiul pentru majoritatea rețelelor neuronale, este posibilitatea de a învăța, care în practică înseamnă următoarele:

i sa dat o sarcină specifică de rezolvat și o clasă de funcții , învățare înseamnă folosirea unui set de observații pentru a găsi care rezolvă problema într-un mod optim.

Aceasta implică definirea unei funcții de cost astfel încât, pentru soluția optimă nicio soluție nu costă mai puțin decât costul soluției optime.

Funcția de cost este un concept important în învățare, deoarece este o măsură a cât de departe de noi este soluția optimă la problema pe care vrem să o rezolvăm. Deci, există o serie de algoritmi de învățare care caută spațiul pentru soluții pentru a găsi o funcție care are cel mai mic cost posibil.

Pentru aplicațiile în care soluția depinde de unele date, costul trebuie să fie în mod necesar o funcție a observațiilor.

Deși este posibil să se definească o funcție de cost ad hoc pentru unele rețele, o anumită funcție de cost poate fi adesea utilizată pentru că are proprietățile dorite (de exemplu, convexitate) sau pentru că provine dintr-o anumită formulare a problemei (de exemplu, în o formulare probabilistică, probabilitatea posterioară a modelului poate fi utilizată ca inversă a costului). În cele din urmă, funcția de cost va depinde de sarcină.

Paradigme de învățare

Există trei paradigme majore de învățare, fiecare corespunzând unei anumite sarcini abstracte de învățare. Acestea sunt învățarea supravegheată, învățarea nesupravegheată și învățarea de consolidare. De obicei, un tip de arhitectură de rețea poate fi utilizat în oricare dintre aceste sarcini.

  • o învățare supravegheată ( învățare supravegheată), dacă aveți un set de date pentru formare (sau set de formare) care cuprinde exemple tipice de intrări cu ieșirile corespunzătoare corespunzătoare lor: rețeaua în acest fel poate învăța să deducă relația care le leagă. Ulterior, rețeaua este instruită prin intermediul unui algoritm adecvat (de obicei, propagarea înapoi, care este tocmai un algoritm de învățare supravegheat), care utilizează astfel de date pentru a modifica ponderile și alți parametri ai rețelei în sine, astfel încât să reducă la minimum eroarea prognozată referitoare la setul de antrenament. Dacă instruirea are succes, rețeaua învață să recunoască relația necunoscută care leagă variabilele de intrare de cele de ieșire și, prin urmare, este capabilă să facă predicții chiar și atunci când ieșirea nu este cunoscută a priori; cu alte cuvinte, scopul final al învățării supravegheate este de a prezice valoarea de ieșire pentru fiecare valoare de intrare validă, bazată doar pe un număr limitat de exemple de potrivire (adică, perechi de valori de intrare-ieșire ). Pentru a face acest lucru, rețeaua trebuie să fie în cele din urmă echipată cu o capacitate adecvată de generalizare, cu referire la cazuri necunoscute acesteia. Acest lucru vă permite să rezolvați probleme de regresie sau clasificare.
  • o învățare nesupravegheată ( învățare nesupravegheată), bazată pe algoritmi de antrenament care modifică greutățile făcând referire doar la un set de date care include doar variabilele de intrare. Acești algoritmi încearcă să grupeze datele de intrare și, prin urmare, să identifice clusterele adecvate reprezentative ale datelor în sine, folosind de obicei metode topologice sau probabilistice. Învățarea fără supraveghere este, de asemenea, utilizată pentru a dezvolta tehnici de compresie a datelor.
  • o învățare de întărire ( învățare de întărire), în care un algoritm adecvat își propune să identifice un anumit modus operandi, pornind de la un proces de observare a mediului extern; fiecare acțiune are un impact asupra mediului, iar mediul produce un feedback care ghidează algoritmul însuși în procesul de învățare. Această clasă de probleme postulează un agent, înzestrat cu percepție, care explorează un mediu în care întreprinde o serie de acțiuni. Mediul în sine oferă un stimulent sau un factor de descurajare ca răspuns, după caz. Algoritmii pentru învățarea de consolidare încearcă în cele din urmă să stabilească o politică care vizează maximizarea stimulentelor cumulative primite de agent în cursul explorării sale a problemei. Învățarea prin întărire diferă de învățarea supravegheată prin faptul că nu sunt prezentate niciodată perechi intrare-ieșire de exemple cunoscute și nici nu există nicio corecție explicită a acțiunilor suboptimale. Mai mult, algoritmul este axat pe performanța online, ceea ce implică un echilibru între explorarea situațiilor necunoscute și exploatarea cunoștințelor actuale.

Învățarea ebraică

Algoritmul de învățare ebraică (1984) se bazează pe principiul simplu că, dacă doi neuroni trag simultan, interconectarea lor trebuie consolidată.

unde este ,

unde este este intrare e este rata de învățare .

Regula lui Hebb este după cum urmează: eficacitatea unei anumite sinapse se schimbă dacă și numai dacă există o activitate simultană intensă a celor doi neuroni, cu o transmisie ridicată de intrare în sinapsă în cauză.

Exemplu de procedură:

  1. Inițializați greutățile la zero.
  2. Pregătiți un model de intrare care se potrivește cu un model de ieșire cunoscut.
  3. calculati și apoi actualizați .
  4. Repetați pașii 2 și 3 pentru fiecare model cunoscut

În acest fel, conexiunile pot deveni mai puternice. Conexiunile sunt considerate consolidate atunci când unitățile presinaptice și postsinaptice sunt de acord, altfel sunt slăbite. Considerăm funcțiile bipolare (-1,1) în loc de boolean (0,1).

Teorie și funcționare

Funcționarea unei rețele neuronale feedforward

Rețelele neuronale se bazează în principal pe simularea neuronilor artificiali conectați corespunzător. Modelul prezentat în figură este cel propus de McCulloch și Pitts.

Schema unui neuron artificial

Neuronii menționați anterior primesc stimuli de intrare și îi procesează. Procesarea poate fi, de asemenea, foarte sofisticată, dar într-un caz simplu putem crede că intrările unice sunt înmulțite cu o valoare adecvată numită greutate, se adaugă rezultatul înmulțirilor și dacă suma depășește un anumit prag, neuronul este activat prin activarea Ieșire. Greutatea indică eficacitatea sinaptică a liniei de intrare și servește la cuantificarea importanței acesteia, o intrare foarte importantă va avea o greutate mare, în timp ce o intrare care nu este utilă pentru procesare va avea o greutate mai mică. Ne putem gândi că, dacă doi neuroni comunică între ei folosind mai multe conexiuni, atunci aceste conexiuni vor avea o greutate mai mare, până când vor fi create conexiuni între intrarea și ieșirea rețelei care exploatează „căi preferențiale”. Cu toate acestea, este greșit să credem că rețeaua ajunge să producă o singură cale de conexiune: de fapt, toate combinațiile vor avea o anumită greutate și, prin urmare, vor contribui la conexiunea de intrare / ieșire.

Modelul din figură reprezintă o rețea neuronală clasică complet conectată.

Exemplu de rețea neuronală complet conectată

Neuronii individuali sunt conectați la gama ulterioară de neuroni pentru a forma o rețea de neuroni. În mod normal, o rețea este formată din trei straturi. În primul avem intrările (I), acest strat este preocupat de tratarea intrărilor pentru a le adapta la cerințele neuronilor. Dacă semnalele de intrare sunt deja procesate, este posibil să nu existe nici măcar. Al doilea strat este cel ascuns (H, ascuns ), este preocupat de procesarea propriu-zisă și poate fi, de asemenea, compus din mai multe coloane de neuroni. Al treilea strat este stratul de ieșire (O) și are grijă să colecteze rezultatele și să le adapteze la solicitările următorului bloc al rețelei neuronale. Aceste rețele pot fi, de asemenea, foarte complexe și implică mii de neuroni și zeci de mii de conexiuni.

Pentru a construi structura unei rețele neuronale multistrat, acestea pot fi inserate straturi ascunse. Eficacitatea generalizării unei rețele neuronale multistrat depinde în mod evident de instruirea pe care a primit-o și de dacă a reușit sau nu să introducă un minim local bun.

Algoritm de propagare înapoi a erorilor

Algoritmul propagării înapoi a erorilor ( propagarea înapoi ) este utilizat în învățarea cu supraveghere. Permite modificarea greutăților conexiunilor în așa fel încât o anumită funcție de eroare E să fie minimizată. Această funcție depinde de h-th vectorul de ieșire returnat de rețea, având în vedere vectorul h de intrare și de h-a vectorul de ieșire pe care ni-l dorim (care face parte din setul de antrenament ). Setul de antrenament este deci un set de N perechi de vectori , cu . Funcția de eroare care trebuie minimizată poate fi scrisă ca:

unde indicele k reprezintă valoarea corespunzătoare celui de-al treilea neuron de ieșire. E (w) este o funcție dependentă de greutăți (care, în general, variază în timp), pentru a o minimiza, puteți utiliza algoritmul coborârii gradientului (coborârea gradientului). Algoritmul începe de la un punct generic și calculați gradientul . Gradientul dă direcția în care să se deplaseze de-a lungul căreia există creșterea maximă (sau scăderea dacă iau în considerare ). Odată ce direcția este definită, aceasta se deplasează la o distanță predefinit a priori și se găsește un punct nou pe care se calculează din nou gradientul. Continuați iterativ până când gradientul este zero. Algoritmul de propagare înapoi poate fi împărțit în doi pași:

  • Trecere înainte : intrarea dată rețelei este propagată la nivelul următor și așa mai departe la următoarele niveluri (fluxul de informații se deplasează înainte, adică înainte ). Prin urmare, calculăm E (w), eroarea comisă.
  • Trecere înapoi : eroarea făcută de rețea este propagată înapoi ( înapoi ) și ponderile sunt actualizate corespunzător.

Pașii logici pentru formarea unei rețele neuronale cu învățare supravegheată sunt după cum urmează:

  • creați un set de modele de intrare și setul aferent de modele de ieșire dorite;
  • inițializați greutățile rețelei neuronale (conexiunile dintre neuroni) la valori aleatorii, mici în comparație cu valorile viitoare pe care le vor asuma și cu norma zero;
  • ciclul de învățare (iese din acest ciclu numai atunci când eroarea generală este mai mică decât cea stabilită sau după un anumit număr de iterații):
    • Ciclul de avans (de la stratul de intrare la stratul de ieșire):
      • extrageți un model de intrare aleatoriu din cele disponibile: [8]
      • calculați valoarea tuturor neuronilor ulteriori (însumarea produselor);
      • deduceți valoarea pragului de activare a neuronului din rezultat (dacă valoarea pragului nu a fost deja simulată prin adăugarea unui neuron de intrare fix la valoarea 1.0);
      • filtrarea ieșirii neuronului prin aplicarea unei funcții logistice pentru ca această valoare să devină intrarea următorului neuron;
    • comparați rezultatul obținut din rețea cu modelul de ieșire referitor la intrarea introdusă și obțineți eroarea curentă a rețelei;
    • ciclu de propagare înapoi (de la stratul de ieșire la stratul de intrare):
      • calculați corecția care trebuie făcută la greutăți în conformitate cu regula de localizare minimă aleasă;
      • aplică corectarea greutăților stratului;
Vedere schematică a modului în care funcționează algoritmul. Există două valuri de informații, unul înainte, celălalt înapoi, de aceea algoritmul se numește propagare înapoi, corecțiile merg înapoi de fiecare dată. [9]

Pentru instruirea rețelelor neuronale profunde, folosind seturi de date foarte mari, coborârea gradientului clasic este prohibitivă din punct de vedere computerizat, prin urmare, în optimizarea parametrilor modelului , algoritmul descendent al gradientului stochastic este de obicei utilizat.

Tipuri de rețele neuronale

Rețelele Hopfield

Pictogramă lupă mgx2.svg Același subiect în detaliu: rețeaua Hopfield .

În 1982 , fizicianul John J. Hopfield a publicat un articol fundamental în care a prezentat un model matematic cunoscut în mod obișnuit sub numele de rețeaua Hopfield: această rețea se distinge prin „apariția spontană a unor noi capacități de calcul din comportamentul colectiv al unui număr mare de elemente de elaborare ". Proprietățile colective ale modelului produc memorie asociativă pentru recunoașterea configurațiilor corupte și recuperarea informațiilor lipsă.

În plus, Hopfield consideră că orice sistem fizic poate fi considerat un dispozitiv de memorie potențial, dacă are un anumit număr de stări stabile, care acționează ca un atractiv pentru sistemul în sine. Pe baza acestei considerații, el continuă să formuleze teza conform căreia stabilitatea și localizarea acestor atractori sunt proprietăți spontane ale sistemelor constituite, după cum sa menționat, de cantități considerabile de neuroni care se interacționează reciproc.

Aplicațiile rețelelor Hopfield se referă în principal la realizarea de memorii asociative, rezistente la alterarea condițiilor de funcționare și la soluționarea problemelor de optimizare combinatorie. Din punct de vedere structural, rețeaua Hopfield constituie o rețea neuronală recurentă simetrică, a cărei convergență este garantată.

O rețea recurentă este un model neuronal în care există un flux bidirecțional de informații; cu alte cuvinte, în timp ce în rețelele feedforward propagarea semnalelor are loc numai, continuu, în direcția care duce de la intrări la ieșiri, în rețelele recurente această propagare se poate manifesta și de la un strat neuronal ulterior la unul anterior sau între neuroni aparținând aceluiași strat și chiar între un neuron și el însuși.

Un exemplu de utilizare a rețelelor Hopfield. În acest exemplu, „provocarea” este „găsirea” celui mai apropiat număr de fiecare dată când sistemul este repornit.

Rețelele Elman

Un exemplu semnificativ și bine cunoscut al unei rețele recurente simple se datorează lui Jeffrey L. Elman ( 1990 ). Constituie o variație pe tema perceptronului multistrat, cu exact trei straturi și adăugarea unui set de neuroni „contextuali” în stratul de intrare. Conexiunile retroactive se propagă de la stratul intermediar (și ascuns) la aceste unități contextuale, cărora li se atribuie o greutate constantă egală cu unitatea.

În fiecare moment, intrările se propagă în modul tradițional și tipic al rețelelor de feed-forward, inclusiv aplicarea algoritmului de învățare (de obicei propagarea înapoi ). Conexiunile retroactive fixe au ca efect păstrarea unei copii a valorilor anterioare ale neuronilor intermediari, deoarece acest flux are loc întotdeauna înainte de faza de învățare.

În acest fel, rețeaua Elman ia în considerare starea sa anterioară, care îi permite să efectueze sarcini de predicție a secvenței de timp care sunt greu la îndemâna perceptronilor convenționali multistrat.

Hărți autoorganizate sau rețele SOM ( hărți autoorganizabile )

Pictogramă lupă mgx2.svg Același subiect în detaliu: Harta auto-organizatoare .

Infine, un ultimo interessante tipo di rete è costituita dalla cosiddetta mappa auto-organizzante o rete SOM ( Self-Organizing Map ). Tale innovativo tipo di rete neurale è stata elaborata da Teuvo Kohonen dell'Università Tecnologica di Helsinki ; il suo algoritmo d'apprendimento è senza dubbio una brillante formulazione di apprendimento non supervisionato, e ha dato luogo a un gran numero di applicazioni nell'ambito dei problemi di classificazione. Una mappa o rete SOM è basata essenzialmente su un reticolo o griglia di neuroni artificiali i cui pesi sono continuamente adattati ai vettori presentati in ingresso nel relativo insieme di addestramento. Tali vettori possono essere di dimensione generica, anche se nella maggior parte delle applicazioni essa è piuttosto alta. Per ciò che riguarda le uscite della rete, al contrario, ci si limita di solito ad una dimensione massima pari a tre, il che consente di dare luogo a mappe 2D o 3D .

In termini più analitici, l'algoritmo può essere agevolmente descritto, come accennato, nei termini di un insieme di neuroni artificiali, ciascuno con una precisa collocazione sulla mappa rappresentativa degli output , che prendono parte ad un processo noto come winner takes all (" Il vincitore piglia tutto "), al termine del quale il nodo avente un vettore di pesi più vicino ad un certo input è dichiarato vincitore, mentre i pesi stessi sono aggiornati in modo da avvicinarli al vettore in ingresso. Ciascun nodo ha un certo numero di nodi adiacenti. Quando un nodo vince una competizione, anche i pesi dei nodi adiacenti sono modificati, secondo la regola generale che più un nodo è lontano dal nodo vincitore, meno marcata deve essere la variazione dei suoi pesi. Il processo è quindi ripetuto per ogni vettore dell'insieme di training , per un certo numero, solitamente grande, di cicli. Va da sé che ingressi diversi producono vincitori diversi.

Operando in tal modo, la mappa riesce alfine ad associare i nodi d'uscita con i gruppi o schemi ricorrenti nell'insieme dei dati in ingresso. Se questi schemi sono riconoscibili, essi possono essere associati ai corrispondenti nodi della rete addestrata. In maniera analoga a quella della maggioranza delle reti neurali artificiali, anche la mappa o rete SOM può operare in due distinte modalità:

  • durante la fase di addestramento si costruisce la mappa, pertanto la rete si configura ed organizza tramite un processo competitivo. Alla rete deve essere fornito il numero più grande possibile di vettori in ingresso, tali da rappresentare fedelmente il tipo di vettore che le sarà eventualmente sottoposta nella seconda fase;
  • nel corso della seconda fase ogni nuovo vettore d'ingresso può essere velocemente classificato o categorizzato, collocandolo in automatico sulla mappa ottenuta nella fase precedente. Vi sarà sempre "un unico neurone vincente", quello il cui vettore dei pesi giace a minor distanza dal vettore appena sottoposto alla rete; tale neurone può essere determinato semplicemente calcolando la distanza euclidea tra i due vettori in questione.

Reti ad attrattori

In generale una ANN ( Attractor Neural Network ) è una rete di nodi (es: biologicamente ispirati), spesso interconnessi in modo ricorsivo, la cui dinamica nel tempo stabilisce un assestamento in un particolare modo di oscillazione . Questo modo di oscillazione può essere stazionario, variante nel tempo o di tipo stocastico ed è chiamato il suo ' attrattore '. In neuroscienza teorica diversi tipi di reti ad attrattori sono state associate a differenti funzioni, come: memoria , attenzione, condotta del moto e classificazione .

Più precisamente, una rete ad attrattori è una rete di N nodi connessi in modo che la loro intera dinamica diventi stabile in uno spazio D dimensionale, dove solitamente N>>D. Ciò assume che non vi sia più input dall'esterno del sistema. La stabilità nello stato ad attrattore indica l'esistenza di uno stato stabile in una qualche varietà algebrica (es: linea, cerchio, piano, toroide ).

Applicazioni e proprietà

Un'opera dell'artista Joseph Ayerle, che mostra Ornella Muti , calcolato da una Rete Neurale Artificiale. L'intelligenza artificiale era addestrata a "dipingere" come il pittore Raffaello Sanzio .

L'utilità dei modelli di rete neurale sta nel fatto che queste possono essere usate per comprendere una funzione utilizzando solo le osservazioni sui dati. Ciò è particolarmente utile nelle applicazioni in cui la complessità dei dati o la difficoltà di elaborazione rende la progettazione di una tale funzione impraticabile con i normali procedimenti di analisi manuale.

I compiti a cui le reti neurali sono applicate possono essere classificate nelle seguenti grandi categorie di applicazioni:

  • funzioni di approssimazione , o di regressione , tra cui la previsione di serie temporali e la modellazione;
  • classificazione, compresa la struttura e la sequenza di generici riconoscimenti, l'individuazione delle novità ed il processo decisionale;
  • l'elaborazione dei dati, compreso il "filtraggio" (eliminazione del rumore), il clustering , separazione di segnali e compressione .

Le aree di applicazione includono i sistemi di controllo (controllo di veicoli, controllo di processi), simulatori di giochi e processi decisionali ( backgammon , scacchi ), riconoscimento di pattern (sistemi radar , identificazione di volti, riconoscimento di oggetti, ecc), riconoscimenti di sequenze (riconoscimento di gesti, riconoscimento vocale , OCR ), diagnosi medica, applicazioni finanziarie, data mining , filtri spam per e-mail.

Pregi

Le reti neurali per come sono costruite lavorano in parallelo e sono quindi in grado di trattare molti dati. Si tratta in sostanza di un sofisticato sistema di tipo statistico dotato di una buona immunità al rumore ; se alcune unità del sistema dovessero funzionare male, la rete nel suo complesso avrebbe delle riduzioni di prestazioni ma difficilmente andrebbe incontro ad un blocco del sistema. I software di ultima generazione dedicati alle reti neurali richiedono comunque buone conoscenze statistiche; il grado di apparente utilizzabilità immediata non deve trarre in inganno, pur permettendo all'utente di effettuare subito previsioni o classificazioni, seppure con i limiti del caso. Da un punto di vista industriale, risultano efficaci quando si dispone di dati storici che possono essere trattati con gli algoritmi neurali. Ciò è di interesse per la produzione perché permette di estrarre dati e modelli senza effettuare ulteriori prove e sperimentazioni.

Difetti

I modelli prodotti dalle reti neurali, anche se molto efficienti, non sono spiegabili in linguaggio simbolico umano: i risultati vanno accettati "così come sono", da cui anche la definizione inglese delle reti neurali come "black box": in altre parole, a differenza di un sistema algoritmico, dove si può esaminare passo-passo il percorso che dall'input genera l'output, una rete neurale è in grado di generare un risultato valido, o comunque con una alta probabilità di essere accettabile, ma non è possibile spiegare come e perché tale risultato sia stato generato. Come per qualsiasi algoritmo di modellazione, anche le reti neurali sono efficienti solo se le variabili predittive sono scelte con cura.

Non sono in grado di trattare in modo efficiente variabili di tipo categorico (per esempio, il nome della città) con molti valori diversi. Necessitano di una fase di addestramento del sistema che fissi i pesi dei singoli neuroni e questa fase può richiedere molto tempo, se il numero dei record e delle variabili analizzate è molto grande. Non esistono teoremi o modelli che permettano di definire la rete ottima, quindi la riuscita di una rete dipende molto dall'esperienza del creatore.

Utilizzi

Le reti neurali vengono solitamente usate in contesti dove i dati possono essere parzialmente errati oppure dove non esistano modelli analitici in grado di affrontare il problema. Un loro tipico utilizzo è nei software di OCR , nei sistemi di riconoscimento facciale e più in generale nei sistemi che si occupano di trattare dati soggetti a errori o rumore. Esse sono anche uno degli strumenti maggiormente utilizzati nelle analisi di Data mining .

Le reti neurali vengono anche utilizzate come mezzo per previsioni nell'analisi finanziaria o meteorologica. Negli ultimi anni è aumentata notevolmente la loro importanza anche nel campo della bioinformatica nel quale vengono utilizzate per la ricerca di pattern funzionali e/o strutturali in proteine e acidi nucleici. Mostrando opportunamente una lunga serie di input (fase di training o apprendimento), la rete è in grado di fornire l'output più probabile. Negli ultimi anni inoltre sono in corso studi per il loro utilizzo nella previsione degli attacchi Epilettici (Analisi dei Dati provenienti dall' EEG ). Recenti studi hanno dimostrato buone potenzialità delle reti neurali in sismologia per la localizzazione di epicentri di terremoti e predizione della loro intensità.

Note

  1. ^ F. Crick, The recent excitement about neural networks , in Nature , vol. 337, n. 6203, 12 gennaio 1989, pp. 129–132, DOI : 10.1038/337129a0 . URL consultato il 27 novembre 2018 .
  2. ^ Encephalos Journal , su www.encephalos.gr . URL consultato il 27 novembre 2018 .
  3. ^ W. McCulloch, W. Pitts, A Logical Calculus of Ideas Immanent in Nervous Activity , Bulletin of Mathematical Biophysics, 1943, pp. 5:115–133. .Ripubblicato in: "A Logical Calculus of the Ideas Immanent in Nervous Activity" . With Walter Pitts . In: Bulletin of Mathematical Biophysics Vol 5, pp 115–133.
  4. ^ DO Hebb, The Organization of Behaviour , John Wiley & Sons, 1949, ISBN 978-0-471-36727-7 .
  5. ^ John Von Neumann, Il computer e il cervello , Bompiani, 1999.
  6. ^ Frank Rosenblatt, The Perceptron: A Probabilistic Model for Information Storage and Organization in the Brain , in Psychological Review, v65, No. 6 , Cornell Aeronautical Laboratory, 1958, pp. 386–408.
  7. ^ Marvin Minsky e Seymour Papert, Perceptrons. An Introduction to Computational Geometry , MIT Press, 1987, ISBN 978-0-262-63111-2 .
  8. ^ Al fine di avere un buon addestramento, le estrazioni vengono effettuate senza reinserimento: quando un pattern viene estratto, esso non partecipa alle estrazioni successive; dunque, di volta in volta, si pesca dall'insieme dei pattern non ancora estratti. Una volta che tutti i pattern vengono estratti, si può eventualmente ripetere il processo da zero, ripartendo dall'intero insieme di pattern di input.
  9. ^ Pires, JG (2012). “On the Applicability of Computational Intelligence in Transcription Network Modelling”. Thesis of Master of Science. Faculty of Applied Physics and Mathematics (Gdansk University of Technology): Gdansk, Poland. PDF: https://www.researchgate.net/publication/281836484_On_the_Applicability_of_Computational_Intelligence_in_Transcription_Network_Modelling

Bibliografia

  • Ernesto Burattini e Roberto Cordeschi, Intelligenza Artificiale , Roma, Carocci, ISBN 88-430-2011-0
  • Patarnello S., Le reti neuronali , Milano, Franco Angeli, 1991. ISBN 978-88-204-6819-4
  • Giampiero Fabbri e Raimondello Orsini, Reti neurali per le scienze economiche , Franco Muzzio editore, 1993. ISBN 88-7021-656-X
  • Meraviglia C., Le reti neurali nella ricerca sociale , Bologna, Il Mulino, 2001. ISBN 978-88-464-3044-1
  • Floreano D., Mattiussi C., Manuale sulle reti neurali , Bologna, Il Mulino, 2002. ISBN 978-88-15-08504-7
  • Pessa E., Statistica con le reti neurali , Roma, Di Renzo Editore, 2004. ISBN 978-88-8323-074-5
  • Gallo C., Reti neurali artificiali: teoria ed applicazioni finanziarie , 2007 Foggia, Università di Foggia.
  • Alessandro Mazzetti, Reti neurali artificiali , Apogeo, 1991, ISBN 88-7303-002-5 .
  • ( EN ) Amit, DJ, Modeling brain function , 1989 New York, NY: Cambridge University Press. ISBN 0-521-36100-1

Voci correlate

Altri progetti

Collegamenti esterni

Controllo di autorità LCCN ( EN ) sh90001937 · GND ( DE ) 4226127-2 · NDL ( EN , JA ) 01165604