Aller au contenu

« Réseau de neurones de Hopfield » : différence entre les versions

Un article de Wikipédia, l'encyclopédie libre.
Contenu supprimé Contenu ajouté
Patrick.Delbecq (discuter | contributions)
mAucun résumé des modifications
D Cat laz (discuter | contributions)
→‎Apprentissage : Ajout règle de Storkey pour l'apprentissage à partir de la traduction de l'anglais
Ligne 42 : Ligne 42 :
* un état attracteur permettant de le retrouver à partir d'états légèrement différents.
* un état attracteur permettant de le retrouver à partir d'états légèrement différents.


=== Règle d'apprentissage de Hebb pour les réseaux de Hopfield ===
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ésentations algébrique est :
Pour estimer les poids, on peut utiliser un apprentissage hebbien, inspiré de la [[règle de Hebb]]. Qui donne pour retenir <math>p</math> motif d'entraînement :


:<math>w_{ij} = \frac{1}{n} \sum_{k=1}^p x_i^k x_j^k\,</math>
:<math>w_{ij} = \frac{1}{n} \sum_{k=1}^p x_i^k x_j^k\,</math>


où <math>w_{ij}</math> est le poids de la connexion entre le [[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> et <math>x_j^k</math> sont respectivement la <math>k</math>ième entrée des neurones <math>i</math> et <math>j</math>.
où <math>w_{ij}</math> est le poids de la connexion entre le [[neurone formel|neurone]] <math>j</math> et le neurone <math>i</math>, <math>n</math> est la dimension du vecteur d'entrée, et <math>x_i^k</math> et <math>x_j^k</math> sont respectivement la <math>k</math>ième entrée des neurones <math>i</math> et <math>j</math>.

Si les bits correspondant aux neurones <math>i</math> et <math>j</math> sont égaux dans le motif <math>\mu</math>, alors le produit <math> \epsilon_{i}^\mu \epsilon_{j}^\mu </math> sera sois positif. Cela aurait, à son tour, un effet positif sur le poids <math>w_{ij} </math> et les valeurs de <math>i</math> et <math>j</math> auront tendance à devenir égales. L'inverse se produit si les bits correspondant aux neurones <math>i</math> et <math>j</math> sont différents.


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 diminué.
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 diminué.

=== Règle d'apprentissage de Storkey ===
Cette règle a été introduite par [[Amos Storkey]] en 1997 et est à la fois locale et incrémentielle. Storkey a également montré qu'un réseau Hopfield entraîné à l'aide de cette règle a une plus grande capacité qu'un réseau correspondant entraîné à l'aide de la règle de Hebb.<ref name="storkey1997">{{cite book|last=Storkey|first=Amos|chapter=Augmenter capacité d'un réseau Hopfield sans sacrifier la fonctionnalité|title=Artificial Neural Networks – ICANN'97|year=1997|citeseerx=10.1.1.33.103|pages=451–6|doi=10.1007/BFb0020196|publisher=Springer|series=Lecture Notes en informatique|volume=1327|isbn=978-3-540-69620-9}}</ref> Le réseaux suit la règle d'apprentissage de Storkey si il obéit :

<math> w_{ij}^{\nu} = w_{ij}^{\nu-1} +\frac{1}{n}\epsilon_{i}^{\nu} \epsilon_{j}^{\nu} -\frac{1}{n}\epsilon_{i}^{\nu} h_{ji}^{\nu} -\frac{1}{n}\epsilon_{j}^{\nu} h_{ij}^{\nu} </math>

où <math> h_{ij}^{\nu} = \sum_{k=1~ :~i\neq k\neq j}^{n} w_{ik}^{\nu-1}\epsilon_{k }^{\nu} </math> est une forme de ''champ local''<ref name="storkey1991basins">{{cite journal|first1=A.J.|last1=Storkey|last2=Valabregue|title=Les bassins d'attraction d'une nouvelle règle d'apprentissage de Hopfield|journal=Neural Networks|volume=12|issue=6|year=1999|pmid=12662662|doi=10.1016/S0893-6080(99 )00038-6|pages=869–876|premier2=R.|citeseerx=10.1.1.19.4681}}</ref> au niveau du neurone i.

Cette règle d'apprentissage est locale, puisque les synapses ne prennent en compte que les neurones à leurs côtés. La règle utilise plus d'informations provenant des modèles et des poids que la règle de Hebb généralisée, en raison de l'effet du champ local.


== Limites ==
== Limites ==

Version du 3 mai 2023 à 14:42

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é popularisé par le physicien John Hopfield en 1982[1]. Sa découverte a permis de relancer l'intérêt dans les réseaux de neurones qui s'était essoufflé durant les années 1970 à la suite d'un article de Marvin Minsky et Seymour Papert. Les réseaux de Hopfield rentre dans le cadre des modèles à base d'énergie[2].

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

Un réseau de Hopfield à 4 neurones.

Ce modèle de réseau est constitué de N neurones à états binaires (-1, 1 ou 0, 1 suivant les versions) tous interconnectés. L'entrée totale d'un neurone i est donc :

où :

  • est le poids de la connexion du neurone i au neurone j ;
  • 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 :

  • ou l'état du neurone i à l'instant t ;
  • 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 :

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.

Règle d'apprentissage de Hebb pour les réseaux de Hopfield

Pour estimer les poids, on peut utiliser un apprentissage hebbien, inspiré de la règle de Hebb. Qui donne pour retenir motif d'entraînement :

est le poids de la connexion entre le neurone et le neurone , est la dimension du vecteur d'entrée, et et sont respectivement la ième entrée des neurones et .

Si les bits correspondant aux neurones et sont égaux dans le motif , alors le produit sera sois positif. Cela aurait, à son tour, un effet positif sur le poids et les valeurs de et auront tendance à devenir égales. L'inverse se produit si les bits correspondant aux neurones et sont différents.

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 diminué.

Règle d'apprentissage de Storkey

Cette règle a été introduite par Amos Storkey en 1997 et est à la fois locale et incrémentielle. Storkey a également montré qu'un réseau Hopfield entraîné à l'aide de cette règle a une plus grande capacité qu'un réseau correspondant entraîné à l'aide de la règle de Hebb.[3] Le réseaux suit la règle d'apprentissage de Storkey si il obéit :

est une forme de champ local[4] au niveau du neurone i.

Cette règle d'apprentissage est locale, puisque les synapses ne prennent en compte que les neurones à leurs côtés. La règle utilise plus d'informations provenant des modèles et des poids que la règle de Hebb généralisée, en raison de l'effet du champ local.

Limites

Le réseau de Hopfield a cependant des limites bien connues : il ne peut stocker qu'environ 0,14 motifs avec le nombre de neurones. Des modèles ultérieurs, s'inspirant du réseau de Hopfield mais en modifiant les règles de stockage et d'accès, permettent d'agrandir cette limite de stockage[5].

Voir aussi

Notes et références

  1. (en) J. J. Hopfield, « Neural networks and physical systems with emergent collective computational abilities », Proceedings of the National Academy of Sciences, vol. 79, no 8,‎ , p. 2554–2558 (ISSN 0027-8424 et 1091-6490, PMID 6953413, DOI 10.1073/pnas.79.8.2554, lire en ligne, consulté le )
  2. Par Tiernan Ray |, « EXCLUSIF : Yann LeCun (Meta) explore la frontière énergétique de l'apprentissage profond », sur ZDNet France (consulté le ).
  3. (en) Amos Storkey, Artificial Neural Networks – ICANN'97, vol. 1327, Springer, coll. « Lecture Notes en informatique », , 451–6 p. (ISBN 978-3-540-69620-9, DOI 10.1007/BFb0020196, CiteSeerx 10.1.1.33.103), « Augmenter capacité d'un réseau Hopfield sans sacrifier la fonctionnalité »
  4. A.J. Storkey et Valabregue, « Les bassins d'attraction d'une nouvelle règle d'apprentissage de Hopfield », Neural Networks, vol. 12, no 6,‎ , p. 869–876 (PMID 12662662, DOI 10.1016/S0893-6080(99 )00038-6, CiteSeerx 10.1.1.19.4681)
  5. Ala ABOUDIB, Vincent GRIPON et Xiaoran JIANG, « A study of retrieval algorithms of sparse messages in networks of neural cliques », COGNITIVE 2014 : the 6th International Conference on Advanced Cognitive Technologies and Applications,‎ , p. 140–146 (lire en ligne, consulté le ).

Articles connexes

Liens externes

  • Neural Lab - interface graphique en Python et Gtk permettant de manipuler un reseaux de hopfield