各个深度模型解读专题(6) 正则化

背景

在炼丹的时候,经常会遇到的情况是过拟合.

过拟合

就是训练出的模型对训练数据可以很好的拟合,但是对于验证数据却拟合程度很差.

图 1 过拟合 正确拟合 欠拟合示意图

出现过拟合就意味着目前这个模型没法应用了.假如上图是股票数据,如果按照上图中的第3张图中的拟合模型,任意预测一天,可能和真实值相差较大.

需要想办法解决这个问题.有学者提出了一些解决方案.

过拟合的常见解决方案

  • 数据清洗
  • 增大训练集
  • 正则化

本文着重介绍正则化方案:

正则化

正则化的效果

比如我们要进行一个分类任务. 在没有加入正则化之前,模型的训练效果是这样的:
未使用正则化

加入正则化之后的效果:
使用过正则化

很明显,在实际应用中后者才能比较好的适应.

正则化的原理

正则化,其实就是权重衰减.

按照花书中的观点,针对特定的问题,如果机器学习模型使用的loss函数没有特定的偏好,那么这些模型理论上没有优劣之分.

那么,针对特定的问题,应该使用具体特定偏好的loss函数,这种模型才能针对特定问题具有相对其他模型相对良好的表现.

这种偏重如何表现出来? 其中一种方案如下:

  • 在原有的损失函数的之下,加入一个约束(惩罚项\正则项).

J ( w ) = M S E t r a i n + λ w T w J(w) = MSE_{train}+\lambda w^Tw J(w)=MSEtrain+λwTw

这就类似于我们在求最优解的过程中,如果要求满足约束 Ω \Omega Ω的最优解,我们只需要在原有条件的基础上加入

J ( w ) n e w = J ( w ) o l d + λ Ω J(w)_{new} = J(w)_{old}+\lambda \Omega J(w)new=J(w)old+λΩ

这个时候,loss函数具有了一定的偏好.当然,这个时候的偏好未必是适应于当前问题的,需要将 J ( w ) J(w) J(w)最优化,这个过程中w中的参数会持续更新,最后的参数就是偏好于当前问题的参数矩阵.

λ \lambda λ 的不同取值对模型的影响

λ \lambda λ 的取值过大时,会导致欠拟合. 为了将loss函数达到最小值,训练过程会让w中的值尽量小. 以线性模型为例,w中的值代表了斜率,如果w尽量小,无限趋近于0, 这个时候的模型就是一条横线,这就是典型的欠拟合.

λ \lambda λ的取值过小时,会导致过拟合. 当 λ \lambda λ 的取值相对较小时. w w w中的值得取值会相对较大,根据某些已知但是我不会的定理,此时会导致模型过拟合.

我们在另一个模型中验证一下:

  • λ = 1 × 1 0 − 100 \lambda=1\times 10^{-100} λ=1×10100

  • λ = 0.03 \lambda=0.03 λ=0.03

  • λ = 0.1 \lambda = 0.1 λ=0.1

其实其中的 w T w w^Tw wTw,可以替换成其他的类似条件.替换成不同的惩罚项,就是我们常见的 L 1 L1 L1 L 2 L2 L2正则化.

  • L1正则化

  • L2正则化

总结

正则化,在论文中的同意词可以有,权重衰减 | 惩罚项 | 惩罚因子等.

本质上正则化是将让模型偏向于当前的具体问题,具体实现形势是调节参数的权重.为了让这个过程自动化,将调整约束项加入到指导函数loss函数中.就此,实现了针对特定问题训练相对较优的模型.


相关代码: 正则化 tensorflow

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

古承风

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值