Machine Boltzmann

Ce sont des processus d'apprentissage stochastiques ayant une structure récurrente et sont à la base des premières techniques d'optimisation utilisées dans ANN. Boltzmann Machine a été inventé par Geoffrey Hinton et Terry Sejnowski en 1985. Plus de clarté peut être observée dans les mots de Hinton sur Boltzmann Machine.

«Une caractéristique surprenante de ce réseau est qu'il n'utilise que des informations disponibles localement. Le changement de poids dépend uniquement du comportement des deux unités qu'il relie, même si le changement optimise une mesure globale »- Ackley, Hinton 1985.

Quelques points importants sur Boltzmann Machine -

  • Ils utilisent une structure récurrente.

  • Ils sont constitués de neurones stochastiques, qui ont l'un des deux états possibles, 1 ou 0.

  • Certains neurones sont adaptatifs (état libre) et certains sont bloqués (état gelé).

  • Si nous appliquons un recuit simulé sur un réseau de Hopfield discret, il deviendrait Boltzmann Machine.

Objectif de la machine Boltzmann

L'objectif principal de Boltzmann Machine est d'optimiser la solution d'un problème. C'est le travail de Boltzmann Machine d'optimiser les poids et la quantité liés à ce problème particulier.

Architecture

Le schéma suivant montre l'architecture de la machine Boltzmann. Il ressort clairement du diagramme qu'il s'agit d'un tableau d'unités à deux dimensions. Ici, les poids sur les interconnexions entre les unités sont–pp > 0. Les poids des auto-connexions sont donnés parbb > 0.

Algorithme de formation

Comme nous savons que les machines Boltzmann ont des poids fixes, il n'y aura donc pas d'algorithme d'entraînement car nous n'avons pas besoin de mettre à jour les poids dans le réseau. Cependant, pour tester le réseau, nous devons définir les pondérations ainsi que trouver la fonction de consensus (CF).

La machine Boltzmann a un ensemble d'unités Ui et Uj et a des connexions bidirectionnelles sur eux.

  • Nous considérons le poids fixe dire wij.

  • wij ≠ 0 si Ui et Uj est connecté.

  • Il existe également une symétrie d'interconnexion pondérée, c'est-à-dire wij = wji.

  • wii existe également, c'est-à-dire qu'il y aurait l'auto-connexion entre les unités.

  • Pour toute unité Ui, son état ui serait 1 ou 0.

L'objectif principal de Boltzmann Machine est de maximiser la fonction de consensus (CF) qui peut être donnée par la relation suivante

$$ CF \: = \: \ displaystyle \ sum \ limits_ {i} \ displaystyle \ sum \ limits_ {j \ leqslant i} w_ {ij} u_ {i} u_ {j} $$

Maintenant, lorsque l'état passe de 1 à 0 ou de 0 à 1, alors le changement de consensus peut être donné par la relation suivante -

$$ \ Delta CF \: = \ :( 1 \: - \: 2u_ {i}) (w_ {ij} \: + \: \ displaystyle \ sum \ limits_ {j \ neq i} u_ {i} w_ { ij}) $$

Ici ui est l'état actuel de Ui.

La variation du coefficient (1 - 2ui) est donnée par la relation suivante -

$$ (1 \: - \: 2u_ {i}) \: = \: \ begin {cases} +1, & U_ {i} \: est \: actuellement \: off \\ - 1, & U_ {i } \: est \: actuellement \: on \ end {cases} $$

Généralement, l'unité Uine change pas son état, mais si tel est le cas, les informations résideront au niveau local de l'unité. Avec ce changement, il y aurait également une augmentation du consensus du réseau.

La probabilité du réseau d'accepter le changement d'état de l'unité est donnée par la relation suivante -

$$ AF (i, T) \: = \: \ frac {1} {1 \: + \: exp [- \ frac {\ Delta CF (i)} {T}]} $$

Ici, Test le paramètre de contrôle. Il diminuera lorsque CF atteindra la valeur maximale.

Algorithme de test

Step 1 - Initialisez les éléments suivants pour démarrer la formation -

  • Poids représentant la contrainte du problème
  • Paramètre de contrôle T

Step 2 - Continuez les étapes 3 à 8, lorsque la condition d'arrêt n'est pas vraie.

Step 3 - Exécutez les étapes 4-7.

Step 4 - Supposons que l'un des états a changé le poids et choisissez l'entier I, J sous forme de valeurs aléatoires entre 1 et n.

Step 5 - Calculez le changement de consensus comme suit -

$$ \ Delta CF \: = \ :( 1 \: - \: 2u_ {i}) (w_ {ij} \: + \: \ displaystyle \ sum \ limits_ {j \ neq i} u_ {i} w_ { ij}) $$

Step 6 - Calculer la probabilité que ce réseau accepte le changement d'état

$$ AF (i, T) \: = \: \ frac {1} {1 \: + \: exp [- \ frac {\ Delta CF (i)} {T}]} $$

Step 7 - Acceptez ou rejetez ce changement comme suit -

Case I - si R < AF, acceptez le changement.

Case II - si R ≥ AF, rejetez le changement.

Ici, R est le nombre aléatoire compris entre 0 et 1.

Step 8 - Réduisez le paramètre de contrôle (température) comme suit -

T(new) = ⁡0.95T(old)

Step 9 - Test des conditions d'arrêt qui peuvent être les suivantes -

  • La température atteint une valeur spécifiée
  • Il n'y a pas de changement d'état pour un nombre spécifié d'itérations