1.什么是deep auto-encoder?
2.原理:
3.应用场景:
4.优化算法:
什么是deep auto-encoder?
看到deep 一定会想到是建立神经网络,那究竟是不是呢?让我们来看下面的图,现在有一张28*28 的image 我们通过enconder(多个隐藏层) 后使它下降维到一个维度(下图种的coder),这个维度可能是2维,3维,10维等等,但不会超过784维。我们可以认为这个code 里包含了这张image的主要特征。问题来了,这是unspervised learning 我们没有label data 如何判断code符不符合我们的预期也就是它到底能不能代表主要的特征呢?好,那就试试用现在coder通过decoder(多个隐藏层与encoder层数一致)得到一个新的image,所以得出隐藏层的参数使得前后两个图片的相似性最大。这就是Auto-encoding。
它的原理是什么呢?
首先我们知道pca是x通过一层W后降维到c,然后c反作用于W的tranpose得到xhat 然后minimize x和xhat 训练出W 即可。其实auto-encoder 的原理跟pca差不多。
下图所示,input x 通过W1 到一个layer(这个layer 实际就是通过W1降维后的结果,这里的W 就是pca中的W也就是在pca中找出的特征向量)然后再通过W2又得到下一个一个layer,以此类推,直到得到一个得到一个特别小特别窄的layer 把它叫做Bottleneck 这个layer 就是要找的code。找到这个code后使它通过W2 transpose,W1 tranpose 由后到前得到一个output xhat。auto-encoder 就是通过back propagation 训练W使得x和xhat差异最小。