一些挑战:
网络结构的选择。CNN的想法是对邻近的输入,有着相同的weight。
模型复杂度。
最优化的初始点选择。pre-training
计算复杂度。
包含pre-training的DL框架
如何做pre-training? 下面介绍了一种方式。
weight可以看做是对x做特征转换,那么希望在第一次转换后(从0层到1层)仍然能保持足够多的原来的信息,那么再从1层回到0层,应该得到近似的结果。
这种NN叫做autoencoder,两层分别是编码和解码的操作,来逼近 identity function。
通过逼近 identity function的方式,能够学习到数据中隐藏的结构,当做一种变换。
对监督学习:有信息价值的表示
对无监督学习:对典型数据的表示
autoencoder的损失函数用平方误差表示,因为只用到了x,可以看做是无监督学习。
一般限制编码的权重等于解码的权重,减少变量的个数,降低复杂度。
deep learning中的正则化
对noise的处理?
加入一些人为噪音,使得autoencoder的pre-training更健壮。
linear autoencoder
这里用到了对称矩阵的特征值分解。V是正交矩阵。
对有两个变量的问题求解,首先固定V,求解beta.
非常巧,这里的结果和pca的结论是一样的。因为它们本质上都是找到一个变换使得数据保持最多的信息(也就是方差最大,同时也等价于残差最小)
标准的PCA首先需要对数据去均值,后续对其他x的变换也需要先减去均值。