【学习笔记】Pytorch深度学习—正则化之weight decay权值衰减

本节的主要内容分为2大部分:(1)正则化与偏差—方差分解:什么是正则化,正则化与偏差-方差分解之间的关系?(2)Pytorch中的L2正则项—weight decay。

正则化与偏差—方差分解

正则化Regularization定义

所谓正则化就是一系列用来减少方差的策略、方法。

什么是方差?

误差可理解为:偏差、方差与噪声之和。即误差=偏差+方差+噪声
偏差度量了学习算法的期望预测与真实结果的偏离程度,即刻画了学习算法本身的拟合能力。
方差度量了同样大小的训练集的变动所导致的学习性能的变化,即刻画了数据扰动所造成的影响。
噪声则表达了在当前任务上任何学习算法所能达到的期望泛化误差的下界。

说明:
在这里插入图片描述

从上图可以看出,红色线是验证集的Loss曲线,橙色线为训练集的Loss曲线,通常训练是希望Loss最终可以达到0这一位置。观察一下两条曲线相对于“0”这一完美位置还相差什么?

(1)训练集曲线与0之间的差异:主要是两部分组成,噪声+偏差。由于噪声是不可抗因素,通常,不考虑噪声,因此,把训练集的误差直接认为是偏差,也就是刻画学习算法当前的拟合能力。
(2)验证集曲线与0之间的差异:主要由3部分组成,噪声+偏差+方差,多出来的方差在于:当前模型在更换数据集为验证集后达到新的Loss,表现出了验证集与训练集之间的差异,刻画了数据扰动造成的影响。

而正则化regularization就是来减小方差的,减小数据扰动的影响,使得验证集、训练集在模型上均达到良好的效果。


图1 过拟合现象

图1中,红色点为测试集,蓝色点为验证集。如图所示的红色曲线模型经过一定训练后能够很好拟合所有训练集,所有的蓝色点都拟合到了,但是却在测试集上表现很差。这就是一个典型的“高方差、过拟合”现象;通常说1个模型过拟合现象,就是指该模型在训练集上表现非常好、测试集上表现非常差,其所对应的特征就是高方差。
正则化策略就是用来降低方差,以解决过拟合问题。

正则化Regularization

在这里插入图片描述

如果加上L1、L2,模型会产生什么变化呢?

L1正则化项

在这里插入图片描述
L2正则化项
在这里插入图片描述

L1、L2通常使得参数值比较小,从而约束模型的复杂度。

Pytorch中的L2正则项—weight decay

理论
L2 Regularization = weight decay (权值衰减)
在这里插入图片描述

实验
在回归模型中,使用随机梯度下降法分别对两个带有weight decay和不带weight decay网络模型进行迭代训练

-----代码来自余老师-----
# ================ step 3/5 优化器 ====================
optim_normal = torch.optim.SGD(net_normal.parameters(), lr=lr_init, momentum=0.9)
optim_wdecay = torch.optim.SGD(net_weight_decay.parameters(), lr=lr_init, momentum=0.9, weight_decay=1e-2)


# =============== step 5/5 迭代训练 ==============

writer = SummaryWriter(comment='_test_tensorboard', filename_suffix="12345678")
for epoch in range(max_iter):

    # forward
    pred_normal, pred_wdecay = net_normal(train_x), net_weight_decay(train_x)
    loss_normal, loss_wdecay = loss_func(pred_normal, train_y), loss_func(pred_wdecay, train_y)

    optim_normal.zero_grad()
    optim_wdecay.zero_grad()

    loss_normal.backward()
    loss_wdecay.backward()

结果
在这里插入图片描述


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

又青。

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

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

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

打赏作者

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

抵扣说明:

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

余额充值