深度学习&机器学习基础之1-从误差讲起

1. 误差

试想一下,你辛辛苦苦训练了一个自认为超级牛逼的神经网络,但是一到测试集上验证,发现结果并不符合预期,是不是就开始怀疑人生了呢?为什么不对呢?预测结果与真实结果的误差到底是哪里来的呢?
误差的来源无非两部分:bias + variance,所谓Bias,指的是训练出的模型已经非常非常努力了,拼命想拟合真实的模型,但是由于种种原因,真的拟合不完全,比如缺失了部分关键特征(就好像有个人没有了双脚,你却非要让他直立行走一样,太南南南了);而Variance往往指的是在训练集上表现比较好,但是一到测试集就废掉,这个有点像不会变通的机器人,你把它训练的可以走任何直线,但是一旦遇到弯路就会碰壁。从数学上理解,我们可以使用不同的数据集训练模型,得出一系列的f,如果得到的f在相同的预测集上得到的结果都差不多,但是跟真实值还是有一定差距,那这就是Bias大,Variance小;如果得到的结果相差比较大,但都围绕着真实值变化,那就是Bias小,Variance大;如果variance和bias都很大,那哪里来的自信觉得自己训练的模型很牛逼!不同情况如下图示例:
在这里插入图片描述
Bias大的主要原因包括:特征不足;模型复杂度较低(试想用一个线性模型模拟一个非线性函数)
Variance大的主要原因包括:模型过于复杂;样本量较小(试想用2个点去拟合一个二次函数,不同的样本得出的结果相差较大,但用20个点就能很好拟合;另一种理解,让样本中包含更多信息,让其覆盖的解空间更大,比如机器人走直路的例子,样本量小的话,可能样本中只有走直路的情况,而没有走弯路的情况)
使用不同的多项式函数预测f,可能得到的误差如下(横坐标为多项式幂次):
在这里插入图片描述
当模型比较简单时(多样式幂次小于3),主要误差来源于Bias,此时模型欠拟合;当模型比较复杂时(多项式幂次大于4),主要误差来源于Variance,此时模型过拟合。
为了解决过拟合,可以增加正则化

2. 正则化

2.1 L 1 L_1 L1正则化

L 1 L_1 L1正则化,即在损失函数公式中增加预测参数的 L 1 L_1 L1范数因子,在减少原Loss的基础上,同时使 L 1 L_1 L1范数最小,极端情况下, L 1 L_1 L1范数最小的情况为所有参数为0,即所谓的“无招胜有招”,当然这是不可能的,但是 L 1 L_1 L1正则化想要达到的目的也并非全部参数都为0,而是部分参数为0,增加模型的稀疏性。
数学上的解释, L 1 L_1 L1正则化相当于对参数增加Laplace先验,理解如下:
引入 L 1 L_1 L1正则化后的损失函数如下图所示:
L ~ ( w ; X , y ) = L ( w ; X , y ) + α ∣ ∣ w ∣ ∣ 1 \tilde{L}(w; X, y) = L(w; X, y) + \alpha ||w||_1 L~(w;X,y)=L(w;X,y)+αw1
假设损失函数 L ( w ; X , y ) L(w; X, y) L(w;X,y)为连续可导函数,在任一点 w ∗ w^* w处,损失函数存在一阶近似:
L ( w ; X , y ) ≈ L ( w ∗ ; X , y ) + ( w − w ∗ ) ∇ w L ( w ∗ ; X , y ) L(w; X, y) \approx L(w^*; X, y) + (w - w^*) \nabla_wL(w^*; X, y) L(w;X,y)L(w;X,y)+(ww)wL(w;X,y)
假设参数向量 w w w的参数个数为2,则损失函数 L ( w ; X , y ) L(w; X, y) L(w;X,y)近似函数和 L 1 L_1 L1正则化项的等高线如下所示:
在这里插入图片描述
图中,红色直线代表原Loss的等高线,虚线为 L 1 L_1 L1范数的等高线,如果想要 L + L 1 L + L_1 L+L1最小,则 w w w的选择应该是 w 2 = 0 w_2=0 w2=0,此时 l o s s loss loss函数有稀疏解。
关于 L 1 L_1 L1正则化为什么可以解决过拟合,理解如下:
L 1 L_1 L1正则化后,得到的是稀疏解,有效地降低了原模型的复杂度,可以避免由于模型复杂导致的过拟合。

2.2 L 2 L_2 L2正则化

类比 L 1 L_1 L1正则化, L 2 L_2 L2正则化在原Loss中增加了 L 2 L_2 L2范数,相当于对参数增加了 G a u s s Gauss Gauss先验分布。
在这里插入图片描述
图中,红线代表原 l o s s loss loss的一阶近似等高线,蓝线代表 L 2 L_2 L2正则化的等高线,可以看出,当两条等高线相切时,取得最小的 l o s s loss loss,此时,模型并非稀疏解。
关于 L 2 L_2 L2正则化为什么可以解决过拟合,理解如下:
增加 L 2 L_2 L2正则化后,会使得参数的绝对值尽可能小,可以避免某些参数对于模型的绝对控制作用,增强模型的泛化能力。(个人理解,主要解决由于样本量少,不能覆盖训练和测试所有情况的过拟合)
例如,机器人走路控制模型中,原 l o s s loss loss中走直线的参数起决定控制作用,导致在测试集的弯路测试中预测结果较差,但是增加了 L 2 L_2 L2正则化后,可以适当减少其控制力,进而增强模型的泛化能力,使得在弯路预测中结果不至于太差。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值