【深度学习】有效防止过拟合

为了得到一致假设而使假设变得过度复杂称为过拟合(overfitting),过拟合表现在训练好的模型在训练集上效果很好,但是在测试集上效果差。也就是说模型的泛化能力弱。

防止过拟合措施

1 数据集扩增(Data Augmentation)

在物体分类(object recognition)问题中,数据扩增已经成为一项特殊的有效的技术。物体在图像中的位置、姿态、尺度,整体图片敏感度等都不会影响分类结果,所以我们就可以通过图像平移、翻转、缩放、切割等手段将数据库成倍扩充。或者在语音识别(speech recognition)中,加入噪音也被看做是一种数据扩增方式。

2 早终止(Early Stopping)

在训练的过程中,记录到目前为止最好的验证正确率(validation accuracy),当连续10次Epoch,validation accuracy没有达到最佳Accuracy,则认为accuracy不再有所提升,此时就可以停止迭代了。在训练的过程中,记录到目前为止最好的验证正确率(validation accuracy),当连续10次Epoch,validation accuracy没有达到最佳Accuracy,则认为accuracy不再有所提升,此时就可以停止迭代了。

3 正则化(regularization)

添加正则化项的方法防止过拟合。损失函数分为经验风险损失函数和结构风险损失函数,结构风险损失函数就是经验损失函数+表示模型复杂度的正则化,正则项通常选择L1或者L2正则化。结构风险损失函数能够有效地防止过拟合。

L1正则化 是指权值向量 w 中各个元素的绝对值之和,通常表示为 w 的1范数,L1正则化可以产生稀疏权值矩阵,即产生一个稀疏模型,可以用于特征选择,一定程度上,L1也可以防止过拟合。
稀疏参数(L1):参数的稀疏,在一定程度实现了特征的选择。稀疏矩阵指有很多元素为0,少数参数为非零值。一般而言,只有少部分特征对模型有贡献,大部分特征对模型没有贡献或者贡献很小,稀疏参数的引入,使得一些特征对应的参数是0,所以就可以剔除可以将那些没有用的特征从而实现特征选择

L2正则化 是指权值向量 w 中各个元素的平方和的平方,通常表示为 w 的2范数,L2正则化可以防止模型过拟合。
更小参数(L2):越复杂的模型,越是尝试对所有样本进行拟合,那么就会造成在较小的区间中产生较大的波动,这个较大的波动反映出在这个区间内的导数就越大。只有越大的参数才可能产生较大的导数。试想一下,参数大的模型,数据只要偏移一点点,就会对结果造成很大的影响,但是如果参数比较小,数据的偏移对结果的影响力就不会有什么影响,那么模型也就能够适应不同的数据集,也就是泛化能力强,所以一定程度上避免过拟合

4 随机丢弃(dropout)

在神经网络中,Dropout方法通过修改隐藏层神经元的个数来防止网络的过拟合,也就是通过修改深度网络本身。
在每一批次数据被训练时,Dropout按照给定的概率P随机剔除一些神经元,只有没有被剔除也就是被保留下来的神经元的参数被更新。每一批次数据,由于随机性剔除神经元,使得网络具有一定的稀疏性,从而能减轻了不同特征之间的协同效应。而且由于每次被剔除的神经元不同,所以整个网络神经元的参数也只是部分被更新,消除减弱了神经元间的联合适应性,增强了神经网络的泛化能力和鲁棒性Dropout只在训练时使用,作为一个超参数,然而在测试集时,并不能使用。
当前Dropout被广泛应用于全连接网络,而在卷积层,因为卷积层本身的稀疏性和ReLU激活函数的使用,Dropout在卷积隐藏层中使用较少。

5 减少特征数目

猜你喜欢

转载自blog.csdn.net/ao1886/article/details/109511266
今日推荐