Réseau de neurones de Hopfield
879420
30369533
2008-06-06T10:24:17Z
TXiKiBoT
195090
robot Ajoute: [[vi:Mạng Hopfield]]
{{ébauche|informatique}}
Le réseau de neurones d'Hopfield est un modèle de [[réseau de neurones récurrents]] à temps discret dont la matrice des connexions est symétrique et nulle sur la diagonale et où la dynamique est asynchrone (un seul neurone est mis à jour à chaque unité de temps). Il a été découvert par le physicien [[John Joseph Hopfield|John Hopfield]] en [[1982]]. Sa découverte a permis de relancer l'intérêt dans les réseaux de neurones qui s'était essouflé durant les années 70 suite à un article de [[Marvin Minsky]] et [[Seymour Papert]].
Un réseau de Hopfield est une mémoire adressable par son contenu : une forme mémorisée est retrouvée par une stabilisation du réseau, s'il a été stimulé par une partie adéquate de cette forme.
= Structure =
[[Image:Hopfield net.png|Thumb|200px|right|Un réseau de Hopfield à 4 neurones]]
Ce modèle de réseau est constitué de N [[neurone formel|neurones]] à états binaires (-1, 1 ou 0, 1 suivant les versions) tous interconnectés. L'entrée totale d'un neurone i est donc :
:<math> I_i = \sum_{j} w_{ij} V_j </math> <!-- TeX -->
où :
* <math>w_{ij}</math> est le poids de la connexion du neurone i à j
* <math>V_j</math> est l'état du neurone j
L'état du réseau peut être caractérisé par un mot de N bits correspondant à l'état de chaque neurone.
= Dynamique =
Le fonctionnement du réseau est séquencé par une horloge. On notera :
* <math>V_i(t)</math> ou <math>V_i</math> l'état du neurone i à l'instant t
* <math>V_i(t + 1)</math> l'état du neurone i à l'instant t + dt où dt désigne l'intervalle de temps entre 2 tops d'horloge
Il existe plusieurs alternatives assez équivalentes pour la mise à jour de l'état des neurones :
* Le mode [[stochastique]] original de Hopfield où chaque neurone modifie son état à un instant aléatoire selon une fréquence moyenne égale pour tous les neurones. Plus simplement on peut considérer qu'à chaque top d'horloge, on tire au hasard un neurone afin de le mettre à jour.
* Un mode synchrone où tous les neurones sont mis à jour simultanément.
* Un mode séquentiel où les neurones sont mis à jour selon un ordre défini.
Le calcul du nouvel état du neurone i se fait ainsi :
<math>V_i(t+1) = \left\{\begin{matrix} 1 & \mathrm{si}\sum_{j}{w_{ij}s_j}>0, \\
-1 & \mathrm{sinon}\end{matrix}\right.</math>
= Apprentissage =
L'apprentissage dans un réseau d'Hopfield consiste à faire en sorte que chacun des prototypes à mémoriser soit :
* Un état stable du réseau
* Un état attracteur permettant de le retrouver à partir d'états légérement différents
Pour estimer les poids, on se sert d'un apprentissage hebbien, inspiré de la [[règle de Hebb|loi de Hebb]] (théorisée par [[Donald Hebb|Hebb]] en [[1949]] et observée réellement dans le [[cerveau]] par Bliss et Lomo en [[1973]]). Donc l'une des représentation algébrique est:
:<math>w_{ij} = \frac{1}{n} \sum_{k=1}^p x_i^k x_j^k\,</math> , <!-- TeX -->
où <math>w_{ij} </math> est le poids de la connexion entre le neurone [[neurone formel|neurone]] <math> j </math> et le neurone <math> i </math>, <math> n </math> est la dimension du vecteur d'entrée, <math> p </math> le nombre de motif d'entraînement et <math> x_i^k </math> la <math>k</math>ième entrée du neurone <math> i </math>.
L'apprentissage hebbien minimise la fonction d'[[énergie]], c'est à dire que si deux unités sont actives simultanément, le poids de leurs connexions est augmenté ou dimuné.
= Limites =
Le réseau de Hopfield a cependant des limites bien connues : il ne peut stocker environ 0,14 n patterns avec n le nombre de neurones.
{{portail informatique}}
[[Catégorie:Neuromimétisme]]
[[Catégorie:Sciences cognitives]]
[[de:Hopfield-Netz]]
[[en:Hopfield net]]
[[ja:ホップフィールド・ネットワーク]]
[[lv:Hopfīlda tīkls]]
[[ru:Нейронная сеть Хопфилда]]
[[sv:Hopfieldnät]]
[[vi:Mạng Hopfield]]