Rețeaua neuronală Hopfield este o rețea neuronală complet conectată cu o matrice de conexiune simetrică. În procesul de funcționare, dinamica unor astfel de rețele converge (converge) către una dintre pozițiile de echilibru. Aceste poziții de echilibru sunt determinate în prealabil în procesul de învățare, sunt minime locale ale funcționalei numite energia rețelei (în cel mai simplu caz, minime locale ale unei forme pătratice definite negative pe un cub n-dimensional). O astfel de rețea poate fi folosită ca memorie auto-asociativă , ca filtru și, de asemenea, pentru rezolvarea unor probleme de optimizare . Spre deosebire de multe rețele neuronale care funcționează până când un răspuns este primit după un anumit număr de cicluri, rețelele Hopfield funcționează până la atingerea unui echilibru, când următoarea stare a rețelei este exact egală cu cea anterioară: starea inițială este o imagine de intrare, iar la echilibru se obţine o imagine de ieşire [1] .
Varianta sa este rețeaua neuronală Hamming .
Rețeaua neuronală Hopfield este proiectată în așa fel încât răspunsul său la „imaginile” de referință memorate să fie alcătuit din aceste imagini în sine, iar dacă imaginea este ușor distorsionată și aplicată la intrare, va fi restaurată și imaginea originală va fi fi primit sub forma unui răspuns. Astfel, rețeaua Hopfield realizează corectarea erorilor și a zgomotului.
Rețeaua Hopfield este cu un singur strat și constă din neuroni artificiali . Fiecare neuron al sistemului poate lua una dintre cele două stări la intrare și la ieșire (care este similară cu ieșirea unui neuron cu o funcție de activare de prag ):
Datorită naturii lor bipolare, rețelele neuronale Hopfield sunt uneori denumite spinuri .
Fiecare neuron este conectat la toți ceilalți neuroni. Interacțiunea neuronilor rețelei este descrisă prin expresia:
unde este un element al matricei de interacțiune , care constă din coeficienții de greutate a conexiunilor dintre neuroni. În procesul de învățare, se formează o matrice de ieșire care reține „imaginile” de referință - vectori binari N -dimensionali: , aceste imagini în timpul funcționării rețelei vor exprima răspunsul sistemului la semnalele de intrare sau, în caz contrar, - valorile finale a rezultatelor după o serie de iterații.
În rețeaua Hopfield, matricea de conexiune este simetrică ( ), iar elementele diagonale ale matricei sunt presupuse a fi egale cu zero ( ), ceea ce elimină efectul neuronului asupra lui însuși și este necesar pentru rețeaua Hopfield, dar nu este o condiție suficientă pentru stabilitate în procesul de funcționare a rețelei. Este suficient modul de funcționare asincron al rețelei. Astfel de proprietăți definesc o legătură strânsă cu substanțe fizice reale, numite ochelari de spin .
Matricea de interacțiuni este stocată pe neuronii înșiși sub formă de greutăți atunci când neuronii sunt conectați la alți neuroni.
Deci, de exemplu, dacă semnalul de intrare este definit de 10 parametri, atunci rețeaua neuronală Hopfield este formată dintr-un strat cu 10 neuroni. Fiecare neuron se conectează la toți ceilalți 9 neuroni, deci există 90 (10 x 9) conexiuni în rețea. Pentru fiecare conexiune se determină un factor de ponderare . Toate ponderile conexiunilor formează matricea de interacțiuni, care este completată în timpul procesului de învățare.
Antrenamentul rețelei constă în găsirea greutăților matricei de interacțiune în așa fel încât să rețină vectorii (imagini de referință care alcătuiesc „memoria” sistemului).
Calculul coeficienților se bazează pe următoarea regulă: pentru toate imaginile stocate , matricea de conexiune trebuie să satisfacă ecuația
deoarece în această condiție stările rețelei vor fi stabile - odată într-o astfel de stare, rețeaua va rămâne în ea.
Vectorii memorați trebuie să fie în formă binară. Calculul coeficienților de greutate se efectuează după următoarea formulă:
unde este dimensiunea vectorilor, este numărul de vectori de ieșire memorați, este numărul vectorului de ieșire memorat, este a i-a componentă a j-lea vector de ieșire memorat.
Această expresie poate deveni mai clară dacă observăm că matricea de greutate poate fi găsită calculând produsul exterior al fiecărui vector memorat cu el însuși și însumând matricele astfel obținute. Acest lucru poate fi scris ca
unde este vectorul i-lea coloană memorat.
Calculul acestor coeficienți de greutate se numește antrenament de rețea, care se efectuează doar pentru o singură epocă.
Algoritmul de învățare a rețelei Hopfield diferă semnificativ de algoritmii clasici de învățare perceptron , cum ar fi metoda de corectare a erorilor sau metoda de retropropagare a erorilor . Diferența constă în faptul că, în loc de aproximarea succesivă a stării dorite cu calculul erorii, toți coeficienții matricei sunt calculați după o singură formulă, într-un ciclu, după care rețeaua este imediat gata de funcționare.
Unii autori referă rețeaua Hopfield la învățarea nesupravegheată . Dar acest lucru nu este adevărat, deoarece învățarea nesupravegheată implică absența informațiilor despre clasele cărora ar trebui să fie alocați stimulii. Pentru rețeaua Hopfield, fără această informație, este imposibilă ajustarea coeficienților de greutate, așa că aici putem spune doar că o astfel de rețea poate fi clasificată ca o rețea de optimizare (filtru). O caracteristică distinctivă a filtrelor este că matricea de ponderi este ajustată de un algoritm determinist o dată pentru totdeauna, iar apoi ponderile nu mai sunt modificate. Acest lucru poate fi convenabil pentru implementarea fizică a unui astfel de dispozitiv, deoarece este un ordin de mărime mai dificil de implementat un dispozitiv cu coeficienți de greutate variabili la nivel de circuit. Un exemplu de filtru fără feedback este algoritmul CC4 (clasificarea Cornel), creat de S.Kak.
Există feedback-uri în rețeaua Hopfield și, prin urmare, problema de stabilitate trebuie rezolvată. Greutățile dintre neuroni dintr-o rețea Hopfield pot fi privite ca o matrice de interacțiune . Cohen și Grossberg [2] au arătat că o rețea de feedback este stabilă dacă matricea sa este simetrică și are zerouri pe diagonala principală. Există multe alte tipuri de sisteme stabile, cum ar fi toate rețelele feed-forward, precum și rețelele recurente moderne Jordan și Elman, pentru care condiția de simetrie nu este necesară. Dar acest lucru se datorează faptului că alte restricții sunt impuse feedback-urilor. În cazul unei rețele Hopfield, condiția de simetrie este necesară, dar nu suficientă, în sensul că modul de funcționare al rețelei afectează și realizarea unei stări stabile. Se va arăta mai jos că numai modul asincron al rețelei garantează atingerea unei stări stabile a rețelei; în cazul sincron este posibilă comutarea infinită între două stări diferite (această situație se numește atractor dinamic , în timp ce o stare stabilă). este de obicei numit un atractor static).
Odată ce ponderile sunt date, rețeaua antrenată devine capabilă să „recunoaște” semnalele de intrare – adică să determine căreia dintre eșantioanele stocate aparțin.
Vectorul de intrare trece printr-un anumit număr de iterații până când se ajunge la convergență. În acest caz, probele parțial distorsionate sau incomplete trebuie recunoscute. Valorile vectorului inițial sunt mai întâi atribuite intrării rețelei (prin urmare, desemnarea sinapselor de intrare în diagrama rețelei într-o formă explicită este pur convențională). Apoi rețeaua își schimbă secvențial stările conform formulei:
unde este funcția de activare și sunt stările curente și următoare ale rețelei, până când stările și coincid (sau, în cazul funcționării sincrone, stările cu și simultan cu ). Acest proces se numește convergență de rețea. Starea de echilibru rezultată (atractor static), sau poate, în cazul sincron, perechea { } (atractor dinamic), este răspunsul rețelei la imaginea de intrare dată.
Ieșirea rețelei poate fi, de asemenea, un vector invers (în care valorile -1 și 1 din probele stocate sunt inversate). Dacă sistemul nu a găsit o soluție, rezultatul sistemului poate fi și vectori banali constând doar din 1 sau doar -1.
Deoarece rețelele de feedback au căi care transmit semnale de la ieșiri la intrări, răspunsul unor astfel de rețele este dinamic, adică după aplicarea unei noi intrări, ieșirea este calculată și, trecând prin rețeaua de feedback, modifică intrarea. Ieșirea este apoi recalculată și procesul se repetă iar și iar. Pentru o rețea stabilă, iterațiile succesive au ca rezultat modificări din ce în ce mai mici ale ieșirii până când în cele din urmă rezultatul devine constant. Pentru unele rețele, procesul nu se termină niciodată; astfel de rețele sunt numite instabile. Problema stabilității va fi luată în considerare în secțiunea următoare, dar aici vom lua în considerare ciclul principal al rețelei.
Odată ce ponderile sunt date, rețeaua poate fi utilizată pentru a obține un vector de ieșire învățat dintr-un vector de intrare dat, care poate fi parțial incorect sau incomplet. Pentru a face acest lucru, ieșirilor rețelei li se atribuie mai întâi valorile acestui vector inițial. Apoi rețeaua își schimbă secvențial stările conform formulei:
unde F este funcția de activare și sunt stările curente și următoare ale rețelei, până când stările și coincid (sau, în cazul funcționării sincrone, stările cu și simultan cu ). Acest proces se numește convergență de rețea.
Acest lucru poate fi descris și de așa-numitul câmp local care acționează asupra neuronului de la toți ceilalți neuroni din rețea: .
După calcularea câmpului local al neuronului , această valoare este utilizată pentru a calcula valoarea de ieșire prin funcția de activare, care în acest caz este un prag (cu un prag zero). În consecință, valoarea ieșirii neuronului i în momentul curent este calculată prin formula:
,unde este coeficientul de greutate dintre neuronii i și j, sunt valorile de ieșire ale neuronului j în momentul anterior de timp.
În timpul funcționării rețelei Hopfield, un semn al găsirii unei soluții este momentul în care se ajunge la un atractor, static (când se repetă o stare stabilă la fiecare pas următor ) sau, eventual, dinamic (când se alternează două stări { } infinit ). Aceasta este starea finală a rețelei și este reacția acesteia la această imagine.
Răspunsul normal este o stare atât de stabilă care coincide cu unul dintre vectorii memorați în timpul antrenamentului. Dar în anumite condiții (în special, cu prea multe imagini stocate), rezultatul lucrării poate fi așa-numitul atractor fals ("himera"), constând din mai multe părți din imagini stocate diferite. În modul sincron, rețeaua poate ajunge și la un atractor dinamic. Ambele situații sunt în general nedorite, deoarece nu corespund niciunui vector stocat - și, în consecință, nu determină clasa căreia i-a atribuit rețeaua imaginea de intrare.
Pentru rețeaua Hopfield, pot exista două modificări care diferă în timpul de transmisie a semnalului : moduri asincrone și sincrone. În practică, este utilizat doar modul asincron.
Dacă rețeaua este modelată pe un singur procesor, atunci în modul sincron, neuronii sunt vizualizați secvențial, dar stările lor sunt stocate separat și nu se schimbă până când toți neuronii rețelei nu au fost traversați. Când toți neuronii sunt vizualizați, stările lor simultan (adică sincron, de unde și numele) se schimbă în altele noi. Astfel, se realizează simularea funcționării paralele printr-un algoritm secvenţial.
În simularea paralelă reală, acest mod înseamnă de fapt că timpul de transfer pentru fiecare legătură între elemente și este același pentru fiecare legătură, ceea ce face ca toate legăturile să funcționeze în paralel, ele își schimbă stările în același timp, în funcție doar de punctul anterior. la timp. Prezența unor astfel de ceasuri sincrone, care pot fi ușor identificate și duce la înțelegerea modului sincron. În modul sincron este posibilă (deși departe de a fi întotdeauna observată) o alternanță infinită a două stări cu energii diferite - așa-numitul atractor dinamic. Prin urmare, modul sincron nu este practic utilizat pentru rețeaua Hopfield și este considerat doar o bază pentru înțelegerea modului asincron mai complex.
Dacă funcționarea rețelei este modelată ca un algoritm secvenţial, atunci în modul de operare asincron, stările neuronilor în următorul moment de timp se schimbă secvenţial: câmpul local este calculat pentru primul neuron la momentul , reacția acestuia este determinată și neuronul este setat la o stare nouă (care corespunde ieșirii sale la momentul ), apoi câmpul local pentru al doilea neuron este calculat luând în considerare noua stare a primului, starea celui de-al doilea neuron se modifică și așa mai departe - starea fiecărui neuron următor este calculată luând în considerare toate modificările stărilor neuronilor considerați anterior.
De fapt, odată cu implementarea secvențială a rețelei Hopfield, nu se vede clar care este asincronia, dar se vede dacă rețeaua Hopfield este implementată cu calcul paralel. În acest caz, modul asincron al rețelei Hopfield este simplificat și este un caz special în comparație cu forma generală a rețelelor asincrone, unde timpul de transmisie pentru fiecare conexiune între elemente este diferit , dar constant. Pentru a lua în considerare funcționarea unei rețele în implementare paralelă, este necesar să se introducă conceptul de ciclu - ca timp minim pentru care un semnal este transmis printr-o conexiune, adică la . Apoi, în intervalul de timp dintre și un anumit număr de cicluri are loc N. Și în limita de timp a N cicluri apare asincronia în fluxul de semnale și execuția calculelor. Adică, de exemplu, când trebuie să calculați starea neuronului #3, trebuie să calculați starea neuronului #1 și starea neuronului #2 și să înmulțiți aceasta cu greutățile corespunzătoare și . Dar, după cum se dovedește, pentru a calcula starea neuronului #2, trebuie să cunoașteți starea actualizată a neuronului #1 și vechea stare a neuronului #3, înmulțiți-le cu greutățile și . Este clar că este imposibil din punct de vedere fizic să se calculeze starea neuronului nr. 1 și starea neuronului nr. 2 în același timp, deoarece starea neuronului nr. 2 depinde de starea neuronului nr. 1. Prin urmare, conexiunea dintre neuronul nr. 1 și neuronul nr. 3 are un timp de transmisie și ajunge la neuronul numărul 3 în două cicluri. Și anume, un timp de transmisie atât de diferit ne permite să vorbim despre rețeaua Hopfield ca despre o rețea cu un mod asincron.
În modul asincron, un atractor dinamic este imposibil: indiferent de numărul de imagini stocate și de starea inițială, rețeaua va ajunge cu siguranță într-o stare stabilă (atractor static).
Dacă în timpul antrenamentului se formează o matrice de coeficienți de greutate (conexiuni interneuronale) pe baza vectorilor binari de referință, atunci rețeaua neuronală aflată în proces de funcționare sub acțiunea câmpurilor descrise mai sus va schimba stările neuronilor până când va trece la una. a statelor stabile.
Să existe o rețea neuronală cu dimensiunea , în matricea de conexiune este scris un set de imagini alb-negru (−1 - negru, +1 - alb), printre care se află o imagine a unui câine (figura din dreapta ). Dacă setați starea inițială a rețelei aproape de acest vector (figura din stânga, imagine distorsionată), atunci în timpul dinamicii, rețeaua neuronală va restabili imaginea originală (referință). În acest sens, putem spune că rețeaua Hopfield rezolvă problema recunoașterii modelelor (deși, strict vorbind, imaginea de referință rezultată mai trebuie să fie transformată într-un număr de clasă, care în unele cazuri poate fi o sarcină foarte intensivă din punct de vedere computațional).
imagine distorsionată | Referinţă |
Diferența fundamentală dintre cele două moduri de funcționare a rețelei este că, în cazul asincron, rețeaua va ajunge neapărat într-o stare stabilă. Cu sincron, sunt posibile situații cu o tranziție ciclică infinită între două stări diferite.
Este posibil să se determine dacă starea unui neuron este stabilă sau nu pe baza așa-numitei energie artificială a unui neuron într-un anumit câmp . Dacă semnul ieșirii (+1 sau -1) a neuronului coincide cu direcția câmpului local ( ), atunci poziția acestuia este stabilă energetic și la data următoare starea neuronului rămâne neschimbată. În caz contrar ( ), poziția neuronului este instabilă și își schimbă semnul, trecând într-o stare cu energie .
Stabilitatea prin metoda asincronă se realizează deoarece este îndeplinită condiția pentru energia totală a rețelei . În cazul sincron, condiția se modifică oarecum și anume: . Într-o situație în care au loc tranziții ciclice infinite, energia a două stări diferite este, respectiv, egală cu și . În acest caz, stările și , precum și și — coincid. Dacă se formează o astfel de stare, atunci se numește atractor dinamic. Dacă stările și coincid , atractorul se numește static. În cele mai multe cazuri, atractorii dinamici sunt indezirabili, deoarece nu corespund unui anumit răspuns al rețelei.
Rețeaua de feedback formează o memorie asociativă . Rețeaua Hopfield poate fi atribuită memoriei auto-asociative, adică uneia care poate completa sau corecta o imagine, dar nu poate asocia imaginea primită cu o altă imagine. Pentru a organiza o memorie auto-asociativă stabilă folosind o rețea cu feedback, greutățile trebuie alese astfel încât să formeze minime de energie la vârfurile dorite ale hipercubului unității .
Procesarea vizuală a imaginilor (filtrarea și memoria asociativă) nu este singura aplicație a modelului Hopfield. Procedura dinamică descrisă mai sus scade valoarea energetică a rețelei neuronale la fiecare pas. Acest lucru permite rezolvarea problemelor de optimizare combinatorie dacă acestea pot fi formulate ca probleme de minimizare a energiei. Problema clasică de acest tip este problema vânzătorului ambulant .
( Problema vânzătorului ambulant nu poate fi rezolvată folosind rețeaua neuronală Hopfield) Rețeaua Hopfield poate fi utilizată pentru a rezolva problema vânzătorului ambulant (trebuie să ocoliți toate cele n orașe și să vă întoarceți la cel inițial, astfel încât lungimea rutei parcurse să fie minim). Pentru a face acest lucru, puteți impune, de exemplu, următoarele cerințe în rețea:
Se pare că următoarele considerații simple sunt suficiente pentru a rezolva această problemă:
Toate aceste condiții sunt îndeplinite de următoarea formulă de calcul a greutății dintre neuronul corespunzător orașului din poziția din traseu și neuronul corespunzător orașului din poziția :
unde A, B, C, D sunt niște constante, este distanța dintre orașe și , este simbolul Kronecker , care ia valoarea 1 dacă x=y și valoarea 0 în caz contrar. După cum este ușor de observat, primul termen este egal pentru toate conexiunile din aceeași linie ( ), cu excepția conexiunii neuronului cu el însuși (la ). Al doilea termen este egal pentru toate legăturile din aceeași coloană ( ) cu excepția legăturii către sine ( ). Al treilea termen este proporțional cu distanța dintre orașe și dacă aceste orașe sunt adiacente pe traseu ( sau ).
Dacă o astfel de rețea este adusă la o stare inițială aleatorie, atunci ne putem aștepta ca starea stabilă rezultată să ne ofere o cale suboptimă, a cărei lungime nu o depășește prea mult pe cea optimă (calea în sine poate diferi semnificativ de cea optimă). unu). În consecință, pentru aplicare practică, rețeaua ar trebui să fie rulată de mai multe ori și să fie aleasă cea mai bună cale.
Rezolvarea acestei probleme este interesantă nu atât pentru calitatea ei (există algoritmi care o rezolvă mai eficient [3] ), cât pentru însăși abordarea problemelor de optimizare: dacă este posibil să transpunem condițiile unei anumite probleme în parametrii conexiunilor dintre neuroni, atunci poate fi rezolvat relativ bine de către rețea fără nicio analiză sau ulterioară.
Din păcate, rețeaua neuronală Hopfield are o serie de dezavantaje.
1. Cantitate relativ mică de memorie, a cărei valoare poate fi estimată prin expresia:
O încercare de a înregistra mai multe imagini duce la faptul că rețeaua neuronală încetează să le recunoască.
2. Atingerea unei stări de echilibru nu garantează răspunsul corect al rețelei. Acest lucru se datorează faptului că rețeaua poate converge către așa-numiții atractori falși, uneori numiți „himere” (de regulă, himerele sunt lipite împreună din fragmente de imagini diferite).
Tipuri de rețele neuronale artificiale | |
---|---|
|
Învățare automată și extragerea datelor | |
---|---|
Sarcini | |
Învățarea cu un profesor | |
analiza grupului | |
Reducerea dimensionalității | |
Prognoza structurală | |
Detectarea anomaliilor | |
Modele grafice probabilistice | |
Rețele neuronale | |
Consolidarea învățării |
|
Teorie | |
Reviste și conferințe |
|