姓名:栗琳轲 学号:22011210584 学院:通信工程学院
转载自:https://blog.csdn.net/zz_code123/article/details/126051372
【嵌牛导读】本文主要介绍训练神经网络时出现的过拟合问题及其解决方案
【嵌牛鼻子】神经网络;过拟合问题
【嵌牛提问】什么是过拟合问题?过拟合问题产生的原因是什么?如何解决过拟合问题?
【嵌牛正文】
一、过拟合问题
模型在验证集上和训练集上表现都很好,而在测试集上变现很差,即模型泛化能力很差。
二、过拟合问题的产生原因
1. 训练集的数量级和模型的复杂度不匹配。训练集的数量级要小于模型的复杂度;
2. 训练集和测试集特征分布不一致;
3. 样本里的噪音数据干扰过大,大到模型过分记住了噪音特征,反而忽略了真实的输入输出间的关系;
4. 权值学习迭代次数足够多(Overtraining),拟合了训练数据中的噪声和训练样例中没有代表性的特征。
三、解决方案
1. simpler model structure
调小模型复杂度,使其适合自己训练集的数量级(缩小宽度和减小深度)
2. data augmentation
训练集越多,过拟合的概率越小。在计算机视觉领域中,增广的方式是对图像旋转,缩放,剪切,添加噪声等。
3. regularization
参数太多,会导致我们的模型复杂度上升,容易过拟合,也就是我们的训练误差会很小。 正则化是指通过引入额外新信息来解决机器学习中过拟合问题的一种方法,这种额外信息通常的形式是模型复杂性带来的惩罚度。 正则化可以保持模型简单,另外,规则项的使用还可以约束我们的模型的特性。
4. Dropout
在每个训练批次中,通过忽略一半的特征检测器(让一半的隐层节点值为0),可以明显地减少过拟合现象。这种方式可以减少特征检测器(隐层节点)间的相互作用,检测器相互作用是指某些检测器依赖其他检测器才能发挥作用。
Dropout通俗讲就是:在前向传播的时候,让某个神经元的激活值以一定的概率p停止工作,这样可以使模型泛化性更强,因为它不会太依赖某些局部的特征。
为什么dropout可以解决过拟合?
(1)取平均。相当于多个网络分别训练,它们中“相反的过拟合”叠加后会消除。
(2)减少神经元之间的共适应关系。字面意思,减少神经元之间的相互依赖,使其独立也可以工作。
5. Early stopping
在每一个Epoch结束时(一个Epoch集为对所有的训练数据的一轮遍历)计算validation data的accuracy,当accuracy不再提高时,就停止训练。
网友评论