dropout及过拟合详解
过拟合的定义:
在训练集上表现效果好,在交叉验证集上表现较差,也就是说在未知的样本上表现一般,泛化能力较差。
常常存在于数据少,数据网络深度长或者复杂(也就是参数多)的情况,导致过拟合问题。
出现过拟合的原因:
从图中可以看出,最左边是欠拟合的,中间是正好,最右边是过拟合的。
过拟合也就是说网络复杂,数据过于简单导致的。 我们常用的数据集常常分为训练集,验证集和测试集,
验证集的作用就是为了防止过拟合。。 如果只有训练集和测试集,训练好的数据准确率很高,到测试集的时候可能会存在准确率很低的情况。。
如何避免过拟合问题: (这个先留个概念,可以其他期再说。)
1. early stopping 在网络迭代收敛前停止,防止过度学习 。
2. 正则化 L1和L2正则
3.dropout
4.数据增强
#dropout的定义:
也就是整体的网络结构中“随机”丢弃一些神经元(也就是部分网络权重不更新,不被丢弃的时候再更新)进行训练,这样子可以以比整体网络结构轻量的情况下实现数据的训练。由于每次丢弃神经元是随机的,所以基本多次迭代可以保证大部分的神经元都被训练到,防止参数过多导致的过拟合问题。也就是说,每个神经元都会有个被丢弃的概率问题。
@@需要注意的是,dropout只有在训练的时候才会用到,预测的时候不会用到。
从右图可以看出,浅色的神经元就是被随机丢弃的。
dropout的作用:
1.防止过拟合,