Basic to advanced level of generative model with code.
-- autoencoders can be used for dimension reduction before the data is processed by other algorithms.
-- "If one trains an autoencoder in a compression context on pictures of dogs, it will not generalize well to an application requiring data compression on pictures of cars"
-- A typical autoencoder consists of multiple layers of progressively fewer neurons for encoding the original input called a bottleneck layer. One danger is that the resulting algorithms may be missing important dimensions for the problem if the bottleneck layer is too narrow.