深度学习——过拟合问题

overfitting

表现:

策略:

1. 正则化措施

a. 权值衰减(weight decay)

b. 多模型ensemble

c. 数据增强

d. 噪声

e. Dropout

更多参考资料


overfitting

表现:

训练集好测试集不好

策略:

(1) 数据增多 (2) 模型简化 (3) 正则化/regularization(以训练性能为代价)



1. 正则化措施

a. 权值衰减(weight decay)

思路是为了将权值限制在一定范围内,可以给参数增加损失项,使参数范围不会过大

其中 a 是一个超参数,决定了Regularization在代价函数中的重要程度,越大的 a 代表越强的Regularization。 当 Ω 是参数的范数时,这种Regularization方式被称作Parameter Norm Penalties,特别地,当 Ω 是L2范数时,被称作Weight-decay。按照梯度下降法的原理,增加L2范数的Loss项等价于在每步训练迭代时,把每个加到Loss项中的参数绝对值减小到 1−a 倍。 

b. 多模型ensemble

机器学习中有所谓Bias–variance tradeoff。模型的误差可以被分为两类:

  • Bias:模型无法有效学习到输入和输出的关系,是来自欠拟合的误差。
  • Variance:模型学习到了训练集噪音,是来自过拟合的误差。 使用多个模型的combine能够有效降低Variance误差,因此就允许我们使用表达能力更强的模型,来降低Bias误差。

单个模型的输出比较不一致时,多模型combine的效果较好,因此为了使多个单模型输出比较不同,常见做法是:

  • 使用不同的网络结构
  • 使用不同的Regularization,例如使用不同的weight decay
  • 使用不同的优化算法

不过在实际使用中,即使使用完全相同的网络和数据,一般也可以通过combine得到更好的性能。

c. 数据增强

上文提到,对抗过拟合问题最好的方法就是增加训练数据量,但是实际中数据很可能是不够的。因此数据增强就是一种生成非真实的数据给网络训练的方法。例如在分类任务中,可以通过裁剪(crop),翻转(flip),缩放(scale/resize),旋转(rotate)得到和原始图片内容不一样但是label一样的训练样本,这些非真实的训练样本可以有效地提升模型的鲁棒性。

d. 噪声

利用噪声增强模型的泛化性有以下几种常见方法:

  • 在数据原始输入上增加噪声。例如在所有的像素上增加高斯分布的噪声,这实际上也是一种数据增强的方法。模型被期待对于输入的噪声有鲁棒形,神经网络并非天生擅长于此,因此数据噪声是一种有效的提升模型鲁棒形的方法。某些模型上,输入上的噪音等价于Parameter Norm Penalties(论文)
  • 在网络的中间层输入或者输出加入噪声。这可以被看作是在输入的不同抽象层做数据增强。
  • 在参数上增加噪声。有时能够取得较好的性能。不过这种技术一般多用在RNN上,CNN相对少见。 整体上噪声可以被加在真实数据上(additive),也可以被乘在真实数据上(multiplicative)。下面的Dropout可以被看作是后者的特例。

e. Dropout

Dropout是一种非常有效的Regularization方法。这种方法会在训练时,将部分神经元(实际中的常见做法是仅对全连接层使用Dropout,因为卷积层参数相对较少,过拟合问题较轻)的输出按照一定概率 p

(常见的概率是0.2-0.5)置0。如下图所示,可以看作是改变了网络的结构。

Drouput可以被看作每步迭代时,被更新的网络都是从原始网络中采样得到的子网络。因为原始网络的可能子网络个数可能是指数的,Dropout某种程度上可以被看作非常多个不同网络的combine(当然这是不严格的,因为这些网络共享了参数)。

关于Dropout的另外一种解释认为,Dropout也可以被看作是一种数据增强:每个Dropout后的子网络N′

,都能在原始样本空间中找到一个可能的样本S′,使得现在的训练样本S在N′上的输出等同于S在N′

上的输出,因此相同样本的在多次带Dropout的训练中,实际可被看作相当于多个样本。

p.s.

1. 至于所有dropout的位置,看到网上说卷积层不用,目前不是很确定,占坑

2. 以及为什么dropout可以对抗过拟合:

“dropout 也能达到同样的效果,它强迫一个神经单元,和随机挑选出来的其他神经单元共同工作,消除减弱了神经元节点间的联合适应性,增强了泛化能力。”

资料: https://zhuanlan.zhihu.com/p/23178423

https://www.jianshu.com/p/b5e93fa01385

更多参考资料

Hinton讲义
CS231

猜你喜欢

转载自blog.csdn.net/s000da/article/details/82702401
今日推荐