Regularization(L1 L2 正则化解决过拟合)

Regularization(L1 L2 正则化解决overfitting)

关于overfitting的问题,很大程度上是由于曲线为了更好地拟合training data的数据,而引入了更多的高次项,使得曲线更加“蜿蜒曲折”,反而导致了对testing data的误差更大

回过头来思考,我们之前衡量model中某个function的好坏所使用的loss function,仅引入了真实值和预测值差值的平方和这一个衡量标准;我们想要避免overfitting过拟合的问题,就要使得高次项对曲线形状的影响尽可能小,因此我们要在loss function里引入高次项(非线性部分)的衡量标准,也就是将高次项的系数也加权放进loss function中,这样可以使得训练出来的model既满足预测值和真实值的误差小,又满足高次项的系数尽可能小而使曲线的形状比较稳定集中

以下图为例,如果loss function仅考虑了 ( y ^ − y ) 2 {\left( {\hat y - y} \right)^2} (y^y)2这一误差衡量标准,那么拟合出来的曲线就是红色虚线部分(过拟合),而过拟合就是所谓的model对training data过度自信, 非常完美的拟合上了这些数据, 如果具备过拟合的能力, 那么这个方程就可能是一个比较复杂的非线性方程 , 正是因为这里的 x 3 {x^3} x3 x 2 {x^2} x2使得这条虚线能够被弯来弯去, 所以整个模型就会特别努力地去学习作用在 x 3 {x^3} x3 x 2 {x^2} x2上的c、d参数. 但是在这个例子里,我们期望模型要学到的却是这条蓝色的曲线. 因为它能更有效地概括数据 .而且只需要一个 y = a + b x {y = a + bx} y=a+bx就能表达出数据的规律.

或者是说, 蓝色的线最开始时, 和红色线同样也有c、d两个参数, 可是最终学出来时, c 和 d 都学成了0, 虽然蓝色方程的误差要比红色大, 但是概括起数据来还是蓝色好

regularization
这也是我们通常采用的方法,我们不可能一开始就否定高次项而直接只采用低次线性表达式的model,因为有时候真实数据的确是符合高次项非线性曲线的分布的;而如果一开始直接采用高次非线性表达式的model,就很有可能造成overfitting,在曲线偏折的地方与真实数据的误差非常大。我们的目标应该是这样的:

在无法确定真实数据分布的情况下,我们尽可能去改变loss function的评价标准

  • 我们的model的表达式要尽可能的复杂,包含尽可能多的参数和尽可能多的高次非线性项;
  • 但是我们的loss function又有能力去控制这条曲线的参数和形状,使之不会出现overfitting过拟合的现象;
  • 在真实数据满足高次非线性曲线分布的时候,loss function控制训练出来的高次项的系数比较大,使得到的曲线比较弯折起伏;
  • 在真实数据满足低次线性分布的时候,loss function控制训练出来的高次项的系数比较小甚至等于0,使得到的曲线接近linear分布

那我们如何保证能学出来这样的参数呢? 这就是 L1 L2 正规化出现的原因.

之前的loss function仅考虑了 ( y ^ − y ) 2 {\left( {\hat y - y} \right)^2} (y^y)2这一误差衡量标准,而L1 L2正规化就是在这个loss function的后面多加了一个东西,即model中跟高次项系数有关的表达式;

  • L1正规化即加上 λ ∑ ∣ w j ∣ \lambda \sum {\left| {{w_j}} \right|} λwj这一项,loss function变成 L = ∑ i = 1 n ( y ^ i − y i ) 2 + λ ∑ ∣ w j ∣ L = \sum\limits_{i = 1}^n {{{\left( {{{\hat y}^i} - {y^i}} \right)}^2} + } \lambda \sum {\left| {{w_j}} \right|} L=i=1n(y^iyi)2+λwj,即n个training data里的数据的真实值与预测值差值的平方和加上λ权重下的model表达式中所有项系数的绝对值之和

  • L2正规化即加上 λ ∑ w j 2 \lambda \sum {{w_j}^2} λwj2这一项,loss function变成 L = ∑ i = 1 n ( y ^ i − y i ) 2 + λ ∑ w j 2 L = \sum\limits_{i = 1}^n {{{\left( {{{\hat y}^i} - {y^i}} \right)}^2} + } \lambda \sum {{w_j}^2} L=i=1n(y^iyi)2+λwj2,即n个training data里的数据的真实值与预测值差值的平方和加上λ权重下的model表达式中所有项系数的平方和

相对来说,L2要更稳定一些,L1的结果则不那么稳定,如果用p表示正规化程度,上面两式可总结如下:
L = ∑ i = 1 n ( y ^ i − y i ) 2 + λ ∑ w j p L = \sum\limits_{i = 1}^n {{{\left( {{{\hat y}^i} - {y^i}} \right)}^2} + } \lambda \sum {{w_j}^p} L=i=1n(y^iyi)2+λwjp

L1-L2
参考:https://sakura-gh.github.io/ML-notes/ML-notes-html/2_Regression-Case-Study.html仅作个人学习用,如需删除请联系本人
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值