Rete neurale di Hopfield
La rete neurale di Hopfield è un modello di rete neurale ricorrente a tempo discreto la cui matrice di connessione è simmetrica e zero sulla diagonale e dove le dinamiche sono asincrone (un singolo neurone viene aggiornato ad ogni unità di tempo). È stato reso popolare dal fisico John Hopfield nel 1982 . La sua scoperta ha contribuito a ravvivare l'interesse per le reti neurali che si erano esaurite durante gli anni '70 in seguito a un articolo di Marvin Minsky e Seymour Papert .
Una rete Hopfield è una memoria indirizzabile dal suo contenuto : una forma memorizzata viene recuperata da una stabilizzazione della rete, se è stata stimolata da una parte adeguata di questa forma.
Struttura
Questo modello di rete è costituito da N neuroni con stati binari (-1, 1 o 0, 1 a seconda della versione) tutti interconnessi. L'input totale di un neurone i è quindi:
ioio=∑jwiojVj{\ displaystyle I_ {i} = \ sum _ {j} w_ {ij} V_ {j}}![I_ {i} = \ sum _ {{j}} w _ {{ij}} V_ {j}](https://wikimedia.org/api/rest_v1/media/math/render/svg/80a18452c59c57e26344edfa169d2bbad7e471de)
o :
-
wioj{\ displaystyle w_ {ij}}
è il peso della connessione dal neurone i al neurone j
-
Vj{\ displaystyle V_ {j}}
è lo stato del neurone j
Lo stato della rete può essere caratterizzato da una parola di N bit corrispondenti allo stato di ciascun neurone.
Dinamico
Il funzionamento della rete è sequenziato da un orologio. Noteremo:
-
Vio(t){\ displaystyle V_ {i} (t)}
o lo stato del neurone i al tempo tVio{\ displaystyle V_ {i}}![V_i](https://wikimedia.org/api/rest_v1/media/math/render/svg/f300b83673e961a9d48f3862216b167f94e5668c)
-
Vio(t+1){\ displaystyle V_ {i} (t + 1)}
lo stato del neurone i al tempo t + dt dove dt designa l'intervallo di tempo tra 2 tick dell'orologio
Esistono diverse alternative abbastanza equivalenti per l'aggiornamento dello stato dei neuroni:
- La modalità stocastica originale di Hopfield in cui ogni neurone cambia il suo stato in un istante casuale a una frequenza media uguale per tutti i neuroni. Più semplicemente, possiamo considerare che ad ogni ticchettio dell'orologio disegniamo un neurone a caso per aggiornarlo.
- Una modalità sincrona in cui tutti i neuroni vengono aggiornati contemporaneamente.
- Una modalità sequenziale in cui i neuroni vengono aggiornati in un ordine definito.
Il calcolo del nuovo stato del neurone i viene eseguito come segue:
Vio(t+1)={1Sio∑jwiojVj>0,-1Sionononon{\ displaystyle V_ {i} (t + 1) = \ left \ {{\ begin {matrix} 1 & \ mathrm {si} \ sum _ {j} {w_ {ij} V_ {j}}> 0, \ \ -1 & \ mathrm {altrimenti} \ end {matrix}} \ right.}
Apprendimento
L'apprendimento in una rete di Hopfield consiste nel garantire che ciascuno dei prototipi da memorizzare sia:
- Uno stato stabile della rete
- Uno stato attraente che permette di trovarlo da stati leggermente diversi
Per stimare i pesi, utilizziamo un apprendimento Hebbian, ispirato alla legge di Hebb (teorizzata da Hebb nel 1949 e effettivamente osservata nel cervello da Bliss e Lomo nel 1973 ). Quindi una delle rappresentazioni algebriche è:
wioj=1non∑K=1pXioKXjK{\ displaystyle w_ {ij} = {\ frac {1} {n}} \ sum _ {k = 1} ^ {p} x_ {i} ^ {k} x_ {j} ^ {k} \,}![w _ {{ij}} = {\ frac {1} {n}} \ sum _ {{k = 1}} ^ {p} x_ {i} ^ {k} x_ {j} ^ {k} \,](https://wikimedia.org/api/rest_v1/media/math/render/svg/a0c9d41cf10c442b587fd283c3a3086b1d682b52)
,
dove è il peso della connessione tra il neurone e il neurone , è la dimensione del vettore di input, il numero di schemi di allenamento e e sono rispettivamente l'i esimo input dei neuroni e .
wioj{\ displaystyle w_ {ij}}
j{\ displaystyle j}
io{\ displaystyle i}
non{\ displaystyle n}
p{\ displaystyle p}
XioK{\ displaystyle x_ {i} ^ {k}}
XjK{\ displaystyle x_ {j} ^ {k}}
K{\ displaystyle k}
io{\ displaystyle i}
j{\ displaystyle j}![j](https://wikimedia.org/api/rest_v1/media/math/render/svg/2f461e54f5c093e92a55547b9764291390f0b5d0)
L'apprendimento di Hebbian riduce al minimo la funzione energetica , cioè se due unità sono attive contemporaneamente, il peso delle loro connessioni aumenta o diminuisce.
Limiti
Tuttavia, la rete di Hopfield ha limiti ben noti: può memorizzare solo circa 0,14 n pattern con n il numero di neuroni. I modelli successivi, ispirati alla rete Hopfield ma modificando le regole di archiviazione e accesso, consentono di estendere questo limite di archiviazione.
Vedi anche
Note e riferimenti
-
(in) JJ Hopfield , " Reti neurali e sistemi fisici con abilità computazionali collettive emergenti " , Atti della National Academy of Sciences , vol. 79, n o 8,1 ° aprile 1982, p. 2554-2558 ( ISSN 0027-8424 e 1091-6490 , PMID 6953413 , DOI 10.1073 / pnas.79.8.2554 , letto online , accesso 24 ottobre 2018 )
-
Ala ABOUDIB , Vincent Gripon e Xiaoran JIANG , “ Uno studio di algoritmi di recupero di messaggi sparse in reti di cricche neurali ”, COGNITIVE 2014: il 6 ° Conferenza internazionale sulla Avanzate cognitivi tecnologie e applicazioni ,Maggio 2014, p. 140-146 ( letto online , accesso 24 ottobre 2018 )
Articoli Correlati
link esterno
-
Neural Lab - interfaccia grafica in Python e Gtk che consente di manipolare una rete hopfield
<img src="https://fr.wikipedia.org/wiki/Special:CentralAutoLogin/start?type=1x1" alt="" title="" width="1" height="1" style="border: none; position: absolute;">