L2范数正则化

方法
L2 范数是指向量对应元素平方和再开方,一般用
L2 范数正则化等价于权重衰减。正则化通过为模型损失添加惩罚项使学出的模型参数值较小,是应对过拟合的常用手段。
L2 范数正则化在模型原损失函数的基础上添加 L2 范数惩罚项,从而得到训练所需要的最小化的函数。惩罚项是指模型权重参数每个元素的平方和与一个正的常数的乘积。以一个普通的线性回归损失函数为例子:
其中 w 为权重,用向量
其中超参数
以权重 w1 为例,采用小批量随机梯度下降更新权重,权重更新公式由之前的:
更改为:
其中
可以看到 L2 范数正则化令权重 w1 先自乘小于 1 的数,再减去不含惩罚项的梯度。因此,其又被称为权重衰减。权重衰减通过惩罚绝对值较大的模型参数为需要学习的模型增加了限制。
实现
首先生成数据,使用如下函数生成样本的标签:
1 | %matplotlib inline |
从零实现,使用了 d2l库:
1 | # 从零开始实现 |
展示一下使用和不使用权重衰减的效果:
1 | # 可以观察到很明显的过拟合现象 |
1 | # 尝试使用权重衰减 |
也可以借助 torch 库来快速实现:
1 | # 简洁实现 |
换一个参数测试结果:
1 | fit_and_plot_pytorch(5) |
- 本文标题:L2范数正则化
- 本文作者:ZOU
- 创建时间:2022-03-18 17:17:13
- 本文链接:https://yipeng.xyz/2022/03/18/L2范数正则化/
- 版权声明:可随意使用,但是转载请联系我!
评论