PREZENTARE LUCRARE ………………………………………………. I CAPITOLUL I: INTRODUCERE ÎN CALCULUL INTELIGENT ….. . 1 1.1. Specificul calculului neuronal …………………………………. 1… [624346]
– 1 –
CUPRINS
PREZENTARE LUCRARE ………………………………………………. I
CAPITOLUL I: INTRODUCERE ÎN CALCULUL INTELIGENT ….. . 1
1.1. Specificul calculului neuronal …………………………………. 1
1.2. Motiva ția biologic ă ……………………………………………… 2
1.3. Structura unei re țele neuronale artificiale ……………………. 3
1.4. Ce pot și ce nu pot face re țelele neuronale ……………………. 4
1.5 Clase de probleme ce pot fi rezolvate cu re țele neuronale ……. 4
1.6. Calculul neuronal în compara ție cu calculul clasic …………… 6
1.7. Re țelele neuronale în compara ție cu sistemele expert ……….. 7
1.8. Motiva ții pentru studiul re țelelor neuronale …………………. 8
1.9. Scurt istoric ……………………………………………………… 8
CAPITOLUL II: RE ȚELE NEURONALE RECURENTE …………….. 11
2.1. Concepte fundamenale …………………………………………. 11
2.2. Re țele neuronale feedback monostrat ………………………… 13
2.2.1 Fundamentele matematiceale
re țelelor hopfield cu timp discret …………………….. 13
2.2.2. Fundamentele matematice ale
re țelelor hopfield cu timp continuu …………………… 18
2.2.3. Exemplu de re țea hopfield cu timp
discret …………………………………………………… 21
2.2.4. Exemplu de re țea de tip gradient …………………… 23
2.3. Memorii asociative ……………………………………………… 26
2.3.1 Concepte de baz ă ……………………………………….. 27
2.3.2. Asociatori liniari ……………………………………….. 29
2.3.3. Concepte de baz ă ale memoriilor autoasociative
recurente ……………………………………………….. 33
2.3.4. Considera ții asupra modului de func ționare ………… 36
2.3.5. Analiza performan ței memoriilor autoasociative
recurente ………………………………………………. 38
2.3.6. Capacitatea memoriei autoasociative recurent e …….. 40
2.3.7. Memoria asociativ ă bidirec țional ă (MAB) …………… 41
2.3.8. Considera ții asupra stabilit ății ………………………… 44
2.3.9. Utilizarea MAB pentru pattern-uri temporale ………. 46
ANEX Ă(APLICA ȚIE MATLAB) ………………………………………… 48
BIBLIOGRAFIE …………………………………………………………… 56
– 2 –
PREZENTARE LUCRARE
Prezenta lucrare reprezint ă o încercare de p ătrundere în lumea fascinant ă a
Inteligen ței artificiale, domeniu știin țific relativ nou, dar cu posibilit ăți de
dezvoltare viitoare neb ănuite.
De-a lungul vremii, omul s-a str ăduit s ă în țeleag ă și s ă simuleze cât mai
fidel func ționarea creierului uman. În ultimele decenii, acest lucru a început s ă
devin ă din ce mai realizabil, prin dezvoltarea model ării re țelelor neuronale.
Lucrarea trateaz ă teoria re țelelor neuronale recurente.
Structural, lucrarea este alc ătuit ă din dou ă capitole:
– Capitolul I, INTRODUCERE ÎN CALCULUL INTELIGENT, îm p ărțit
într-un num ăr de 9 subcapitole, în care se realizeaz ă o scurt ă și rapid ă
introducere în teoria re țelelor neuronale, plecând de la o motiva ție
biologic ă, continuând cu specificul calculului neuronal, pre zentând
structura unei re țele neuronale artificiale, r ăspunzând la întrebarea „Ce
pot și ce nu pot face re țelele neuronale?”, ajungând la clasele de
probleme ce pot fi rezolvate cu re țele neuronale și calculul neuronal în
compara ție cu calculul clasic, încheiat cu un scurt istoric ;
– Capitolul II, RE ȚELE NEURONALE RECURENTE, care trateaz ă
efectiv tema lucr ării, împ ărțit în trei subcapitole, în care sunt
prezentate concepte fundamentale și sunt tratate re țelele hopfield,
memoriile asociative și memorii asociative bidirec ționale.
În Anex ă la lucrare este prezentat ă o aplica ție realizat ă pe „scheletul” unui
algoritm hopfield, dezvoltat ă în Matlab, care produce distorsionarea și apoi
reconstruc ția unei imagini(cifr ă).
Mul țumesc în mod deosebit doamnei Profesor Doctor Lumin i ța State,
coordonatorul știin țific, pentru aportul vital adus în realizarea acest ei lucr ări,
prin materialul bibligrafic pus la dispozi ție, prin îndrumarea și canalizarea
energiei și nu în ultimul rând pentru solu țiile propuse în dep ăș irea și rezolvarea
– 3 –
diverselor momente critice ap ărute de-a lungul „conceperii” prezentului material
și mai ales a aplicatiei prezentat ă în Anex ă.
– 4 -CAPITOLUL I: INTRODUCERE ÎN CALCULUL INTELIGENT
1.1. Specificul calculului neuronal
Din punct de vedere func țional o re țea neuronal ă este un sistem ce
prime ște date de intrare (corespunz ătoare datelor ini țiale ale unei probleme) și
produce date de ie șire (ce pot fi interpretate ca r ăspunsuri ale problemei
analizate). O caracteristic ă esen țial ă a re țelelor neuronale este capacitatea de a se
adapta la mediul informa țional corespunz ător unei probleme concrete printr-un
proces de înv ățare. În felul acesta re țeaua extrage modelul problemei pornind de
la exemple.
Din punct de vedere structural o re țea neuronal ă este un ansamblu de
unit ăți interconectate fiecare fiind caracterizat ă de o func ționare simpl ă.
Func ționarea unit ăților este influen țat ă de o serie de parametri adaptabili. Astfel
o re țea neuronal ă este un sistem extrem de flexibil.
Structura unit ăților func ționale, prezen ța conexiunilor și a parametrilor
adaptivi precum și modul de func ționare sunt inspirate de creierul uman. Fiecare
unitate func țional ă prime ște câteva semnale de intrare pe care le prelucreaz ă și
produce un semnal de ie șire. Interac țiunea multor unit ăți cu func ționare simpl ă
conduce la un sistem care poate s ă rezolve probleme complexe. Func ționarea
sistemului este controlat ă de un set numeros de parametri ajustabili care per mit
acestuia s ă se adapteze cât mai fidel mediului informa țional în care este
amplasat (specific problemei de rezolvat).
Una dintre cele mai importante caracteristici ale u nui sistem neuronal este
caracterul s ău adaptiv, faptul c ă poate s ă-și stabileasc ă parametrii de func ționare
printr-un proces de înv ățare bazat pe informa țiile primite. Astfel de sisteme sunt
adecvate, astfel, pentru problemele ce sunt dificil sau chiar imposibil de
formalizat pentru ele existând doar exemple de rezo lvare.
– 5 -1.2. Motiva ția biologic ă
În încercarea de a proiecta sisteme inteligente cel mai la îndemân ă model
este chiar creierul uman.
Acesta este capabil s ă prelucreze cantit ăți mari de date la un moment dat
și surclaseaz ă în mod cert calculatoarele (în special cele serial e) în probleme
complexe de tipul în țelegerii scenelor (cum ar fi recunoa șterea unei imagini
familiare într-un mediu necunoscut).
Din punct de vedere biologic creierul este constitu it dintr-un num ăr mare
de celule (neuronii, circa 10 10 – 10 12 ) care efectueaz ă sarcini simple și la o vitez ă
nu prea mare (timp de r ăspuns 10 -3 s) dar care sunt puternic interconectate
(exist ă circa 10 14 – 10 15 interconexiuni) și lucreaz ă în paralel.
Având în vedere faptul c ă, componentele electronice care stau la baza
calculatoarelor actuale au timpi de r ăspuns mult mai mici (10 -9 s) și totu și sunt
surclasate de c ătre creier în rezolvarea unor probleme complexe (v edere, decizii
pe baza unor date incomplete etc.), rezult ă c ă puterea computa țional ă a
creierului rezid ă în faptul c ă bilioane de neuroni opereaz ă simultan. Evident, ar
fi de dorit realizarea de sisteme care s ă lucreze cu viteza componentelor
electronice și s ă fie caracterizate de conectivitatea creierului.
Dintre caracteristicile creierului care sunt de dor it și în sistemele
artificiale pot fi enumerate: robuste țe și toleran ță la erori (mor zilnic neuroni,
fără ca aceasta s ă afecteze semnificativ performan țele creierului), flexibilitate
(fiin țele sunt capabile s ă se adapteze la un nou mediu prin înv ățare), capacitatea
de a prelucra informa ție incomplet ă, nedeterminist ă sau chiar inconsistent ă.
În ceea ce prive ște robuste țea și toleran ța la erori ea este asigurat ă de
faptul c ă informa ția este reprezentat ă în mod distribuit și nu localizat. Astfel, din
punct de vedere cibernetic creierul este un sistem natural de prelucrare paralel-
distribuit ă a informa ției.
Re țelele neuronale pot fi v ăzute atât ca modele ale creierului câ ț și ca
sisteme de prelucrare a informa ției și rezolvare a problemelor. Acestea sunt dou ă
– 6 -direc ții distincte în domeniul re țelelor neuronale fiind diferite atât din punct de
vedere al tehnicilor utilizate câ ț și din punct de vedere al aplica țiilor.
1.3. Structura unei re țele neuronale artificiale
O re țea neuronal ă artificial ă este un ansamblu de unit ăți func ționale
amplasate în nodurile unui graf orientat și între care circul ă semnale de-a lungul
arcelor grafului. Elementele definitorii ale unei r e țele neuronale sunt:
– Arhitectura: specific ă modul în care sunt amplasate și interconectate
unit ățile func ționale. Arhitectura determin ă și fluxul informa țional în cadrul
re țelei.
– Func ționarea: specific ă modul în care fiecare unitate în parte și re țeaua
în ansamblul ei transform ă semnalele de intrare în semnale de ie șire.
Func ționarea este influen țat ă de arhitectur ă, în special de modul de
interconectare a unit ăților.
– Adaptarea (înv ățarea): specific ă modul de stabilire a parametrilor
ajustabili astfel încât re țeaua s ă poate rezolva anumite probleme. În func ție de
natura informa ției de care se dispune, înv ățarea poate fi supervizat ă sau
nesupervizat ă. Înv ățarea const ă în modificarea func ționalit ății re țelei prin
modificarea parametrilor și/sau a structurii acesteia. Procesul de înv ățarea bazat
pe adaptarea parametrilor const ă în existen ța unor reguli de modificare a
parametrilor și un algoritm (de regul ă iterativ) de aplicare a acestor reguli.
Structura general ă a unui algoritm de înv ățare bazat pe modificarea
parametrilor este:
// ini țializarea (aleatoare) a parametrilor re țelei
init W(0)
// ini țializarea indicatorului de itera ție
t=0
// prelucrare repetitiv ă
repeat
– 7 -W(t+1)=adjust(W(t),X(t)[,d(t)])
t=t+1
until <criteriu de stop>
unde W(t) reprezint ă valorile parametrilor la momentul t, X(t) reprezin t ă
semnalul de intrare, iar d(t) semnalul de înv ățare corespunz ător (poate fi chiar
răspunsul corespunz ător intr ării X(t) sau doar un indicator de
corectitudine/eroare a r ăspunsului dat de re țea). În cazul înv ăță rii nesupervizate
d(t) poate lipsi din regula de înv ățare.
1.4. Ce pot și ce nu pot face re țelele neuronale
Ce pot face re țelele neuronale?
În principiu, pot reprezenta orice func ție calculabil ă. Ceea ce este îns ă mai
important este c ă pot înv ăța orice astfel de func ție pornind de la exemple. Nu
sunt îns ă eficiente pentru orice problem ă, ele fiind utile în rezolvarea
problemelor pentru care se dispune de un num ăr mare de exemple și pentru care
nu pot fi g ăsite u șor și rapid reguli de formalizare.
1.5 Clase de probleme ce pot fi rezolvate cu re țele neuronale
Clasificare și recunoa ștere.
Date de intrare. Descriere sintetic ă a unui obiect (de exemplu descrierea
grafic ă a unei litere sau ansamblul caracteristicilor aces teia). În majoritatea
situa țiilor descrierea este un vector de valori numerice ob ținute printr-o
prelucrare prealabil ă (preprocesare) a informa țiilor brute.
Date de ie șire. Indicator al clasei c ăreia îi aparține obiectul (de exemplu
num ărul de ordine al literei în cadrul alfabetului).
Abilitatea de clasificare a re țelei este rezultatul unui proces de înv ățare
pornind de la exemple de clasificare corect ă.
Pe lâng ă exemplul de mai sus, de recunoa ștere a caracterelor, alte
probleme concrete de clasificare sunt: recunoa șterea vorbirii, clasificarea
– 8 -semnalelor (de exemplu separarea electrocardiograme lor în normale și
anormale), clasificarea celulelor în normale și anormale, recunoa șterea unor fe țe
într-o imagine, clasificarea texturilor etc.
Gruparea și categorizarea datelor.
Este similar ă problemei de clasificare cu diferen ța c ă antrenarea re țelei se
realizeaz ă pornind doar de la date de intrare, f ără a specifica clasele c ărora le
apar țin. Clasele sunt construite pornind doar de la simi larit ăți existente în datele
de intrare. În felul acesta re țeaua neuronal ă descoper ă criteriul de grupare.
Probleme concrete din aceast ă categorie intervin în analiza datelor (în special în
domeniul cunoscut sub denumirea de "data mining") și compresia datelor.
Aproximare și estimare.
Se refer ă la extragerea dependen ței func ționale dintre dou ă m ărimi
pornind de la un set de valori ale celor dou ă m ărimi. De regul ă valorile din set
sunt alterate de zgomot (afectate de erori de m ăsurare sau de alt ă natur ă).
Folosind acest set re țeaua este antrenat ă pentru a determina dependen ța dintre
cele dou ă m ărimi. O dat ă re țeaua antrenat ă, pentru orice valoare a argumentului
ea furnizeaz ă aproximarea valorii asociate. O problem ă concret ă din aceasta
clas ă este reprezentat ă de determinarea dependen ței func ționale între m ărimi
măsurate experimental. În aceea și clas ă se încadreaz ă determinarea parametrilor
unor modele din inginerie sau orice problem ă de asociere.
Predic ție.
Date de intrare. O succesiune de valori (numit ă serie temporal ă) pentru
care nu este cunoscut ă o rela ție formal ă care s ă le genereze.
Dat ă de ie șire. Aproximarea urm ătoarei valori din serie.
Antrenarea re țelei se realizeaz ă pornind de la valorile cunoscute din serie.
Probleme concrete din aceast ă clas ă sunt predic ția evolu ției stocurilor, predic ția
în meteorologie, predic ție în evolu ția vânz ărilor etc.
– 9 -Optimizare.
Diferite probleme din știin ță , inginerie și economie pot fi formulate ca
probleme de optimizare constând în necesitatea dete rmin ării unei valori care
satisface anumite restric ții și optimizeaz ă o func ție obiectiv. Re țelele neuronale
sunt adecvate pentru rezolvarea problemelor de opti mizare dificile pentru care
este suficient s ă se ob țin ă solu ții suboptimale. Probleme concrete din aceast ă
categorie sunt cele ce intervin în proiectarea circ uitelor electronice, în alocarea
resurselor, în rezolvarea problemelor de rutare în re țele etc.
Stocarea și reg ăsirea informa ției dup ă con ținut.
Re țelele neuronale permit stocarea informa ției astfel încât aceasta s ă fie
ulterior reg ăsit ă pornind de la indicii legate de con ținut (indiciile pot fi por țiuni
din informa ția stocat ă). Astfel de sisteme de stocare sunt mai tolerante la erori în
raport cu memoriile bazate pe adrese. Aplica ții concrete sunt în proiectarea
bazelor de date multi-media.
Modelare și control adaptiv.
Controlul unui sistem dinamic se refer ă la a determina un semnal de
control, u(t), care asigur ă producerea unui semnal de ie șire dorit y(t). Re țeaua
neuronal ă este antrenat ă pornind de la un model de referin ță .
Prelucrarea și analiza semnalelor.
Date de intrare. Un semnal, care poate fi o imagine sau un semnal s onor.
Date de ie șire. Semnalul transformat (de exemplu prin eliminarea
zgomotului) sau o informa ție extras ă din cadrul lui.
1.6. Calculul neuronal în compara ție cu calculul clasic
Între abordarea problemelor cu ajutorul re țelelor neuronale artificiale și
cea clasic ă bazat ă pe implementarea unui algoritm pornind de la un mo del
formal exist ă o serie de diferen țe. Câteva sunt marcate în continuare:
– 10 – Prelucrare neuronal ă +/- Prelucrare algoritmic ă +/ –
1. Foarte multe procesoare fiecare
executând un program simplu. + Unul sau câteva procesoare
executând programe complicate. –
2. Robuste țe la erori. + Un singur bit eronat poate
compromite un program. –
3. Pot rezolva probleme a c ăror
structur ă logic ă nu este pe
deplin l ămurit ă. + Este necesar ă buna cunoa ștere a
problemei pentru a o
descompune în unit ăți logice. –
4. Sunt sisteme adaptive (se pot
adapta la mediul informa țional,
pot înv ăța din experien ță ). + Sunt entit ăți înghe țate destinate
rezolv ării unei clase bine
precizate de probleme. –
5. Nu ofer ă garan ția corectitudinii
răspunsului pe care-l dau. – Un algoritm corect asigur ă
corectitudinea r ăspunsului. +
6. Nu furnizeaz ă explica ția
răspunsului pe care-l dau și
sunt dificil de testat. – Exist ă metode de testare a
algoritmilor și programelor. +
7. Produc solu ții aproximative. – Produc solu ții exacte. +
1.7. Re țelele neuronale în compara ție cu sistemele expert
Un studiu comparativ al re țelelor neuronale și al sistemele clasice din
Inteligen ța artificial ă conduce la:
Re țele neuronale Sisteme expert
1. Imit ă structura și func ționarea creierului Imit ă ra ționamentul uman
2. Prelucrare paralel ă a informa ției Prelucrare secven țial ă a informa ției
3. Cuno știn țele sunt reprezentate implicit Cuno știn țele sunt reprezentate
explicit
4. Implementeaz ă ra ționamente de tip
inductiv Implementeaz ă ra ționamente de tip
deductiv
5. Prelucrare preponderent numeric ă a
informa ției Prelucrare preponderent simbolic ă
a informa ției
6. Reguli deduse prin înv ățare. Reguli încorporate aprioric în
sistem
7. Fără capacitate explicativ ă Posed ă modul explicativ
– 11 -1.8. Motiva ții pentru studiul re țelelor neuronale
Exist ă mai multe motive de a studia re țelele neuronale. Dintre acestea
amintim:
1. Sunt o alternativ ă la paradigma computa țional ă clasic ă bazat ă pe
descompunerea problemelor în unit ăți logice și pe secven ța de instruc țiuni
programate.
2. Pot fi considerate ca realiz ări prototip ale conceptului de procesare
paralel ă și distribuit ă lucru de interes având în vedere c ă tehnologiile actuale nu
permit o m ărire considerabil ă a vitezei componentelor, prin urmare accelerarea
rezolv ării sarcinilor computa ționale impune procesarea paralel ă. Paralelizarea
algoritmilor clasici nu este un lucru tocmai u șor, deci este de dorit s ă existe
sisteme implicit paralele c ărora s ă li se prezinte probleme formulate clasic.
3. Integreaz ă rezultate din discipline variate în scopul ob ținerii unor
arhitecturi simple de calcul. Reformularea unitar ă, în cadrul teoriei re țelelor
neuronale, a unor tehnici deja clasice dar apar ținând unor domenii variate
asigur ă acoperirea unor zone de grani ță , fapt important în condi țiile în care
interdisciplinaritatea câ știg ă tot mai mult teren.
4. Modeleaz ă inteligen ța uman ă, putând contribui la o mai bun ă în țelegere
a modului cum func ționeaz ă creierul uman.
1.9. Scurt istoric
Etape principale în evolu ția re țelelor neuronale artificiale:
[McCullough and Pitts, 1943] Au propus primul model formal al
neuronului punând în eviden ță abilitatea de calcul a acestuia și
posibilitatea de a imita func ționarea acestuia prin circuite electrice.
[Hebb, 1949] A enun țat principiul adapt ării permeabilit ății sinaptice
conform c ăruia de fiecare dat ă când o conexiune sinaptic ă este
"folosit ă" permeabilitatea ei este cre ște. Acest principiu st ă la baza
adapt ării prin modificarea ponderilor sinaptice.
– 12 - [Rosenblatt, 1957] A dezvoltat o re țea implementat ă hard, numit ă
perceptron, pentru clasificarea caracterelor tip ărite.
[Widrow și Hofi, 1950-1960] Au dezvoltat algoritmi de înv ățare baza ți
pe minimizarea erorii pe setul de antrenare pentru re țele cu un nivel de
unit ăți func ționale (ADALINE – ADaptive LINear Element și
MADALINE – Multiple ADaptive LINear Element).
[Minsky și Papert, 1969] Au publicat cartea "Perceptrons" în care se
pun în eviden ță limitele re țelelor cu un singur nivel de unit ăți
func ționale. Reprezint ă finalul primei etape de dezvoltare a re țelelor
neuronale dup ă care a urmat o perioad ă de circa 10 ani în care
cercet ările în domeniu au fost reduse considerabil.
[Hopfield, 1982] Propune o abordare a analizei re țelelor neuronale
folosind formalismul fizicii statistice prin punere a în eviden ță a
analogiei între re țelele recurente (destinate memor ării asociative) și
sistemele de spini magnetici. Marcheaz ă începutul unei noi perioade de
interes în domeniu caracterizat ă prin extinderea domeniilor de
aplicabilitate și volumul mare de implement ări sof ț și hard folosite în
aplica ții practice.
[Rumelhart, Parker, 1985] Este descris, într-o mani er ă accesibil ă,
algoritmul de înv ățare al re țelelor cu mai multe nivele bazat pe ideea
minimiz ării unei func ții de eroare calculat ă pornind de la un set de
antrenare. Algoritmul este cunoscut sub denumirea d e
"backpropagation" provenit ă de la faptul c ă pentru determinarea
ajust ărilor ce vor aplicate ponderilor se propag ă prin re țea în sens
invers (de la nivelul de ie șire c ătre cel de intrare) un semnal de eroare.
[Carpenter, Grosberg, 1983] Dezvolt ă "teoria rezonan ței adaptive" ce
conduce la algoritmi de înv ățare nesupervizat ă bazat ă pe procese de
competi ție.
– 13 - [Kohonen, 1980] Dezvolt ă re țele cu auto-organizare care modeleaz ă
procese neuronale dar pot fi folosite și pentru prelucrarea datelor.
– 14 -CAPITOLUL II: RE ȚELE NEURONALE RECURENTE
2.1. CONCEPTE FUNDAMENALE
Exist ă dou ă posibilit ăți de a defini re țelele neuronale. La o extrem ă,
re țelele neuronale sunt o clas ă de algoritmi matematici, deoarece o re țea poate fi
privit ă în esen ță ca o nota ție grafic ă pentru o clas ă larg ă de algoritmi. La cealalt ă
extrem ă, re țelele neuronale emuleaz ă re țelele neurale biologice din organismele
vii. În lumina cuno știn țelor limitate asupra re țelelor neurale biologice, cea mai
plauzibil ă defini ție se apropie mai mult de cea algoritmic ă.
Re țelele neuronale sunt în mod cert inspirate din biol ogie, dar exist ă mari
diferen țe între re țelele artificiale. Nu exist ă înc ă modele care s ă concureze cu
succes performan țele creierului uman.
O re țea feedback este o re țea neuronal ă ob ținut ă prin conectarea ie șirilor
neuronilor cu propriile intr ări (fig. 2.1).
FIG. 2.1. Re țea neuronal ă feedback
Perioada de timp Δ este analoag ă perioadei referactare a modelului
neuronului biologic. Avem:
– 15 -)] ( [ ) ( tWo t oΓ=Δ+
FIG. 2.2. Diagrama bloc a re țelei neuronale feedback
Intrarea X(t) este folosit ă doar pentru a ini țializa aceast ă re țea, astfel încât
o(0)=X(0). Intrarea este apoi îndep ărtat ă și, pentru t>0, sistemul devine
autonom.
Considerând timpul ca o variabil ă discret ă și decidem s ă observ ăm
func ționarea re țelei la momentele Δ, 2 Δ, 3 Δ,…, sistemul este cu timp discret.
Conven țional, putem considera c ă pasul timpului este unitar. Not ăm:
][1
kxkW oΓ =+, pentru k=1,2,…
Aceast ă re țea este recurent ă deoarece r ăspunsul ei la momentul k+1
depinde de întregul istoric al re țelei începând cu momentul k=0.
][01
xW oΓ =
]] [[02
xWW oΓΓ =
……..
]…]] [[… [01
xkW W o ΓΓΓ =+
Re țelele recurente opereaz ă de obicei cu o reprezentare discret ă a datelor
și folosesc neuroni cu o func ție de activare discret ă. Un sistem având intr ări cu
timp discret și o reprezentare discret ă a datelor se nume ște un automat. Deci,
re țelele neuronale recurente din aceast ă categorie pot fi considerate ni ște
automate.
Numim ,… ,2 1oo st ări ale re țelei la momentele 1, 2,… și ecua țiile de mai
înainte oglindesc secven ța tranzi țiilor st ărilor. O stare de echilibru se nume ște și
– 16 -atractor. Un atractor const ă dintr-o singur ă stare, sau dintr-un num ăr limitat de
st ări.
2.2. RE ȚELE NEURONALE FEEDBACK MONOSTRAT
Re țelele neuronale studiate în continuare sunt sisteme dinamice care
evolueaz ă în timp, într-un spa țiu discret sau continuu. Evolu ția unei astfel de
re țele este, a șa cum se va vedea, disipativ, în sensul c ă are tendin ța de sc ădere a
energiei. Tranzi ția într-o re țea neuronal ă dinamic ă este c ătre o solu ție asimptotic
stabil ă care este un minim local al unei func ții a energiei disipate.
Re țelele discutate aici se bazeaz ă în special pe lucr ările lui HOPFIELD
(1984, 1985, 1986).
Să men țion ăm câteva concepte fundamentale ale sistemelor dinam ice.
Am v ăzut c ă un atractor este o stare c ătre care sistemul evolueaz ă în timp
pornind de la anumite condi ții ini țiale. Mul țimea acestor condi ții formeaz ă
bazinul de atrac ție al atractorului. Dac ă atractorul este un punct unic în spa țiul
st ărilor, atunci el este un punct fix. Un atractor poa te îns ă consta și dintr-o
secven ță de st ări, caz în care se nume ște ciclu limit ă.
O re țea de acest tip este capabil ă s ă tolereze anumite distorsiuni ale
vectorilor de ini țializare și s ă le elimine.
2.2.1 FUNDAMENTELE MATEMATICEALE RE ȚELELOR HOPFIELD
CU TIMP DISCRET
Acest tip de re țele au propriet ăți foarte interesante. Utilizând tehnologii
microelectronice și optoelectronice, s-au fabricat microsisteme care se bazeaz ă
pe aceste re țele.
Conform postulatelor lui HOPFIELD, o re țea feedback monostrat este de
forma celei din figura 2.3.
Aceast ă re țea const ă din n neuroni cu pragurile nT T,…, 1 . Pentru fiecare
neuron se calculeaz ă:
– 17 -
≠=−+ =n
i jji i j ij i Tivw net
1, pentru ,,… 2 , 1n i=
unde ii este intrarea extern ă a neuronului i.
FIG. 2.3. Re țea feedback monostrat
Vectorial, putem scrie:
i it
i i Ti w net −+= , pentru ,,… 2 , 1n i=
unde
=
in i
i
ww
w
…1
,
=
nvv
v
…1
.
Putem, de asemenea, s ă rescriem rela ția de mai sus astfel:
net=W v+i-T,
unde
net=
nnet net
…1
, i=
nii
…1
, T=
nTT
…1
,
– 18 -W=
=
0. . … . . . … . . . … . . . .. . . 0. . . 0
…
2 12 21 1 12
1
n nnn
t
nt
w ww ww w
ww
.
În acest model, matricea W este simetric ă.
Să presupunem pentru moment c ă func ția de activare este sgn(.). Atunci:
iv rămâne neschimbat dac ă 0=inet
1−←iv dac ă 0<inet
11+←v dac ă 0>inet
Adic ă:
) sgn( 1
i ik t
ik
i Ti v w v −+ =+, ,,… 2 , 1n i= ,… 1 , 0=k
Regula se aplic ă asincron , adic ă pentru câte o singur ă valoare a lui i la un
moment dat. Se porne ște de la v 0. Pentru k=1, avem n actualiz ări. Pentru început
se actualizeaz ă 1
iv, unde num ărul neuronului i este aleator. Pentru ceilal ți
neuroni, ie șirile r ămân acelea și. Se calculeaz ă apoi 1
jv, ij≠ j aleator etc., pân ă
se completeaz ă v 1. Apoi se calculeaz ă v 2 etc. Acest algoritm particular de
actualizare a ponderilor este cunoscut ca o recursivitate stohastic ă asincron ă a
re țelelor HOPFIELD. Trebuie f ăcut ă distinc ție între algoritmul asincron și cel
sincron (paralel) descris de formula:
,… 1 , 0 ], [1=−+Γ =+kTi Wv vk k
Conform acestei formule, to ți neuronii î și pot modifica simultan ie șirile.
În algoritmul asincron, dup ă ce se calculeaz ă 1+k
iv, aceast ă valoare ia locul lui k
iv
participând la calculul celorlalte componente din 1+kv. Procesul continu ă pân ă
când se calculeaz ă toate valorile din 1+kv. Pentru fiecare k=1, 2,…, avem n
actualiz ări aleatoare individuale, la nivel de neuron. Algor itmul se opre ște când
1+kvkv=.
– 19 -Reprezentând vectorul de ie șire în {}n1 , 1− , acesta se mi șcă dintr-un vârf al
cubului n-dimensional într-un vârf adiacent , pân ă când se stabilizeaz ă într-unul
din vârfuri. Pozi ția final ă a lui kv, pentru ∞→k , este determinat ă de ponderile
ini țiale, pragurile ini țiale, intr ări, 0v, dar și de ordinea tranzi țiilor.
Urm ătoarele probleme sunt deschise: dac ă sistemul are atractori și dac ă
sistemul se stabilizeaz ă.
Pentru a evalua proprietatea de stabilitate, se def ine ște func ția energiei
computa ționale:
vTv i Wv v Et t t+−− =21
care este de form ă p ătratic ă. Adic ă:
≠= = = =+− − =n
j iin
jn
in
ii i i i j i ij v T v i v vw E
1 1 1 121.
Fie ik
ik
i v v v Δ =−+1, adic ă presupunem c ă nodul i s-a modificat la momentul
k. Modificarea este asincron ă, deci se refer ă doar la neuronul i. Calcul ăm
t tTi Wv E +−− =∇
în care ținem cont c ă W este simetric ă. Incrementul energiei este:
vE EtΔ∇=Δ
unde
Δ=Δ
0……0
iv v
Atunci:
i i it
i vTiv w E Δ+−−=Δ ) (
– 20 -,
1in
ji i j ij v Tivw E Δ
−+ − =Δ
= pentru ji≠
i iv net E Δ−=Δ
Pentru func ția de activare sgn(.), avem:
dac ă 0 0≤Δ<i i v net
dac ă 0 0≥Δ>i i v net
dac ă 0 01 =Δ=iv net
Adic ă, avem mereu 0≥Δi iv net și 0≤ΔE . Aceasta înseamn ă c ă energia
re țelei poate doar s ă scad ă sau s ă r ămâna constant ă. Presupunând c ă 0≠inet ,
atunci 0=ΔE dac ă și numai dac ă 0=Δiv . Cu alte cuvinte, E scade strict dac ă și
numai dac ă 0≠Δiv și E r ămâne constant ă dac ă și numai dac ă 0=Δiv .Dac ă
0=inet , atunci 0=Δiv , deci 0=ΔE .
Pentru o stare stabil ă, adic ă pentru un atractor, în cazul unei scheme
asincrone avem:
). sgn( lim 1Ti Wv vk
kk−+ =
∞ →+
Am ar ătat c ă energia este necresc ătoare. Ea este, în mod evident, și
mărginit ă, ceea ce înseamn ă c ă E î și atinge minimul.
Dac ă algoritmul de actualizare a ponderilor este sincro n, se poate întâmpla
ca algoritmul s ă cicleze între dou ă pattern-uri complementare.
Acest lucru este ilustrat în exemplul de mai jos:
W=
−−
011 0 v0=[]t1 1−−
v1=
=
=
−−
−−Γ11
) 1 sgn( ) 1 sgn(
11
011 0
v2=
−−
11 etc.
Vom vedea c ă pattern-urile complementare corespund unor nivele
identice ale energiei.
– 21 -2.2.2. FUNDAMENTELE MATEMATICE ALE RE ȚELELOR
HOPFIELD CU TIMP CONTINUU
Re țelele feedback monostrat cu timp continuu se numesc și re țele de tip
gradient . O re țea de tip gradient converge c ătre unul dintre minimele stabile din
spa țiul st ărilor. Evolu ția sistemului este în direc ția general ă a gradientului
negativ al func ției de energie. C ăutarea unui minim energetic corespunde
căut ării unei solu ții pentru o problem ă de optimizare. Re țelele de tip gradient
sunt exemple de sisteme nelineare, dinamice și asimptotic stabile.
Vom exemplifica un model de re țea neuronal ă de tip gradient prin
folosirea unor componente electrice (fig. 2.4.). Pe ntru a p ăstra nota ția original ă a
lui HOPFIELD, tensiunile iu sunt de fapt inet . Ponderile ij w sunt conductan țe.
Ie șirile inversate iv sunt folosite pentru a modela conductan țe negative, adic ă
inhibitorii. Avem:
ji ij w w= și 0=ii w , pentru n j i,…, 1 ,= .
Neuronii pot fi interpreta ți ca amplificatori: curentul prin conductan ță ig
este amplificat de neuronul i (figura 2.5). n iCi ,…, 1 ,= sunt capacit ăți.
FIG. 2.4. Re țea neuronal ă de tip gradient care folose ște componente electrice
– 22 –
FIG. 2.5. Modelul unui neuron
Folosind acest model de neuron, putem scrie legea l ui KIRCHHOFF:
≠=
≠==+ − +n
i jjn
i jji
i i ij i j ij idt du C g w uvw i
1 1) ( .
Partea stâng ă a acestei ecua ții reprezint ă curentul total care intra în
condensatorul de capacitate iC. Not ăm conductan ța total ă care este conectat ă la
intrarea neuronului i cu
=+=n
ji ij i g w G
1.
Atunci, ecua ția lui KIRCHHOFF se poate scrie:
==− +n
ji
i i i j ij idt du C Guvw i
1.
Fie matricile:
C[ ]nC C C diag . . .2 1= , G [ ]nG G G diag . . .2 1= ,
u( )
=
) (…) (1
tutu
t
n, v ( )
=
) (…) (1
tvt v
t
n, i
=
nii
…1
,
unde u(t) este vectorul st ărilor, iar v(t) reprezint ă vectorul ie șirilor. Avem:
itGu tWv dt tdu C +−= ) ( ) () ( ecua ția st ărilor
– 23 – v )) ( ( ) ( t u f t= ecua ția ie șirilor
Să studiem stabilitatea sistemului descris de aceste ecua ții. Func ția
energiei care ne permite s ă analiz ăm modelul continuu este:
−
=+−− =iv
in
iit tdz z f G v i Wv v vE
01
1) (21) ( ,
unde ) (1zfi− este inversa func ției de activare if. Aceast ă formul ă con ține
termenul vTt din func ția energiei discrete
v T v i Wv vt t t+− −21
în termenul al doilea, iar ultimul termen este spec ific cazului continuu și dispare
pentru ∞→λ . Avem:
i iv
i i
iuG dz z f Gdv d i=−
01) (
Gu i Wv vE +−−=∇ ) ( .
Atunci:
dt dv
dt du C v Gu i Wv v v Edt t v dE t
t t
− = +−−= ∇=. .
) ( ) ()] ( [
2 1)(
− =−
dt dv
dv fv df Ci
i ii i
i
deoarece
.)(1
dt dv
dv v df
dt du i
ii i i−
=
FIG. 2.6. Inversa func ției de activare
– 24 -În figura 2.6, func ția…este monoton cresc ătoare, deci 0)(1
>−
ii i
dv v df . Atunci:
0>dt dE pentru 0≠dt dv și
0>dt dE pentru 0=dt dv .
Am g ăsit o func ție LIAPUNOV a sistemului, deci sistemul este asimpt otic
stabil. Func ția E este m ărginit ă în spa țiul ie șirilor, deci tinde c ătre un minim.
Modific ările în timp nu sunt exact pe direc ția gradientului func ției de
energie (adic ă pe direc ția sc ăderii cât mai rapide a energiei).
Re țeaua de tip gradient, în cazul în care spa țiul ie șirilor este m ărginit,
converge c ătre unul din minimele lui E(v), deci c ătre o stare stabil ă. Acest
minim este în interiorul hipercubului ie șirilor. Dac ă ∞→λ , atunci minimul este
într-un vârf al hipercubului.
Faptul c ă sistemul este asimptotic stabil în spa țiul ie șirilor este echivalent
cu faptul c ă sistemul este asimptotic stabil în spa țiul st ărilor u. Aceasta, deoarece
ecua ția
)) ( ( ) ( t u f t v=
este monoton ă.
2.2.3. EXEMPLU DE RE ȚEA HOPFIELD CU TIMP DISCRET
Fie:
W=
−−−−−−
01 1 11 0 1 11 1 0 11 1 1 0
Presupunem pragurile și intr ările externe zero. Calcul ăm:
[ ]
− =
4321
4 3 2 121) (
vvvv
Wvvvv vE
4 3 4 3 2 4 3 2 1 ) ( ) ( v v vvv vvvv +−−−+−= .
– 25 -Calculând expresia pentru toate vârfurile hipercubu lui:
[ ][ ]t t1111,…, 1 1 1 1 −−−− se ajunge la nivelele de energie -6, 0, 2.
Tranzi țiile au loc pe muchiile hipercubului, de la un vârf la un alt vârf cu energie
mai sc ăzut ă. Minimul este atins în vârfurile [ ]t1 111 − și [ ]t11 1 1−−− unde
avem st ări stabile. Tranzi țiile au loc asincron. De aceea o tranzi ție este doar de-a
lungul unei singure muchii ( se poate modifica cel mult o component ă).
Dac ă tranzi țiile au loc sincron, atunci ele nu minimizeaz ă energia și nu
tind c ătre o stare stabil ă. De exemplu, pornind din [ ]tv 1 1 1 10−−−= , ajungem
la:
−
−−−−−−
Γ = Γ =
1111
01 1 11 0 1 11 1 0 11 1 1 0
] [0 1Wv v
−−−
=
−−−
=
1111
) 1 sgn( ) 1 sgn( ) 1 sgn( ) 1 sgn(
.
Tranzi ția nu mai este de-a lungul unei muchii. Se calculea z ă c ă
0 2v v=,
deci oscileaza între 0v și 1v. În 0v și 1v energia este 2. Spre deosebire de
tranzi țiile sincrone, tranzi țiile asincrone duc întotdeauna la unul dintre minim ele
energetice. Dac ă la tranzi țiile asincrone pornim de la [-1 1 1 1] și sc ădem
energia, atunci evolu ția se poate desf ăș ura ca în figura:
– 26 –
FIG. 2.7. Variante de evolu ție a st ărilor pentru o serie de tranzi ții asincrone
Minimul la care ajungem depinde de ordinea de actua lizare a
componentelor.
2.2.4. EXEMPLU DE RE ȚEA DE TIP GRADIENT
Vom elabora un convertor A/D (Tank, Hopfield, 1986) pe 2 bi ți.
Presupunem c ă )(iu f este continu ă unipolar ă.
Se poate ar ăta c ă o func ție energiei totale aleas ă convenabil poate fi:
( )
= =− −
−=1
0221
01 221221
ii ii
ii
i vv v x E .
Dorim s ă minimiz ăm pe E, ceea ce implic ă minimizarea lui 21
0221
−
=ii
iv x
care este eroarea de conversie A/D, unde 1 02v v+ este valoarea zecimal ă a
vectorului binar []tvv0 1 și corespunde valorii analogie X. Calculând, ajungem
la:
( )
= =−
≠=+− + +=1
01
01 21
022 2 221
ii
ii i
j i
i jjj iv x v v x E .
Pentru x fixat, 2
21x este o constant ă, deci irelevant ă atunci când
minimiz ăm pe E. Expresia energiei în re țeaua HOPFIELD este:
– 27 -
= = =−1
01
01
0.21
i j ii i j i ij v i v vw
Ultimul termen dispare deoarece minimele sunt în vâ rfurile hipercubului.
Prin identificarea termenilor din cele dou ă expresii, ajungem la:
210 01 −==w w
21
0−=xi
2 21−=x i
Convertorul rezultat este un caz special al unei re țele de tip gradient
(figura 2.8).
Avem:
) 2 ( ) 2 (21
0 0 10
0 g uv xdt du C +−−−+−=
) 2 ( ) 2 ( 2 21 1 01
1 g uv xdt du C +−−−+−=
care sunt ecua țiile st ărilor. De exemplu, putem presupune c ă folosim o tensiune
de referin ță având valoarea de -1V (figura 2.9).
FIG. 2.8. Convertor A/D pe doi bi ți implementat printr-o re țea de tip gradient
– 28 –
Ecua țiile st ărilor devin:
) 2 ( 221
0 0 10
0 g uv xdt du C +−+−=
) 2 ( 22 21 1 01
1 g uv xdt du C +−+−=
Condi ția 0≥ij w asigur ă realizabilitatea re țelei folosind rezisten țe de
valoare
ij ij wR1= . Înlocuind ponderile și valorile curen ților externi în expresia
energiei, ob ținem pentru valori mari ale lui λ:
)2 ( 2221 0 10
1 0 v v x vvv v E +−++= (*)
Reprezentând grafic func ția E, ob ținem:
– pentru X=0, punctul sta ționar este punct de minim: 01 0==v v
– pentru X=1, punctul sta ționar este punct de minim: 0 , 11 0==v v
– pentru X=1,25, puncte sta ționare sunt: punctul de minim dorit 0 , 11 0==v v
dar și punctul de minim nedorit 1 , 01 0==v v , precum și un punct șa,
undeva în interiorul p ătratului: . 1 0 , 1 01 0 <<<< v v
FIG. 2.9 Convertor A/D pe doi bi ți implementat printr-o re țea de tip gradient și care folose ște
o tensiune de referit ă de 1 V
– 29 -În loc s ă rezolv ăm sistemul de ecua ții diferen țiale, oare nu putem c ăuta
minimele lui E?
Din rela ția (*) ob ținem:
−+−+=∇
x vx vvE
22 2212) (
01
=∇=0220) (2vE H
Observ ăm:
0 det 11 =H
. 40220det 22 − =
=H
Matricea H nu este pozitiv sau negativ definit ă. E nu are deci minim sau
maxim, dac ă nu consider ăm alte restric ții. Impunem restric ția ca spa țiul de ie șire
să fie p ătratul ()210 . Atunci, minimele lui E sunt situate în vârfurile p ătratului,
dac ă aceste minime exist ă. Se poate demonstra acest lucru pentru ∞→λ . Dac ă
*v este o solu ție pentru 0) (=∇vE și se afl ă în interiorul p ătratului, atunci este un
punct șa. Rezult ă c ă pentru a g ăsi solu ția avem dou ă posibilit ăți:
i) rezolvarea numeric ă a sistemului de ecua ții diferen țiale
ii) simularea re țelei printr-un program de simulare a circuitelor
electronice.
2.3. MEMORII ASOCIATIVE
În paragrafele anterioare, ne-am concentrat în spec ial pe rezolvarea unor
probleme de optimizare. În acest paragraf vom inter preta evolu ția unui sistem
dinamic ca o mi șcare a unui pattern de intrare c ătre un alt pattern care este
memorat și se nume ște prototip sau memorie stocat ă. Re țelele neuronale din
aceast ă clas ă se numesc memorii asociative .
– 30 -O memorie asociativ ă eficient ă poate stoca un num ăr mare de pattern-uri.
Pe parcursul apelului, memoria este excitat ă de un pattern cheie ( numit și
argument al c ăut ării ) care con ține o por țiune de informa ție despre un anumit
pattern dintr-o mul țime de pattern-uri memorate. Acest prototip anume p oate fi
regasit prin asocierea pattern-ului cheie si a info rmatiei memorate.
În general, memoriile asociative achizi ționeaz ă informație a priori .
Scrierea în memorie provoac ă modific ări ale conexiunilor dintre neuroni. Nu
exist ă adrese, toat ă informa ția din memorie este distribuit ă spa țial în re țea.
Care sunt cerin țele pentru o astfel de memorie? Ea trebuie s ă aib ă o
capacitate mare de stocare a prototipurilor. Ea tre buie s ă fie robust ă, astfel încât
o distrugere local ă a structurii s ă nu provoace c ăderea întregului sistem. În plus,
o astfel de memorie trebuie s ă fie capabil ă de a ad ăuga/elimina asocia ții, pe
măsur ă ce se modific ă cerințele de stocare.
Memoriile asociative permit de obicei c ăutarea paralel ă. Scopul c ăut ării
este de a extrage unul sau toate pattern-urile care se potrivesc cu pattern-ul
cheie.
Se presupune c ă memoria biologic ă opereaz ă conform principiilor unei
memorii asociative: nu exist ă loca ții de memorie cu adrese; stocarea este
distribuit ă într-o re țea dens ă de neuroni interconecta ți.
2.3.1 Concepte de baza
Diagrama bloc a unei memorii asociative este reprez entat ă în figura 2.10.
FIG. 2.10: Diagrama bloc a unei memorii asociative.
– 31 -În aceast ă figur ă, x este vectorul intr ărilor, v este vectorul ie șirilor,
m nv x ℜ∈ℜ∈ , si v=M[x], unde M este un operator neliniar matric ial specific
fiec ărui tip de memorie. Structura lui M reflect ă o paradigm ă specific ă. Pentru
memorii dinamice, M implic ă și variabila timp.
Pentru un model de memorie dat, forma operatorului M este exprimat ă de
obicei în func ție de vectorii prototip care trebuie stoca ți. Algoritmul care permite
calcularea lui M se nume ște algoritm de înregistrare sau stocare . De obicei,
neuronii sunt aseza ți pe unul sau dou ă straturi.
Maparea v=M[x] este numit ă reg ăsire . Not ăm prototipurile cu un indice
superior în parantez ă.
Presupunând c ă exist ă p perechi de asocieri stocate:
) ( ) ( i iv x→ pentru i=1,…,p
și
) ( ) ( i ix v≠ pentru i=1,…,p
atunci re țeaua este o memorie heteroasociativ ă.
Dac ă aplica ția este de forma:
) ( ) () ( ) (
i ix vi iv x=→ pentru i=1,…,p
atunci memoria este autoasociativ ă.
În memoria heteroasociativ ă, asocierile se fac între mul țimile ordonate de
vectori { }) ( ) 2 ( ) 1 (,…, ,px xx și { }) ( ) 2 ( ) 1 (,…, ,pv vv . Memoriile autoasociative asociaz ă
vectori din cadrul unei singure mul țimi care este { }) ( ) 2 ( ) 1 (,…, ,px xx . Evident,
proiectarea unui vector x ) (i în el însu și nu are nici o semnifica ție. O aplica ție mai
realist ă a unei map ări autoasociative este asocierea unui pattern cheie perturbat
cu prototipul sau stocat în memorie.
Spre deosebire de memoriile calculatoarelor, care s unt adresabile prin
adres ă, memoriile asociative sunt adresabile prin con ținut .
Prin re țele neurale se pot realiza memorii statice (instant anee,
nerecurente) și memorii dinamice (recurente). Memoria din figura 2.11 este una
– 32 -static ă realizat ă printr-o re țea feedforward și ][0
10xM v= care reprezint ă un
sistem de ecua ții algebrice neliniare.
FIG. 2.11. Memorie static ă realizat ă printr-o re țea feedforward.
În figura 2.12 este o memorie dinamic ă autoasociativ ă realizat ă printr-o
re țea recurent ă pentru care ],[0
21 k kvxM v=+, reprezentând un sistem de ecua ții
diferen țiale neliniare.
FIG. 2.12. Memorie dinamic ă autoasociativ ă realizat ă printr-o re țea recurent ă.
Un exemplu de memorie dinamic ă este re țeaua Hopfield în care
][21 k kvM v=+
adic ă în care avem un 0v, dar nu avem intr ări externe (fig. 2.13).
FIG. 2.13: Memorie dinamic ă heteroasociativ ă.
2.3.2. Asociatori liniari
Memoriile asociative tradi ționale sunt de tip instantaneu, feedforward.
Pentru memoria asociativ ă liniar ă avem:
– 33 -v=Wx
unde x este pattern-ul de intrare, iar v pattern-ul de ie șire. Nu apar neuroni. Dac ă
totu și introducem formal neuroni, atunci avem:
][1Wx Mv=
unde ] [1⋅M este un operator matricial liniar unitate. Avem un strat de neuroni de
ie șire pentru care
i inet net f v = = ) (1 .
Să presupunem c ă dorim s ă stocam în acest asociator liniar p. Se dau
perechile de vectori {}) ( ) (,i ifs , i=1,…, p. Vectorii s reprezint ă stimuli, iar vectorii
f sunt r ăspunsurile for țate. Avem:
[]ti
ni is s s) ( ) (
1) (… =
[]ti
mi if f f) ( ) (
1) (… = .
Practic, ) (is pot fi pattern-uri iar ) (if informa ții asupra apartenen ței lor la o clas ă,
sau imagini ale lor.
Obiectivul asociatorului liniar este s ă implementeze maparea
V=Wx
sub forma
) ( ) ( ) ( i i iWs f =+η
sau, folosind simbolul de mapare
) ( ) ( ) ( i i if s η+→ pentru i=1,2,…, p
astfel încât vectorul zgomot ) (iη să fie minimizat.
Problema se poate pune și astfel: pentru un num ăr mare de observa ții, s ă
se g ăseasc ă W care minimizeaz ă ii|| || ) (η . Este o problem ă tipic ă de statistic ă
matematic ă și nu o vom aborda aici.
Dorim s ă g ăsim W care permite stocarea eficient ă a datelor în memorie.
Aplic ăm regula de înv ățare hebbian ă pentru a instrui asociatorul:
j i ij ij s f w w+=' pentru i=1,2,…, m, j=1,2,…, n
– 34 -unde vectorii f și s trebuie s ă fie membrii ai perechii de asociere.
tfs W W+='
Ini țializând ponderile din W cu zero, avem:
t i isf W) ( ) ( '= .
Acesta este primul pas al instruirii. Avem p perechi de înv ățat, deci:
==p
it i isf W
1) ( ) ( '
tFS W='
unde W ' este o matrice de corela ție nm× și
[ ]) ( ) 2 ( ) 1 (. . .pf f f F=
[ ]) ( ) 2 ( ) 1 (. . .ps s s S= .
Să presupunem c ă, dup ă instruire, aplic ăm vectorul cheie ) (js. Atunci:
) (
1) ( ) ( jp
it i is sf v
=
=
) ( ) ( ) ( ) ( ) 1 ( ) 1 (… j t p p j tssf ssf ++ = .
Ideal ar fi s ă avem ) (jfv= . Aceasta se întâmpl ă dac ă
0) ( ) (=j t iss pentru ji≠
1) ( ) (=j t jss .
Deci, mul țimea de vectori ortonormali {}) ( ) 1 (,…, ps s asigur ă maparea
perfect ă.
Ortonormalitatea este o condi ție supus ă intr ărilor și ea nu este întotdeauna
respectat ă.
Să presupunem c ă ') (js este ) (js perturbat:
) ( ) ( ) ('j j js s Δ +=
unde termenul perturba ție ) (jΔ se poate presupune statistic independent de ) (js.
Pentru cazul când vectorii stoca ți în memorie sunt ortonormali, avem:
( )
≠=Δ +Δ + =p
j iij t i i j t j j j t j jsf sf ssfv
1) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) (
– 35 – ( )
≠=Δ +=p
j iij t i i jsf f
1) ( ) ( ) ( ) (.
Am ținut cont și de faptul c ă ) (jΔ este statistic independent de ) (js, deci pot
fi considera ți ortogonali, adic ă:
0 cos || |||| || ) ( ) ( ) ( ) (= Δ =Δ ψj t j j t js s .
Observ ăm c ă r ăspunsul memoriei este asocierea dorit ă ) (jf, plus o
component ă aditiv ă datorat ă perturba ției ) (jΔ. Aceast ă component ă con ține în
parantez ă aproape to ți termenii lui W pondera ți de ) (jΔ. Chiar și în cazul în care
vectorii memora ți sunt ortonormali, la ) (jf se ad ăuga un zgomot foarte mare.
Metoda este ineficient ă pentru a reg ăsi un pattern perturbat.
În final, s ă not ăm o proprietate interesant ă a asociatorului liniar în cazul
autoasociativ. În acest caz, re țeaua este un autocorelator . Lu ăm ) ( ) ( i is f= și
ob ținem matricea de autocorela ție W':
== =p
it t i iSS ss W
1) ( ) ( ',
ținând cont de faptul c ă W ' este simetric ă. S ă not ăm îns ă c ă W ' nu are diagonala
egal ă cu zero. Presupunând ) ( ) 1 (,…, ps s ortonormali, pentru vectorul de intrare
perturbat ') (js ob ținem:
≠=Δ +=
j iij t i i jss sv
1) ( ) ( ) ( ) (
) ( ) () 1 (j jp s Δ−+=
unde termenul ) (jΔ apare amplificat de p-1 ori!
Asociatorii liniari și autoasociatorii pot fi folosi ți și atunci când vectorii
) ( ) 1 (,…, ps s sunt liniar independen ți (o condi ție mai slab ă decât ortogonalitatea).
Kohonen a ar ătat c ă, în acest caz, avem:
t tSS S F W1) (−= .
Acest W minimizeaz ă eroarea p ătratic ă dintre ) (jf și ) (jv.
– 36 -Deoarece vectorii prototip nu sunt în general linia r independen ți, nici
aceast ă metod ă nu poate fi aplicat ă oricând. În plus, apare problema zgomotului.
În concluzie, asociatorii liniari nu sunt în genera l utilizabili în practic ă.
2.3.3. Concepte de baz ă ale memoriilor autoasociative recurente
O astfel de memorie este în esen ță o re țea feedback monostrat cu timp
discret de tip Hopfield (fig. 2.14)
Recursivitatea este stochastic asincron ă. Fiecare feedback se produce cu o
întârziere Δ. Neuronii sunt alc ătui ți dintr-un sumator și un comparator și sunt
bipolari discre ți. Ie șirile sunt în mul țimea {}n1 , 1− . Presupunem c ă 0==i iTi ,
pentru i=1,2,…, n.
I) Algoritmul de reg ăsire
=
=+n
jk
j ij k
i vw v
11sgn
Presupunând c ă pornim din 0v și c ă se alege în mod aleator secven ța m, p,
q de neuroni, avem:
Prima actualizare: [ ]t
n q p m v v v v vv v0 0 0 1 0
20
11. . . . . . . . . . . . =
A doua actualizare: [ ]t
n q p m v v v v v v v0 0 2 1 0
20
12. . . . . . . . . . . . =
A treia actualizare: [ ]t
n q p m v v v v v v v0 3 2 1 0
20
13. . . . . . . . . . . . =
FIG. 2.14: Memorie Hopfield autoasociativ ă.
– 37 -Avem:
Wv v vEt
21) (− = .
Am v ăzut c ă energia este necresc ătoare și re țeaua se stabilizeaz ă într-unul
din minimele locale energetice.
Fie –v complementul vectorului v.
Se observ ă c ă E(v)=E(-v). Deci, un minim pentru E(v) are aceea și valoare
cu un minim pentru E(-v). Cu alte cuvinte, tranzi țiile memoriei se pot termina în
aceea și m ăsur ă atât în v, cât și în –v. Factorul decisiv care determin ă
convergen ța este similaritatea dintre 0v și v, respectiv –v.
II) Algoritmul de stocare
Fie ) ( ) 1 (,…, ps s prototipurile bipolar binare care trebuie stocate. Algoritmul
de stocare pentru calcularea matricii ponderilor es te:
=− =p
mt m mpI ss W
1) ( ) (
sau
=−=p
mm
jm
i ij ij ss w
1) ( ) () 1 (δ
unde 0=ij δ pentru 1 ,=≠ii jiδ și I este matricea unitate.
Matricea W este foarte similar ă cu matricea de autocorela ție ob ținut ă prin
înv ățare hebbian ă în cazul asociatorului liniar autoasociativ. Difer en ța este c ă
0=ii w . Sistemul nu memoreaz ă vectorul ) (ms, ci doar ponderile ij w care
reprezint ă corela ții între componentele acestui vector.
Oricând se pot ad ăuga noi autoasocieri adi ționale la memoria existent ă,
prin incrementarea ponderilor existente. Oricând se pot elimina autoasocieri prin
decrementarea ponderilor existente. Regula de stoca re este invariant ă la ordinea
în care sunt stocate prototipurile.
– 38 -Dac ă avem vectorii unipolari ) ( ) 1 (,…, ms s , algoritmul de stocare trebuie
modificat astfel încât o component ă -1 s ă înlocuiasc ă elemental 0 în vectorul
unipolar originar:
=− − −=p
mm
jm
i ij ij s s w
1) ( ) () 1 2 )( 1 2 ( ) 1 (δ .
Să observ ăm c ă regula de stocare este invariant ă la opera ția de
complementare binar ă. Stocând vectorul ) ( 'ms, complementar lui ) (ms, ob ținem:
) 1 2 )( 1 2 ( ) 1 () ( '
1) ( ' '− − −=
=m
jp
mm
i ij ij s s wδ
Substituind ) ( ) ( '1m
im
i s s−= , ob ținem ij ij w w='. Cu alte cuvinte, este indiferent dac ă
stoc ăm un pattern sau complementul sau binar.
Algoritmul de stocare și reg ăsire pentru o memorie autoasociativ ă
recurent ă este urm ătorul:
Se dau vectorii bipolari ) ( ) 1 (,…, ps s de câte n componente.
Vectorul ini țial ( care se cere reg ăsit) este 0v, tot de n componente.
Stocarea
1. Se initializeaza 1 , 0←← m W , unde W este matricea nm× a
ponderilor.
2. Se stocheaza 🙂 (ms
I ss W Wt m m− +←) ( ) (.
3. if m<p then 1+←m m , go to 2.
Regasirea
1. Se ini țializeaz ă 0, 1 v v k←← , unde k este un contor de ciclu.
2. Se ini țializeaz ă 1←i, contorul de actualizare în ciclu. Se ob ține
o permutare aleatoare a întregilor 1,…,n: . ,…, 1 nαα actualizare
←FALSE.
3. Este actualizat neuronul iα dac ă este cazul:
) sgn( ,1=← =n
j j ji i inet vnew vw net α α α
– 39 -if vnew v
i≠α then 1+←ii , goto 3.
4. if i<n then 1+←ii , goto 3.
5. if actualizare=FALSE then {nu a avut loc nici o actualizare în
acest ciclu, reg ăsirea se termin ă} display k, v
else 1+←k k , goto 2.
2.3.4. Considera ții asupra modului de func ționare
Memoria asociativ ă Hopfield este referit ă de multe ori ca un decoder
corector de erori. Memoria lucreaz ă cel mai bine cu valori mari ale lui n.
Să presupunem c ă n are o valoare mare. Presupunem c ă pattern-ul ) ('ms
este unul din cele p pattern-uri stocate. Acest pattern este acum la int rarea
memoriei. Pentru neuronul i avem:
==n
jm
j ij i sw net
1) ('.
Aplicând formula:
=−=p
mm
jm
i ij ij ss w
1) ( ) () 1 (δ
și, neglijând pentru moment termenul ij δ−1 , ob ținem:
= =≅n
jp
mm
jm
jm
i i sss net
1 1) ( ) ( ) ('
= ==p
mn
jm
jm
jm
i ss s
1 1) ( ) ( ) ('.
Dac ă vectorii ) (ms și ) ('ms sunt statistic independen ți, atunci termenul
=n
jm
jm
jss
1) ( ) (' (1)
este în medie zero. De altfel, aceast ă sum ă este produsul scalar ) (ms) ('ms.
Dac ă ) (ms și ) ('ms sunt ortogonali, deci statistic independen ți, acest produs
devine zero.
– 40 -Dac ă ) (ms și ) ('ms sunt într-o anumit ă m ăsur ă identici, atunci termenul (1)
devine pozitiv.
Dac ă ) (ms=) ('ms, atunci termenul (1) este n.
Deci, dac ă ) (ms=) ('ms pentru un anumit p m≤≤1 , atunci
ns net m
i i) ('≅ , pentru i=1,2,…, n. (2)
net i are acela și semn ca și ) ('m
is, pentru i=1,…,n. În concluzie, vectorul ) ('ms este
stabil și nu se mai poate modifica.
Vom da acum o explica ție intuitiv ă a faptului c ă pattern-urile perturbate
pot fi ref ăcute.
Să presupunem c ă vectorul de la intrare este o versiune perturbat ă a
prototipului ) ('ms care este stocat în memorie, iar perturba ția afecteaz ă doar o
mic ă parte a componentelor (majoritatea componentelor s unt neperturbate). În
acest caz, în (2) multiplicatorul n va avea o valoare mai mic ă, egal ă cu num ărul
de componente identice dintre ) ('ms și vectorul de intrare. Semunl lui ) ('m
is se
propag ă asupra lui inet . Componentele perturbate sunt actualizate, una cât e una,
cu valorile lor neperturbate din ) ('ms. Evident, este necesar ca majoritatea
componentelor vectorului ini țial s ă fie neperturbate și ca n să fie mare.
Componentele perturbate se conformeaz ă deci dorin ței majorit ății.
Aceasta explic ă intuitiv cum un pattern perturbat poate fi asociat celui mai
apropiat prototip stocat. Discu ția este îns ă valabil ă doar pentru valori mari ale
lui n.
Să presupunem acum c ă prototipurile stocate sunt ortogonale. Avem:
) (
1) ( ) ('mp
mt m mspI ss net
− =
=.
Deoarece 0) ( ) (=j t iss pentru ji≠ și n ssj t i=) ( ) (, ob ținem
) (') (ms p n net −= .
Dac ă n<p , rezult ă c ă ) ('ms este stabil. Func ția de energie este:
– 41 -Wv v vEt
21) (− =
pIv v v ss vtp
mt m m t
21
21
1) ( ) (+
− =
=.
Pentru fiecare prototip stocat ) ('ms avem:
()()) ( ) ( ) ( ) (
1) ( ) ( ) (' ' ' ' '
21
21) (m t m mt mp
mmt m mpIs s ss ss sE + − =
=
) (212pn n−− = .
Memoria are o stare de echilibru la fiecare prototi p ) ('ms, iar energia are
valoarea ei minim ă ) (212pn n−− în aceste st ări.
Pentru cazul mai general, când prototipurile nu sun t mutual ortogonale,
energia nu mai este în mod necesar minimizat ă pentru fiecare prototip, iar
prototipurile nu mai sunt în mod necesar st ări de echilibru. În acest caz, avem:
( )
≠=+−=
'' ' '
1) ( ) ( ) ( ) ( ) (
m mmm t m m m ms ss ps ns net
( )
≠=+−=p
m mmm t m m ms ss s p n
'' '
1) ( ) ( ) ( ) () ( .
Fa ță de situa ția anterioar ă, apare suplimentar ultimul termen:
( )
≠=p
m mmm t m ms ss
''
1) ( ) ( ) (.
Acesta poate fi interpretat ca un vector zgomot . Cu cât ( n-p) este mai
mare, cu atât scade importan ța zgomotului și prototipurile devin st ări de
echilibru.
2.3.5. Analiza performan ței memoriilor autoasociative recurente
În aceast ă sec țiune, vom stabili rela ții între m ărimea n a memoriei și
num ărul de pattern-uri distincte care pot fi ref ăcute în mod eficient. Aceasta
– 42 -depinde și de gradul de similaritate dintre vectorul cheie și cel mai apropiat
prototip, precum și de gradul de similaritate dintre prototipuri.
Pentru a m ăsura ”similaritatea”, vom folosi distan ța Hamming . De fapt, ea
este propor țional ă cu ”disimilaritatea”. Pentru vectorii bipolari de n componente
x și y, avem:
=− =n
ii iyx y x DH
1| |21) , ( .
Aceasta înseamn ă c ă DH(x,y) reprezint ă num ărul de pozi ții în care difer ă
bi ții. Prin actualizarea asincron ă, la fiecare pas se modific ă vectorul de ie șire cu
DH=1.
Fie, de exemplu:
[ ]ts 111 1) 1 (−−=
[ ]ts 1 111) 2 (− −=
Construim:
−−−−
=
0 02 00 0 022 0 0 002 0 0
W
Pornind din
[ ]tv 11 110−−= ,
ob ținem, prin actualiz ări asincrone ascendente:
[ ]tv 11 1 11−−=
[ ] … 11 1 13 2==−−= v vt
Actualiz ările au fost astfel descrise pas cu pas. Convergen ța este c ătre
) 2 (s− și nu c ătre ) 1 (s sau ) 2 (s. Avem:
2),( ),() 2 ( 0 ) 1 ( 0= = sv DH sv DH ,
deci 0v nu este atras c ătre ) 1 (s sau ) 2 (s.
Fie acum:
– 43 -[ ]tv 11110−= .
Avem:
1),( ),() 2 ( 0 ) 1 ( 0= = sv DH sv DH .
Prin actualiz ări asincrone ascendente, ob ținem:
0 1v v=
[ ]) 1 ( 3 2… 111 1 s v vt=== −−=
Pe de alt ă parte îns ă, dac ă actualiz ările sunt în ordine descendent ă,
ob ținem ) 2 (s.
Pentru acest exemplu, avem p/n =2/4, deci memoria este supraînc ărcat ă și
sensibil ă la perturba ții. De aceea, refacerea pattern-urilor perturbate n u este
întotdeauna eficient ă. Se observ ă și c ă nu putem evita stocarea complementelor
pattern-urilor stocate.
În astfel de memorii, pot exista st ări stabile care nu reprezint ă pattern-uri
memorate. De asemenea, convergen ța nu este neap ărat către cel mai apropiat
pattern memorat (apropiere m ăsurat ă prin DH). Aceste dou ă deficien țe devin
deranjante atunci când memoria este supraînc ărcat ă, deci când p/n este mare.
2.3.6. Capacitatea memoriei autoasociative recurent e
Vom men ționa aici rezultatele ob ținute de McEliece et al. 1
Un vector stare kv al unei memorii este stabil dac ă
k k kv Wv v =Γ =+] [1.
Aceast ă defini ție nu este legat ă de tipul de actualizare: sincron sau
asincron.
Fie ρ raza de atrac ție definit ă astfel: orice vector la o DH mai mic ă decât
ρn (distan ța de atrac ție ) de starea stabil ă v este eventual atras de v. Am v ăzut
că distan ța de atrac ție este între 1 și n/2, deci ρ este între 1/ n și 1/2.
1 McElice, R.J, Poser, E.C., Rodemich, E.R., Vankate sh, S.V. ”The Capacity of the Hopfield Associative
Memory ”. IEEE Trans. on Information Theory, 33, 19 87, 461-482.
– 44 -Pentru ca sistemul s ă func ționeze ca o memorie, impunem ca fiecare
vector memorat ) (ms să fie stabil. Mai pu țin restrictiv este s ă cerem s ă existe un
vector stabil la o distan ță mic ă de ) (ms, nε, pentru toate cele p pattern-uri
memorate.
Capacitatea asimptotic ă a unei memorii autoasociative cu n neuroni este:
nnpcln 4) 1 (2−= .
Dac ă p<c , atunci toate cele p pattern-uri stocate, sunt stabile cu
probabilitatea aproape 1. Oricum ar fi valoarea 2 / 1 0<<ρ , capacitatea unei
memorii Hopfield este deci între:
), ln 2 /( )ln 4 /( n nc n n <<
unde c depinde de fapt de toleran ța la eroare, adic ă de ρ. În loc de n2 pattern-
uri, putem stoca doar c pattern-uri!
Studiul lui McEliece et al. relev ă prezen ța unor atractori în care nu au fost
memorate pattern-uri; ace știa au în general bazinele de atrac ție mai mici decât
cele ale pattern-urilor stocate.
Chiar dac ă num ărul pattern-urilor ce pot fi stocate într-o memorie
Hopfield este destul de mic, aceste memorii au o se rie de aplica ții în procesarea
vorbirii, baze de date, prelucrarea imaginilor.
2.3.7. Memoria asociativ ă bidirec țional ă (MAB)
MAB (fig. 2.15) este o memorie heteroasociativ ă adresabil ă prin con ținut
constând din dou ă straturi (Kosko, 1987, 1988).
– 45 –
Fig. 2.15.: Memorie asociativ ă bidirec țional ă.
Fie p perechi de pattern-uri memorate:
()()() { }) ( ) ( ) 2 ( ) 2 ( ) 1 ( ) 1 (, ,… , , ,p pb a ba ba
Presupunem c ă avem vectorul b la intrarea în stratul A al memori ei.
Presupunem c ă neuronii sunt binari bipolari:
], ['Wb aΓ =
adic ă:
.,…, 1 , sgn
1'n ibw am
jj ij i =
=
=
Procesarea are loc sincron. Urmeaz ă:
] [' 'aW btΓ =
. ,…, 1 , sgn
1' 'm jaw bn
ii ij j =
=
=
Apoi:
] [' ' 'Wb aΓ =
] [' ' ' 'aW btΓ = etc.
Procesul continu ă pân ă când a și b nu se mai modific ă.
– 46 -În mod ideal, procesul se stabilizeaz ă într-o pereche ()) ( ) (,i iba din
mul țimea perechilor memorate. Putem opera asem ănător pentru cazul unipolar.
Presupunem c ă straturile sunt activate alternativ.
Stabilitatea unei astfel de re țele nu este afectat ă de procesarea sincron ă ca
în cazul memoriilor Hopfield, deoarece oricum cele dou ă straturi lucreaz ă
asincron. De aceea, se prefer ă procesarea sincron ă, convergen ța fiind mai rapid ă
decât în cazul în care am folosit procesarea asincr on ă.
Dac ă W este p ătrat ă și simetric ă, atunci W=W t și avem de fapt o memorie
autoasociativ ă cu un singur strat. Stocarea are loc conform regul ii hebbiene:
==p
mt m mba W
1) ( ) (
.
1) ( ) (
==p
mm
jm
i ij ba w
Presupunând c ă unul din pattern-urile stocate, ) ('ma , este prezentat la
intrare, ob ținem:
( )
Γ =
=) (
1) ( ) ('mp
mt m ma ab b
+Γ =
≠=p
m mmm t m m maab nb
'' '
1) ( ) ( ) ( ) (.
Ultimul termen din rela ția anterioar ă, pe care îl not ăm cu:
≠==p
m mmm t m maab
''
1) ( ) ( ) (η
reprezint ă zgomotul .
Să presupunem pentru moment c ă pattern-urile ) ( ) 1 (,…, pa a sunt ortogonale.
Atunci, 0=η și se ob ține ) ('mbb= dintr-un singur pas.
Dac ă pattern-ul de intrare este o versiune perturbat ă a lui ) ('ma, stabilizarea
la ) ('mb nu mai este iminent ă și depinde de mai mul ți factori: DH dintre vectorul
cheie și prototipuri, ortogonalitatea sau DH dintre vector ii ) ( ) 1 (,…, pb b etc.
– 47 –
2.3.8. Considera ții asupra stabilit ății
Când memoria MAB ajunge la o stare de echilibru, as tfel încât
) ( ) 2 ( ) 1 ( ) ( k k k ka a b a =→→+ +, spunem c ă ea este bidirec țional stabil ă.
Fie func ția de energie:
Wb a aWb Wb a b a Et t t t− = − − =21
21) , ( .
Vom evalua modific ările energiei pentru un pas:
< ≤=> ≥
=Δ
===
=m
j j ij m
j j ij m
j j ij
n ii
bw pentru bw pentru bw pentru
a
111
,…, 1
0 00 00 0
(3)
< ≤=> ≥
=Δ
===
= n
i j ij n
i j ij n
i j ij
n jj
aw pentru aw pentru aw pentru
b
111
,…, 10 00 00 0
Calcul ăm:
. ) , () , (
aW b a EWb b a E
t
ba
− = ∇− = ∇
Modific ările de energie cauzate de c ătre modificarea unei singure
componente sunt:
, ) , (
1im
jj ij a a bw b a E
iΔ
− = Δ
= pentru i= 1,…, n
jn
ii ij b b aw b a E
jΔ
− = Δ
=1) , ( , pentru j=1,…, m.
Rezult ă c ă 0≤ΔE , dac ă ținem cont și de (3). Deoarece E este inferior
mărginit ă, adic ă:
= =− ≥n
im
jij w b a E
1 1|| ) , (
– 48 -rezult ă c ă memoria converge c ătre un punct stabil care este un minim local
pentru func ția de energie. Deci, memoria este bidirec țional stabil ă.
Să observ ăm c ă nu este important dac ă procesarea într-un strat se face
sincron sau asincron.
Kosko (1988) a ar ătat (euristic) c ă num ărul maxim de perechi , p, care pot
fi stocate și reg ăsite cu success, este min (n,m) . O m ăsur ă mai strict ă a capacității
este:
), min( mn p= .
Observa ții:
1. Formula de stocare a perechilor de pattern-uri nu g aranteaz ă c ă acestea
corespund unor minime locale.
2. Am v ăzut c ă, dac ă pattern-urile stocate sunt ortogonale, atunci zgom otul
este zero și toate pattern-urile stocate pot fi, în mod garant at, recuperate
printr-un pas (dac ă nu sunt perturbate). Wang (1990) a propus cre șterea
fictiv ă a pattern-urilor de instruire pentru a ob ține o ortogonalitate a lor.
Perechile ()) ( ) (,j iaa și ()) ( ) (,j ibb sunt fără zgomot , unde i,j =1,…, p, dac ă:
2) ,() ( ) ( naaHD j i=
2),() ( ) (mbbHD j i=,
acestea fiind condi țiile de ortogonalitate între ) (ia și ) (ja, respectiv ) (ib și
) (jb . Dac ă avem aceast ă situa ție, atunci recuperarea datelor este imediat ă
și f ără erori (dac ă nu sunt perturbate). Prin cre șterea vectorilor ) (ia și ) (ja,
i=1,…,p, cu componente adi ționale ob ținem aceast ă ortogonalitate la nivel
de perechi.
Prin aceast ă tehnic ă se îmbun ătățește și capacitatea MAB de a corecta
erori.
– 49 –
2.3.9. Utilizarea MAB pentru pattern-uri temporale
Fie secven ța S={ ) ( ) 1 (,…, ps s } de vectori n-dimensionali bipolari binari
reprezentând tranzi țiile st ărilor (pattern-uri temporale). Re țeaua MAB este
capabil ă s ă memoreze secven ța S, astfel încât:
] [) ( ) 1 ( i iWs sΓ =+
unde i este modulo p+1.
Pornind de la starea ini țial ă x(0) în vecin ătatea lui ) (is, secven ța S este
apelat ă ca un ciclu de tranzi ții ale st ărilor. Acest model este numit memorie
asociativ ă temporal ă.
Pentru stocarea secven ței, astfel încât ) 1 (s să fie asociat cu ) 2 (s, ) 2 (s cu ) 3 (s
,…, ) (ps cu ) 1 (s, proced ăm astfel:
t pp
it i iss ss W) ( ) 1 (1
1) ( ) 1 (+ =−
=+
sau, dac ă indicele este modulo p+1:
.
1) ( ) 1 (
=+=p
it i iss W
Având straturile A și B, avem:
a= Γ[Wb]
b= Γ[Wa]
Dac ă secven ța ) ( ) 1 (,…, ps s este aplicat ă la intrarea în stratul A, avem:
( )44444444 844444444 76
4444444 34444444 21η+
++
++ ++ Γ =) 1 (
) ( ) ( ) 1 ( ) ( ) 1 ( ) 1 ( ) 2 (… … kns
Wk t p t k k ts ss s s ss a .
Termenul
( )
≠=+=p
k iik t i iss s
1) ( ) ( ) 1 (η
este zgomotul, unde indicele de însumare este modul o p+1. Dac ă vectorii din S
sunt ortogonali, atunci 0=η și a= ) 1 (+ks, dintr-un singur pas.
– 50 -Așadar, dac ă la intrare avem ) (ks, ob ținem în mod circular:
… … ) ( ) 2 ( ) 1 (→→→→+ + p k ks s s
Dac ă vectorii din S nu sunt ortogonali, presupunând îns ă c ă ei sunt stoca ți
la o DH<< n, în general ne putem a ștepta s ă ob ținem totu și secven ța corecta S
dac ă aplic ăm ) (ks.
Aceast ă memorie poate stoca cel mult k secven țe de lungimi kp pp ,…, ,2 1 ,
unde:
npp pk
ii< =
=,
1.
– 51 -ANEXA
Aplica ția, de distorsionare și recompunere a unei imagini, este scris ă în
Matlab, pe un algoritm hopfield, și este alc ătuit ă din 3 fi șiere Matlab:
– fi șierul hopfield1.m :
echo off;
clc;
cla reset;
clear;
global c;
CorruptedPercentage=-1;
DimX=12;
DimY=10;
N=120;
disp('Ruleaza reteaua Hopfield …');
for i=1:50
for j=1:132
for k=1:3
c(i,j,k)=0;
end
end
end
fid=fopen('correct.txt','r');
for NumberOfPatterns=1:8
for DimY=1:10
for DimX=1:12
temp=fread(fid,1,'uchar');
if temp=='O'
pattern(NumberOfPatterns,DimY,DimX)=1;
else
pattern(NumberOfPatterns,DimY,DimX)=-1;
end
end
temp=fread(fid,1,'uchar');
end
temp=fread(fid,1,'uchar');
end
fclose(fid);
while(isempty(CorruptedPercentage) | CorruptedPerce ntage<0 | CorruptedPercentage>100)
CorruptedPercentage=input('Introduceti procentul d e distorsionare a imaginii(0-100):
');
end
– 52 -disp(' ');
for NumberOfPatterns=1:8
for DimY=1:10
for DimX=1:12
if (rand(1)*100<=CorruptedPercentage)
corruptedpattern(NumberOfPatterns,DimY,DimX)=patte rn(NumberOfPatterns,DimY,
DimX)*-1;
else
corruptedpattern(NumberOfPatterns,DimY,DimX)=patte rn(NumberOfPatterns,DimY,
DimX);
end
end
end
end
for n=1:8
for i=1:DimY
for j=1:DimX
inputs(n,(i-1)*DimX+j)=pattern(n,i,j);
corruptedinputs(n,(i-1)*DimX+j)=corruptedpattern (n,i,j);
end
end
end
%Calcularea ponderilor
for i=1:120
for j=1:120
tempweight=0;
if (i~=j)
for n=1:8
tempweight=tempweight+inputs(n,i)*inputs(n,j);
end
end
weights(i,j)=tempweight;
end
end
for n=1:8
msg=sprintf('Afiseaza imaginea %1d din 8', n);
disp(msg);
for i=1:120
netoutput(i)=inputs(n,i);
end
Iteration=0;
IterationOfLastChange=0;
while(Iteration-IterationOfLastChange<1)
for counter=1:120
changed=0;
– 53 – Sum=0;
for j=1:120
Sum=Sum+weights(counter,j)*netoutput(j);
end
if (Sum~=0)
if(Sum<0)
Out=-1;
else
Out=1;
end
if (Out~=netoutput(counter))
changed=1;
netoutput(counter)=Out;
end
end
end
if (changed==1)
IterationOfLastChange=Iteration;
end
Iteration=Iteration+1;
if (Iteration<10)
scrieretea(netoutput,Iteration-1,0);
else
scrieretea(netoutput,Iteration-10*fix(Iteration/ 10),fix(Iteration/10));
end
end
for i=1:120
Output(i)=netoutput(i);
end
image(c);
%axe de coordonate([1,60,1,20]);
axis([1,24,1,20]);
drawnow;
if (n<8)
Continue=input(' Tastati "Ent er" pentru a afisa urmatoarea
imagine…');
else
Continue=input(' Tastati "Ent er" pentru a afisa imaginea
refacuta…');
end
for i=1:50
for j=1:132
for k=1:3
c(i,j,k)=0;
end
end
end
end
disp(' ');
– 54 -for n=1:8
%n=input('Introduceti numarul imaginii pe care dori ti sa o vizualizati(Numarul primei
imagini este 1)? ');
%while (n>=1 & n<=8)
msg=sprintf('Refacerea imaginii %1d din 8', n);
disp(msg);
for i=1:120
netoutput(i)=inputs(n,i);
end
scrieretea(netoutput,0,0);
for i=1:120
netoutput(i)=corruptedinputs(n,i);
end
Iteration=0;
IterationOfLastChange=0;
while(Iteration-IterationOfLastChange<2)
for counter=1:120
if rem(counter,10)==0
if ((counter+(Iteration*120))/10<8)
scrieretea(netoutput,(counter+(Iteration*120)) /10,0);
else
scrieretea(netoutput,(counter+(Iteration*120)) /10-
8*fix((counter+(Iteration*120))/10/8),fix((counter+ (Iteration*120))/10/8));
end
end
changed=0;
Sum=0;
for j=1:120
Sum=Sum+weights(counter,j)*netoutput(j);
end
if (Sum~=0)
if(Sum<0)
Out=-1;
else
Out=1;
end
if (Out~=netoutput(counter))
changed=1;
netoutput(counter)=Out;
end
end
end
if (changed==1)
IterationOfLastChange=Iteration;
end
Iteration=Iteration+1;
end
for i=1:120
Output(i)=netoutput(i);
end
– 55 – image(c);
axis([1,115,1,48]);
drawnow;
%n=input('Introduceti numarul imaginii pe care dor iti sa o vizualizati. (Numarul
primei imagini este 1) ? ');
if (n<8)
Continue=input(' Tastati "Ent er" pentru a afisa urmatoarea
imagine…');
end
for i=1:50
for j=1:132
for k=1:3
c(i,j,k)=0;
end
end
end
end
disp(' ');
disp('Pentru a realiza individual refacerea imagini lor tastati "hopfield2"');
– fi șierul hopfield2.m :
echo off;
global c;
CorruptedPercentage=-1;
DimX=12;
DimY=10;
N=120;
disp('Ruleaza antrenarea retelei Hopfield…');
disp('Introduceti numarul imaginii pe care doriti s a o vizualizati');
n=input('Imaginile sunt numerotate de la 1 la 8; ca re este numarul imaginii dorite? ');
while (n>=1 & n<=8)
disp(' ');
msg=sprintf('Afisarea refacerii imaginii %1d din 8 ', n);
disp(msg);
disp(' ');
for i=1:120
netoutput(i)=inputs(n,i);
end
scrieretea(netoutput,0,0);
for i=1:120
netoutput(i)=corruptedinputs(n,i);
end
Iteration=0;
IterationOfLastChange=0;
while(Iteration-IterationOfLastChange<2)
for counter=1:120
– 56 – if rem(counter,10)==0
if ((counter+(Iteration*120))/10<8)
scrieretea(netoutput,(counter+(Iteration*120)) /10,0);
else
scrieretea(netoutput,(counter+(Iteration*120)) /10-
8*fix((counter+(Iteration*120))/10/8),fix((counter+ (Iteration*120))/10/8));
end
end
changed=0;
Sum=0;
for j=1:120
Sum=Sum+weights(counter,j)*netoutput(j);
end
if (Sum~=0)
if(Sum<0)
Out=-1;
else
Out=1;
end
if (Out~=netoutput(counter))
changed=1;
netoutput(counter)=Out;
end
end
end
if (changed==1)
IterationOfLastChange=Iteration;
end
Iteration=Iteration+1;
end
for i=1:120
Output(i)=netoutput(i);
end
image(c);
axis([1,115,1,50]);
drawnow;
disp('Introduceti numarul imaginii pe care doriti sa o vizualizati');
n=input('Imaginile sunt numerotate de la 1 la 8; c are este numarul imaginii dorite? ');
for i=1:50
for j=1:132
for k=1:3
c(i,j,k)=0;
end
end
end
end
disp('Programul s-a terminat cu succes.');
– 57 – fi șierul scrieretea.m :
function y=scrieretea(netoutput,imageno,rowno)
global c;
for DimY=1:10
for DimX=1:12
if (netoutput((DimY-1)*12+DimX))==-1
c(DimY+10*rowno+2*rowno,DimX+12*imageno+2*imagen o,1)=0.5;
c(DimY+10*rowno+2*rowno,DimX+12*imageno+2*imagen o,2)=0.5;
c(DimY+10*rowno+2*rowno,DimX+12*imageno+2*imagen o,3)=0.5;
else
c(DimY+10*rowno+2*rowno,DimX+12*imageno+2*imagen o,1)=0.2;
c(DimY+10*rowno+2*rowno,DimX+12*imageno+2*imagen o,2)=0.2;
c(DimY+10*rowno+2*rowno,DimX+12*imageno+2*imagen o,3)=1;
end
end
end
și fi șierul text correct.txt :
************
***OOOOOO***
**OOOOOOOO**
*OOO****OOO*
*OOO****OOO*
*OOO****OOO*
*OOO****OOO*
**OOOOOOOO**
***OOOOOO***
************
****OOOO****
****OOOO****
****OOOO****
****OOOO****
****OOOO****
****OOOO****
****OOOO****
****OOOO****
****OOOO****
****OOOO****
OOOOOOOOOO**
OOOOOOOOOO**
*******OOO**
*******OOO**
OOOOOOOOOO**
OOOOOOOOOO**
OOO*********
OOO*********
OOOOOOOOOO**
OOOOOOOOOO**
– 58 –
***OOOOOOO**
***OOOOOOOO*
*********OO*
*********OO*
****OOOOOO**
****OOOOOO**
*********OO*
*********OO*
***OOOOOOOO*
***OOOOOOO**
*OO******OO*
*OO******OO*
*OO******OO*
*OO******OO*
*OOOOOOOOOO*
*OOOOOOOOOO*
*********OO*
*********OO*
*********OO*
*********OO*
OOOOOOOO****
OOOOOOOO****
OO**********
OO**********
OOOOOOOO****
OOOOOOOO****
OO****OO****
OO****OO****
OOOOOOOO****
OOOOOOOO****
****OOOOOOOO
****OOOOOOOO
****OO****OO
****OO****OO
****OOOOOOOO
****OOOOOOOO
**********OO
**********OO
****OOOOOOOO
****OOOOOOOO
OOOOOO******
OOOOOO******
OOOOOO******
OOOOOO******
OOOOOO******
************
************
************
************
************
– 59 –
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: PREZENTARE LUCRARE ………………………………………………. I CAPITOLUL I: INTRODUCERE ÎN CALCULUL INTELIGENT ….. . 1 1.1. Specificul calculului neuronal …………………………………. 1… [624346] (ID: 624346)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
