深度学习中的预训练

转载自:http://blog.csdn.net/elwangeij/article/details/51352964

为什么预训练:

深度网络存在以下缺点:

1. 网络越深,需要的训练样本数越多。若用监督则需大量标注样本,不然小规模样本容易造成过拟合。(深层网络意味着特征比较多,机器学习里面临多特征:1.多样本 2.规则化 3.特征选择)

2. 多层神经网络参数优化是个高阶非凸优化问题,常收敛较差的局部解

3. 梯度扩散问题。BP算法计算出的梯度随着深度向前而显著下降,导致前面网络参数贡献很小,更新速度慢。

解决方法:逐层贪婪训练。无监督预训练(unsupervised pre-training)即训练网络的第一个隐藏层,再训练第二个,最后用这些训练好的网络参数值作为整个网络参数的初始值。  无监督学习--->参数初始值;监督学习--->fine-tuning,即训练有标注样本。经过预训练最终能得到比较好的局部最优解。

常用预训练方法

stacked RBM

stacked sparse-autoencoder

stacked denoise-autoencoder

预训练的效果:

深度学习中的预训练_第1张图片

fine-tuning微调

预训练类似于规则化权值(从测试误差来说,预训练对于多节点数和深层网络效果更加)

你可能感兴趣的:(深度学习中的预训练)