http://blog.csdn.net/u011239443/article/details/76692801
浅层神经网络 | 深层神经网络 |
---|---|
更加有效的训练 | 难以训练 |
更简单的结构选择 | 复杂的结构选择 |
更具有理论依据,但可能难以提取特征 | 更加武断的依据,简化特征提取 |
适合多项式组合比较明确的情况下 | 适合多项式组合复杂未知的情况下 |
深度学习面临的挑战 | 迎接该挑战的相关技术 |
---|---|
难以训练 | mini-batch、 GPU |
复杂的结构选择 | CNN、RNN |
模型复杂度高,容易过拟合 | 1.大数据 2.正则化: dropout;denoising |
优化困难 | pre-training |
我们可以使用自动编码器来做pre-training:
自动编码器模型如下:
自动编码器本质是想训练得到一层能让隐藏层节点表达出输入的权重,即可以看作w1ijw_{ij}^1用于编码,w2ijw_{ij}^2用于解码,并且w1ij=w2jiw_{ij}^1 = w_{ji}^2
噪音编码自动编码器其实就是希望当数据中有噪音的时候,自动编码器依旧能将输入正确的表达出来:
线性自动编码器模型:
损失函数:
我们对上式进行线性变换:
最优化问题就变成了:
我们先固定V,变化 Γ来求的最小值。这么一来两项左边的V都可以提取来先不看,问题变成:
那么就可知,I − Γ尽可能的多0向量行结果,就会越小。而l Γ的rank ≤ ˜ d,所以 Γ取值为:
进一步的问题变成了:
对于矩阵V中的每一行的最优化问题有:
我们对上式使用拉格朗日乘子法:
vTxnxTnv−λ(vTv−1)\large v^Tx_nx_n^Tv- λ(v^Tv-1)
对上式关于v求导,取极值得:
2xnxTnv−2λv=0\large 2 x_nx_n^Tv - 2λv = 0
xnxTnv=λv\large x_nx_n^Tv = λv
把xnxTnx_nx_n^T看作矩阵XTXX^TX,可知最优化v其实就是在求矩阵XTXX^TX特征值最大的特征向量。