机器学习中的过拟合问题

1. 过拟合的表现

随着训练过程的进行,模型在训练集上的误差越来越小,但是在测试集上的误差却越来越大。这是由于训练得到的模型过度拟合了训练集,对训练集外的数据不work,即泛化能力差。引用吴恩达Andrew Ng课程里面的一张图来进行直观理解。

preview

2. 降低过拟合的方法

2.1 数据增强(augmentation)

1)随机旋转 :一般情况下是对输入图像随机旋转[0,360) 
2)随机裁剪 :对输入图像随机切割掉一部分 
3)色彩抖动 :指的是在颜色空间如RGB中,每个通道随机抖动一定的程度。在实际的使用中,该方法不常用,在很多场景下反而会使实验结果变差 
4)高斯噪声 :在图像中随机加入少量的噪声。该方法对防止过拟合比较有效,这会让神经网络不能拟合输入图像的所有特征 
5)水平翻转 、竖直翻转

2.2 正则化(regularization)

推荐参考知乎好文:

直观理解正则化 

【深度学习理论】一文搞透Dropout、L1L2正则化/权重衰减

1)L2正则化:

在损失函数中增加所有权值w的平方之和,使得所有的w尽可能趋向于0但是不为0。由于过拟合时,拟合的函数需要顾及到每一个数据点,最终训练得到的函数波动很大,在某些很小的区间里,函数值的变化很剧烈,即某些w的值很大,因此,L2正则化的加入可以惩罚权重变大的趋势。

2)L1正则化

在损失函数中增加所有权值w的绝对值之和,逼迫更多的w为0,即使得权值W变稀疏。由于L2的导数也趋于0,所以它迫使权值趋于0的速度没有L1正则化快;L1正则化还可以实现特征的自动选择,把与输出无关的特征对应的权值置为0。

3)L1与L2的区别

    a) L1正则服从拉普拉斯分布:laplace分布是尖尖的分布,很像一个pulse?从这张图上,从图中可以看出,服从laplace分布的数据就是稀疏的了(只有很小的概率有值,大部分概率值都很小或为0。如果对拉普拉斯的概率密度函数取对数,剩下的是一个一次项|x-u|,这就是L1范式.

    b) L2正则服从高斯分布: 高斯分布的概率密度函数P(x)取对数后的log(P(x))就剩下一个平方项了,这就是L2范式的由来,如下图所示,L1先验趋向0周围,而L2先验趋向0本身;

    c)L1的导数为1,L2的导数是w,在0附近L1匀速下降到0,而L2则几乎停下来了,说明L1把不重要的特征尽快剔除,而L2则把不重要特征的贡献压缩到最小。

 

2.3 随机失活(Dropout)

dropout是指在深度学习网络的训练过程中,对于神经网络单元,按照一定的概率将其暂时从网络中丢弃。注意是暂时,对于随机梯度下降来说,由于是随机丢弃,故而每一个mini-batch都在训练不同的网络。

2.4 逐层归一化(batch normalization)

能够减少overfitting问题的发生,除此之外,BN还可以:

  • 1)能够减少Interal Covariate Shift的问题,从而减少train的时间,使得对于deep网络的训练更加可行。
  • 2)消除梯度消失和梯度爆炸的问题,特别是对sigmoid和tanh函数
  • 3)对于参数的初始化影响更小

即使对于某组parameter同时乘以k倍后,最终的结果还是会keep不变的。

2.5 提前终止(early stopping)

实践表明:追求细粒度极小值具有较高的泛化误差。

典型的方法:根据交叉验证提前终止:若每次训练前,将训练数据划分为若干份,取一份为测试集,其他为训练集,每次训练完立即拿此次选中的测试集自测。因为每一份都有一次机会当测试集,所以此方法称为交叉验证。当交叉验证的错误率最小时可以认为泛化性能最好,此时停止训练。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值