Machine de Boltzmann restreinte

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher

En apprentissage automatique, la machine de Boltzmann restreinte est un type de réseau de neurones artificiels pour l'apprentissage non supervisé. Elle est couramment utilisée pour avoir une estimation de la distribution probabiliste d'un jeu de données. Elle a initialement été inventée sous le nom de Harmonium en 1986 par Paul Smolenski.[1]

Description[modifier | modifier le code]

Dans sa forme la plus simple, une machine de Boltzmann est composée d'une couche de neurones qui reçoit l'entrée, ainsi que d'une couche de neurones cachée. Si on suppose que les neurones d'une même couche sont indépendants entre eux, on appelle cette configuration une machine de Boltzmann restreinte (RBM).

Machine de Boltzmann Restreinte

On définit une énergie d'activation pour une Machine de Boltzmann Restreinte de la manière suivante:


Avec:

  • la matrice de poids entre le neurone et le neurone  ;
  • est l'état, , du neurone visible  ;
  • est l'état du neurone caché ;
  • et sont respectivement les biais des neurones et .


La probabilité conjointe d'avoir une configuration est alors donnée par[2]

Avec :

  • la fonction d'énergie définie ci-dessus ;
  • une fonction de normalisation, qui fait en sorte que la somme de toutes les probabilités fasse 1.

Apprentissage[modifier | modifier le code]

La machine de Boltzmann s’entraîne à l'aide d'un apprentissage non supervisé. On cherche à minimiser la log-vraisemblance. La dérivée de la log-vraisemblance donne l'expression suivante:

Avec:

  • les variables du systèmes (les poids ou le biais) ;
  • l'espérance mathématiques sur les variables aléatoires et  ;
  • une valeur du jeu de données ;
  • l'énergie définie ci-dessus.

On remarque la présence de deux termes dans cette expression, appelés phase positive et phase négative. La phase positive se calcule aisément pour le biais et pour la matrice des poids.

On obtient alors[3]:

Avec h(x) l'état de la couche cachée sachant x donnée par la formule

La partie la plus compliquée est de calculer ce qu'on appelle la phase négative. On ne peut pas la calculer directement car on ne connaît pas la fonction de normalisation du système. Pour pouvoir effectuer une descente de gradient, on calcule ce que l'on appelle la reconstruction de l'entrée . En effet, les propriétés de symétrie du système permettent de calculer l'entrée estimée par le modèle, il suffit d'appliquer la formule:

avec le biais de la couche cachée de neurones .

De la même manière, on peut recalculer l'état de la couche cachée en réitérant le procédé. Au final, on peut résumer l'algorithme de descente du gradient ainsi[4] (on parle de l'algorithme CD-k)

x <= x(t)
h <= W*x + b
phasePositive <= -h*Transpose(x)
Pour i allant de 1 à k:
    x = Transpose(W) * h(x) + c
    h = W*x + b
phaseNegative <= -h*transpose(x)
gradient <= phasePositive-phaseNegative
W <= W + alpha*gradient
c <= c + alpha*(x(t)-x)
b <= b + alpha*(h(x(t)) - h)

Extension[modifier | modifier le code]

La machine de Boltzmann restreinte est en fait un cas particulier de Machine de Boltzmann où les neurones d'une même couche sont indépendants entre eux. Les calculs sont grandement facilités par cette approximation mais les résultats obtenus sont moins bons.

Articles connexes[modifier | modifier le code]

Notes et références[modifier | modifier le code]

  1. (en) Paul Smolensky, Parallel Distributed Processing: Explorations in the Microstructure of Cognition, Volume 1: Foundations, MIT Press, , 194–281 p. (ISBN 0-262-68053-X), « Chapter 6: Information Processing in Dynamical Systems: Foundations of Harmony Theory »
  2. Ruslan Salakhutdinov et Geoffrey Hinton, « Deep Boltzmann Machines », dans AISTATS 2009, (lire en ligne).
  3. http://image.diku.dk/igel/paper/AItRBM-proof.pdf
  4. http://www.cs.toronto.edu/~tijmen/pcd/pcd.pdf