Machine de Boltzmann restreinte

Machine de Boltzmann restreinte
Type
Stochastic neural network (en)Voir et modifier les données sur Wikidata
Nom court
(en) RBMVoir et modifier les données sur Wikidata
Inventeurs
Paul Smolensky, Geoffrey HintonVoir et modifier les données sur Wikidata

modifier - modifier le code - modifier WikidataDocumentation du modèle

En apprentissage automatique, la machine de Boltzmann restreinte (en anglais : restricted boltzmann machine ou RBM) est un type de réseau de neurones artificiels pour l'apprentissage non supervisé.

Une RBM est constituée de deux couches de neurones : une couche visible représentant les variables d'entrée et une couche cachée représentant les variables latentes apprises par le modèle. Les neurones visibles sont connectés aux neurones cachés, sans connexion au sein de chaque couche. Fondés sur des modèles de probabilité, les états des neurones sont déterminés par des probabilités conditionnelles. L'apprentissage se fait par l'algorithme de contrastive divergence (CD), qui ajuste les poids et biais pour minimiser la divergence entre les distributions des données d'entrée et celles générées par le modèle.

La machine de Boltzmann restreinte est couramment utilisée pour estimer 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]. Elle entre dans le cadre des modèles graphiques et des modèles à base d'énergie[2].

Description

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.

Machine de Bolzmann

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.

On définit l'énergie pour une configuration de donnée de la manière suivante :

E = ( i , j w i j x i h j + i b i x i + j c j h j ) {\displaystyle E=-\left(\sum _{i,j}w_{ij}\,x_{i}\,h_{j}+\sum _{i}b_{i}\,x_{i}+\sum _{j}c_{j}h_{j}\right)}

où :

  • w i j {\displaystyle w_{ij}} est le poids entre le neurone j {\displaystyle j} et le neurone i {\displaystyle i}  ;
  • x i {\displaystyle x_{i}} est l'état, x i { 0 , 1 } {\displaystyle x_{i}\in \{0,1\}} , du neurone visible i {\displaystyle i}  ;
  • h j {\textstyle h_{j}} est l'état du neurone caché j {\textstyle j} ;
  • b i {\displaystyle b_{i}} et c j {\displaystyle c_{j}} sont respectivement les biais des neurones x i {\displaystyle x_{i}} et h j {\displaystyle h_{j}} .


La probabilité conjointe d'avoir une configuration ( x i , h j ) {\displaystyle (x_{i},h_{j})} est alors donnée par[3] :

P ( x i , h j ) = exp ( E ( x i , h j ) ) / Z {\displaystyle P(x_{i},h_{j})=\exp(-E(x_{i},h_{j}))/Z}

avec :

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

Machine de Bolzmann restreinte

Si l'on suppose que les neurones d'une même couche sont indépendants entre eux, on appelle cette configuration la machine de Boltzmann restreinte.

Apprentissage

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 :

[ log ( p ( x ( t ) ) ) ] θ = E h [ E ( x ( t ) , h ) θ | x ( t ) ] E x , y [ E ( x , h ) θ ] {\displaystyle {\frac {\partial \left[-\log(p(x^{(t)}))\right]}{\partial \theta }}=\mathbb {E} _{h}\left[{\frac {\partial E(x^{(t)},h)}{\partial \theta }}|x^{(t)}\right]-\mathbb {E} _{x,y}\left[{\frac {\partial E(x,h)}{\partial \theta }}\right]}

avec :

  • θ {\displaystyle \theta } les variables du système (les poids ou le biais) ;
  • E x , y {\displaystyle \mathbb {E} _{x,y}} l'espérance mathématique sur les variables aléatoires x {\displaystyle x} et y {\displaystyle y}  ;
  • x ( t ) {\displaystyle x^{(t)}} une valeur du jeu de données ;
  • E ( x , h ) {\displaystyle E(x,h)} 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[4] :

E h [ E ( x ( t ) , h ) W i j | x ( t ) ] = h ( x ( t ) ) x ( t ) T {\displaystyle \mathbb {E} _{h}\left[{\frac {\partial E(x^{(t)},h)}{\partial W_{ij}}}|x^{(t)}\right]=-h(x^{(t)})*{x^{(t)}}^{\mathsf {T}}}

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

h ( x ) = s i g m ( W x + b ) {\displaystyle h(x)=sigm(W*x+b)} .

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 constante 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 x ( t ) {\displaystyle x^{(t)}} . 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 :

x r e c = W T h ( x ) + c {\displaystyle x_{rec}=W^{\mathsf {T}}*h(x)+c}

avec c {\displaystyle c} le biais de la couche cachée de neurones H {\displaystyle H} .

De la même manière, on peut recalculer l'état de la couche cachée en réitérant le procédé. Finalement, on peut résumer l'algorithme de descente du gradient ainsi[5] (on parle de l'algorithme de contrastive divergence, couramment abrégé 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)

Notes et références

  1. (en) Paul Smolensky, David E. Rumelhart (dir.) et James L. McLelland (dir.), Parallel Distributed Processing: Explorations in the Microstructure of Cognition, Volume 1: Foundations, MIT Press, , 194–281 p. (ISBN 0-262-68053-X, lire en ligne), « Chapter 6: Information Processing in Dynamical Systems: Foundations of Harmony Theory ».
  2. Tiernan Ray, « EXCLUSIF : Yann LeCun (Meta) explore la frontière énergétique de l'apprentissage profond », sur ZDNet France (consulté le ).
  3. Ruslan Salakhutdinov et Geoffrey Hinton, « Deep Boltzmann Machines », dans AISTATS 2009, (lire en ligne [PDF]).
  4. « titre inconnu »(Archive.org • Wikiwix • Archive.is • Google • Que faire ?) [PDF].
  5. (en) Tijmen Tieleman, « Training restricted Boltzmann machines using approximations to the likelihood gradient », Proceedings of the 25th International Conference on Machine Learning, ACM Press,‎ , p. 1064–1071 (ISBN 978-1-60558-205-4, DOI 10.1145/1390156.1390290, lire en ligne [PDF], consulté le ).

Voir aussi

Articles connexes

v · m
Paradigmes d'apprentissage
Problèmes
Apprentissage supervisé
Classement
Régression
Prédiction structurée
Réseau de neurones artificiels
Apprentissage non supervisé et auto-supervisé
Clustering
Réduction de dimensions
IA générative et Modèle génératif
Métaheuristique d'optimisation
Théorie
Logiciels
  • icône décorative Portail des neurosciences
  • icône décorative Portail des probabilités et de la statistique
  • icône décorative Portail des données
  • icône décorative Portail de l'informatique théorique