J'ai suivi le cours sur les réseaux neuronaux de Geoff Hinton sur Coursera et également l' introduction aux machines Boltzmann restreintes , mais je ne comprenais toujours pas l'intuition derrière les RBM.
Pourquoi devons-nous calculer l'énergie dans cette machine? Et à quoi sert la probabilité dans cette machine? J'ai aussi vu cette vidéo . Dans la vidéo, il vient d'écrire les équations de probabilité et d'énergie avant les étapes de calcul et ne semble les utiliser nulle part.
Pour ajouter à ce qui précède, je ne sais pas à quoi sert la fonction de vraisemblance?
unsupervised-learning
rbm
Born2Code
la source
la source
Réponses:
Les RBM sont une bête intéressante. Pour répondre à votre question et pour vous rafraîchir la mémoire, je vais dériver des RBM et parler de la dérivation. Vous avez mentionné que vous êtes confus quant à la probabilité, donc ma dérivation sera du point de vue d'essayer de maximiser la probabilité. Commençons donc.
Les RBM contiennent deux ensembles différents de neurones, visible et caché, je les dénoterai respectivement et h . Étant donné une configuration spécifique de v et h , nous cartographions l'espace de probabilité.v h v h
Il y a encore deux choses à définir. La fonction de substitution que nous utilisons pour mapper d'une configuration spécifique à l'espace de probabilité est appelée la fonction d'énergie . La constante Z est un facteur de normalisation pour garantir que nous mappons réellement sur l'espace de probabilité. Passons maintenant à ce que nous recherchons vraiment; la probabilité d'un ensemble de neurones visibles, en d'autres termes, la probabilité de nos données. Z = ∑ v ∈ V ∑ h ∈ H e - E ( v , h ) p ( v )E(v,h) Z
Bien qu'il y ait beaucoup de termes dans cette équation, cela revient simplement à écrire les équations de probabilité correctes. Si tout va bien, jusqu'à présent, cela vous a aidé à réaliser pourquoi nous avons besoin fonction d'énergie pour calculer la probabilité, ou ce qui se fait le plus souvent la probabilité non normalisée . La probabilité non normalisée est utilisée car la fonction de partition Z est très coûteuse à calculer.p ( v ) ∗ Z Z
Passons maintenant à la phase d'apprentissage réelle des RBM. Pour maximiser la vraisemblance, pour chaque point de données, nous devons faire un pas de gradient pour faire . Pour obtenir les expressions de dégradé, il faut quelques acrobaties mathématiques. La première chose que nous faisons est de prendre le log de p ( v ) . Nous allons désormais opérer dans l'espace logarithmique des probabilités afin de rendre le calcul possible.p ( v ) = 1 p ( v )
Prenons le gradient par rapport à les paramètres en p ( v )
Maintenant, je l'ai fait sur papier et j'ai écrit l'équation demi-finale pour ne pas perdre beaucoup d'espace sur ce site. Je vous recommande de dériver ces équations vous-même. Maintenant, je vais écrire quelques équations qui aideront à poursuivre notre dérivation. Notez que: , p ( v ) = ∑ h ∈ H p ( v , h ) et que p ( h | v ) =Zp ( v , h ) = e- E( v , h′) p ( v ) = ∑h ∈ Hp ( v , h ) p ( h | v ) = p ( v , h )p ( h )
Et voilà, nous avons dérivé l'estimation du maximum de vraisemblance pour les RBM, si vous voulez, vous pouvez écrire les deux derniers termes via l'attente de leurs termes respectifs (conditionnel et probabilité conjointe).
Notes sur la fonction énergétique et la stochasticité des neurones.
Comme vous pouvez le voir ci-dessus dans ma dérivation, j'ai laissé la définition de la fonction énergétique plutôt vague. Et la raison en est que de nombreuses versions différentes de RBM implémentent diverses fonctions énergétiques. Celui que Hinton décrit dans la conférence liée ci-dessus, et montré par @ Laurens-Meeus est:
Il pourrait être plus facile de raisonner sur les termes de gradient ci-dessus via le formulaire d'attente.
L'attente du premier terme est en fait très facile à calculer, et c'était le génie derrière les RBM. En restreignant la connexion, l'attente conditionnelle devient simplement une propagation vers l'avant de la RBM avec les unités visibles bloquées. Il s'agit de la soi-disant phase de réveil des machines Boltzmann. Maintenant, le calcul du deuxième terme est beaucoup plus difficile et généralement des méthodes de Monte Carlo sont utilisées pour le faire. Écriture du gradient via la moyenne des courses de Monte Carlo:
Le calcul du premier terme n'est pas difficile, comme indiqué ci-dessus, donc Monte-Carlo se fait sur le second terme. Les méthodes de Monte Carlo utilisent un échantillonnage aléatoire successif de la distribution, pour calculer l'espérance (somme ou intégrale). Maintenant, cet échantillonnage aléatoire dans les RBM classiques est défini comme définissant une unité sur 0 ou 1 sur la base de sa probabilité de manière stochastique, en d'autres termes, obtenez un nombre uniforme aléatoire, s'il est inférieur à la probabilité des neurones, définissez-le sur 1, s'il est supérieur à la mettre à 0.
la source
En plus des réponses existantes, je voudrais parler de cette fonction énergétique, et de l'intuition derrière cela un peu. Désolé si c'est un peu long et physique.
La fonction énergétique décrit un modèle dit d' Ising , qui est un modèle de ferromagnétisme en termes de mécanique statistique / mécanique quantique. En mécanique statistique, nous utilisons un soi-disant opérateur hamiltonien pour décrire l'énergie d'un système de mécanique quantique. Et un système essaie toujours d'être dans l'état avec l'énergie la plus basse.
Nous devons utiliser une quantité physique finale: l'entropie. Comme nous le savons de la thermodynamique, un système va s'installer dans l'état avec l'énergie minimale, ce qui correspond également à l'état avec l'entropie maximale.
Enfin , c'est là que nous revenons aux RBM: Fondamentalement, nous voulons que cette RBM code autant d' informations que possible. Donc, comme nous devons maximiser l'entropie (théorique de l'information) dans notre système RBM. Comme proposé par Hopfield en 1982, nous pouvons maximiser l'entropie théorique de l'information exactement comme l'entropie physique: en modélisant la RBM comme le modèle d'Ising ci-dessus, et en utilisant les mêmes méthodes pour minimiser l'énergie. Et c'est pourquoi nous avons besoin de cette étrange fonction d'énergie dans un RBM!
La belle dérivation mathématique dans la réponse d'Armen Aghajanyan montre tout ce que nous devons faire, pour minimiser l'énergie, maximisant ainsi l'entropie et stockant / économisant autant d'informations que possible dans notre RBM.
PS: S'il vous plaît, chers physiciens, pardonnez toutes les inexactitudes dans la dérivation de cet ingénieur. N'hésitez pas à commenter ou à corriger des inexactitudes (voire des erreurs).
la source
La réponse de @Armen m'a donné beaucoup d'idées. Une question n'a cependant pas reçu de réponse.
la source
h_bin = (rand() < h_val) ? 1 : 0
h
ouv
- vous échantillonnez un vecteur de valeurs binaires pourh
ouv
, afin de générer un exemple que le réseau "croit" qu'il existe - c'est-à-dire un exemple qui a une grande chance statistique d'être représentatif de la ensemble d'entraînement. Au cours de la formation, vous déterminez dans quelle mesure il correspond à un exemple de formation existant et ajustez les poids en conséquence.