Wake-sleep algorithm
The wake-sleep algorithm[1] is an unsupervised learning algorithm for deep generative models, especially Helmholtz Machines.[2] The algorithm is similar to the expectation-maximization algorithm,[3] and optimizes the model likelihood for observed data.[4] The name of the algorithm derives from its use of two learning phases, the “wake” phase and the “sleep” phase, which are performed alternately.[1] It can be conceived as a model for learning in the brain,[5] but is also being applied for machine learning.[6]
Description
[edit | edit source]The goal of the wake-sleep algorithm is to find a hierarchical representation of observed data.[7] In a graphical representation of the algorithm, data is applied to the algorithm at the bottom, while higher layers form gradually more abstract representations. Between each pair of layers are two sets of weights: Recognition weights, which define how representations are inferred from data, and generative weights, which define how these representations relate to data.[8]
Training
[edit | edit source]Training consists of two phases – the “wake” phase and the “sleep” phase. It has been proven that this learning algorithm is convergent.[3]
The "wake" phase
[edit | edit source]Neurons are fired by recognition connections (from what would be input to what would be output). Generative connections (leading from outputs to inputs) are then modified to increase probability that they would recreate the correct activity in the layer below – closer to actual data from sensory input.[1]
The "sleep" phase
[edit | edit source]The process is reversed in the “sleep” phase – neurons are fired by generative connections while recognition connections are being modified to increase probability that they would recreate the correct activity in the layer above – further to actual data from sensory input.[1]
Extensions
[edit | edit source]Since the recognition network is limited in its flexibility, it might not be able to approximate the posterior distribution of latent variables well.[6] To better approximate the posterior distribution, it is possible to employ importance sampling, with the recognition network as the proposal distribution. This improved approximation of the posterior distribution also improves the overall performance of the model.[6]
See also
[edit | edit source]- Restricted Boltzmann machine, a type of neural net that is trained with a conceptually similar algorithm.
- Helmholtz machine, a neural network model trained by the wake-sleep algorithm.
References
[edit | edit source]- ^ a b c d Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ a b c Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).