Une machine de Helmholtz est un type de réseau de neurones conçu pour l'apprentissage non supervisé de modèles probabilistes. Elle a été introduite en 1995 par Geoffrey Hinton, Peter Dayan, Brendan Frey et Richard Zemel. L'architecture se compose de deux composants complémentaires : un modèle de reconnaissance qui mappe les données d'entrée vers une distribution sur les variables latentes, et un modèle génératif qui reconstruit les données à partir de ces variables latentes. La machine est entraînée à l'aide de l'algorithme wake-sleep, qui alterne entre l'ajustement des poids de reconnaissance pour inférer les états latents et l'ajustement des poids génératifs pour reconstruire les données.
La machine de Helmholtz est nommée d'après Hermann von Helmholtz, un physicien et physiologiste du XIXe siècle qui a proposé que la perception implique une inférence inconsciente - le cerveau construit un modèle du monde pour interpréter les entrées sensorielles. La machine incarne cette idée en apprenant un modèle génératif hiérarchique des données, où les niveaux supérieurs représentent des caractéristiques plus abstraites et les niveaux inférieurs représentent des détails plus fins.
Architecture
La machine de Helmholtz a une structure en couches avec deux ensembles de connexions. Les connexions ascendantes (de reconnaissance) vont de la couche d'entrée à la couche supérieure, et les connexions descendantes (génératives) vont dans la direction inverse. Chaque couche contient un ensemble d'unités binaires stochastiques. Le modèle de reconnaissance calcule la probabilité que chaque unité cachée soit active étant donné la couche inférieure, tandis que le modèle génératif calcule la probabilité que chaque unité soit active étant donné la couche supérieure.
Cette conception bidirectionnelle permet au réseau d'effectuer à la fois l'inférence (reconnaissance de motifs) et la génération (production de nouveaux échantillons). Le modèle de reconnaissance approxime la distribution a posteriori sur les variables latentes, qui est généralement impossible à calculer exactement. Le modèle génératif définit une distribution conjointe sur les données et les variables latentes, qui peut être échantillonnée pour produire de nouveaux points de données.
Algorithme Wake-Sleep
L'algorithme wake-sleep est une procédure d'entraînement en deux phases. Dans la phase d'éveil, le réseau reçoit un vecteur de données, et le modèle de reconnaissance est utilisé pour échantillonner un ensemble d'états latents de bas en haut. Ces états échantillonnés sont ensuite utilisés pour ajuster les poids génératifs, afin que le modèle génératif reconstruise mieux les données. Dans la phase de sommeil, le modèle génératif est utilisé pour échantillonner un ensemble d'états latents de haut en bas, et ceux-ci sont utilisés pour ajuster les poids de reconnaissance, afin que le modèle de reconnaissance infère mieux les états latents qui ont produit les échantillons.
L'algorithme est une approximation de l'apprentissage par maximum de vraisemblance. Il n'est pas garanti de converger vers un optimum global, mais il est efficace sur le plan computationnel et fonctionne bien en pratique pour de nombreuses tâches. L'algorithme wake-sleep a été un exemple précoce de méthode pour entraîner des modèles génératifs profonds, et il a influencé des développements ultérieurs tels que les autoencodeurs variationnels et les machines de Boltzmann.
Applications et Influence
Les premières applications de la machine de Helmholtz comprenaient la reconnaissance de chiffres manuscrits et la modélisation de documents. La machine était capable d'apprendre des caractéristiques utiles à partir de données non étiquetées, qui pouvaient ensuite être utilisées pour la classification ou d'autres tâches en aval. Le concept d'apprentissage de représentations hiérarchiques par une combinaison de traitement ascendant et descendant a été influent dans le développement du apprentissage profond.
De nombreux modèles génératifs modernes, y compris les réseaux antagonistes génératifs et les modèles de diffusion, s'appuient sur des idées qui ont été explorées pour la première fois dans la machine de Helmholtz. L'algorithme wake-sleep a également anticipé l'utilisation de l'algorithme espérance-maximisation dans les modèles à variables latentes, bien qu'il diffère dans son approche de l'approximation de la distribution a posteriori.
Limitations et Développements Ultérieurs
La machine de Helmholtz originale présentait plusieurs limitations. Le modèle de reconnaissance était un simple réseau feedforward, ce qui limitait sa capacité à capturer des distributions a posteriori complexes. L'algorithme wake-sleep souffrait également d'une inadéquation entre la distribution utilisée pour entraîner le modèle de reconnaissance et la véritable distribution a posteriori, ce qui pouvait conduire à des solutions sous-optimales.
Des travaux ultérieurs ont abordé ces problèmes en introduisant des méthodes d'inférence plus sophistiquées, telles que l'inférence variationnelle et l'inférence amortie. L'autoencodeur variationnel, introduit en 2013 par Diederik Kingma et Max Welling, peut être considéré comme un descendant moderne de la machine de Helmholtz, utilisant un modèle de reconnaissance appris et un modèle génératif entraîné en maximisant une borne inférieure sur la vraisemblance.