Nous allons implémenter les fonctions proposées dans le papier "Hopfield network is all you need", papier génial qui offre une excellente introduction aux réseaux de Hopfield contemporain.
Le lien vers l'article en question : Hopfield Networks is All You Need.
Fonctions d'utilité générale
Afin de faciliter l'implémentation des équations des réseaux de Hopfield, nous allons écrire quelques verbes qui nous serons utiles tout au long de notre cheminement.
rndw
Ce verbe est expliqué ici : https://code.jsoftware.com/wiki/Fifty_Shades_of_J/Chapter_28 . Il permet de générer des nombres aléatoire suivant une certaine distribution. Littéralement "weighted random".
Exemple:
dot
Il s'agit de la multiplication matricielle. Plus d'informations ici : https://aplwiki.com/wiki/Inner_Product et ici https://en.wikipedia.org/wiki/Dot_product (en) et ici https://fr.wikipedia.org/wiki/Produit_matriciel (fr)
Exemple:
Conversion de données binaires en bipolaires
Nous utiliserons au début de l’implémentation des réseaux de hopfield des données binaires (on parle de motifs dans le cadre des réseaux de Hopfield), composées de 1 et de 0. L'algorithme canonique de Hopfield utilise des données polaires, ou chaque 0 est remplacé par -1. Il convient donc de définir deux verbes qui permettent de passer de l'un à l'autre. Notez l'utilisation de ^:-1 pour exprimer la "négation" du premier verbe.
Exemple:
Affichage des motifs
Ce verbe est compatible avec des données binaires comme bipolaires. Il permet d'afficher de manière un peu plus agréable les motifs.
Exemple:
A suivre
Nous disposons à présent de tout ce dont nous aurons besoin pour implémenter les équations du papier "Hopfield network is all you need", ce que nous ferons dans un article ultérieur.
Commentaires
Enregistrer un commentaire