pytorch l2正则化_过拟合与欠拟合问题和L2正则化

过拟合 (overfit) 与欠拟合 (underfit) 问题是机器学习过程中经常遇到的问题。L2正则化、Dropout正则化等等是解决过拟合问题最常使用的方法

一、过拟合与欠拟合

要解释过拟合,需要借用一张Andrew Ng的课件:

5f2f58c78edb08a218a0e72b18a9f3ef.png
  • 三幅图中的左图,模型过于简单,偏差较大,无法很好的拟合非线性的分类问题,出现欠拟合(underfit)问题,一般需要增加网络层数,增加隐藏层神经元个数来解决。这种问题一般表现为训练集与验证集损失函数值都较大;
  • 右图,过于贴合训练集,方差较大,称作过拟合(overfit)问题,过拟合问题一般表现为训练集损失函数值较小,但是验证集的损失函数较大。即训练出的模型太过死板,而无法解决训练集以外的数据;
  • 中间表示刚好的情况,一般训练集与验证集损失函数值都较小

要通俗且形象地解释的话,欠拟合就像是考前复习不足的人,书都没看全,自然很难考好。而过拟合现象就像是书呆子,将做过的题目全都背下,但缺乏举一反三的能力,碰到做过的题,那么他就会做,但是改个问法就傻了。

考驾照,驾考时教练一般会让你看准许多的记号,然后机械地打方向盘,然而这样即使拿到的驾照,也无法立即上路,这就是过拟合问题。

二、L2正则化

L2正则化就是在原来的损失函数上,再加上一项参数的二范式

009f8b1d3eab6f45a796213aa3468860.png

第二项又称作弗罗贝尼乌斯范数(Frobenius norm)的平方

将新的损失函数对参数求梯度得

81b231c5df8304aedcd6f8bf9d91b2b8.png

使用梯度下降更新参数

8571163e33aa847641335c0b6518b81a.png

其中α、λ是两个超参数,α是学习率,而λ负责调节L2正则化过程

  • λ=0时,表示不使用正则化
  • λ越大,在训练过程中则会压制参数的变大,使参数尽量变小

三、L2正则化为什么有效

通俗的解释,产生过拟合问题的根本原因是模型试图记住的参数太多,导致其举一反三的能力减弱,而通过L2正则化,导致很多的参数会变得很小,对模型的影响力降低,相当于降低了模型的复杂程度,提高了泛化能力。

还有一种比较通俗的解释,来自Andrew Ng

我们的所常用的激活函数sigmoid、tanh是长这样的

9326ca68005cb650f31a0b5f74224845.png

如果控制参数较小,那么中间层输出的参数也会很小,就会集中在中间导数相对于稳定的位置,也就是限制了分类模型过分的扭曲。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值