AI课堂第10讲:DL深度学习——模型过拟合解决方法一:权重衰减

上节课我们讲了模型的拟合问题 , 一般以过拟合为主,缓解过拟合问题的常用方法有:权重衰减、丢弃法;当然,应对过拟合的最好办法是扩大有效样本 , 这一点尤其要注意 。很多时候,没有什么办法比优化自己的样本数据集更加有效 。这节课我们先讲讲权重衰减的应用 。
权重衰减(weight decay)
权重衰减等价于L2范数正则化(regularization) 。还有L1和L0范数,其中L2范数应对过拟合最好 。
L2 范数正则化在模型原损失函数的基础上添加L2 范数惩罚项,从而得到训练所需要最小化的函数 。L2 范数惩罚项指的是模型权重参数每个元素的平方和与一个正的常数的乘积 。
还是以线性回归的函数举例,在没添加正则项之前 , 损失函数为:
?
添加惩罚项后:
其中超参数λ>0 。当权重参数均为0时,惩罚项最小 。当λ较大时 , 惩罚项在损失函数中的比重较大 , 这通常会使学到的权重参数的元素较接近0 。当λ设为0时 , 惩罚项完全不起作用 。上式中L2范数平方‖w‖2展开后得到
?
根据前面讲的线性回归模型参数迭代更新的公式
在此基础上增加惩罚系数如下
在上式中,|B|代表每个小批量中的样本个数(批量大小,batch size),η 是学习率(learning rate) 。从参数迭代公式可以看出,权重参数越大则对应惩罚值越大 。
下面,我们以高维线性回归为例来引入一个过拟合问题,并使用权重衰减来应对过拟合 。设数据样本特征的维度为p 。对于训练数据集和测试数据集中特征为x1,x2,…,xp?的任一样本,我们使用如下的线性函数来生成该样本的标签:
其中噪声项?服从均值为0,标准差为0.01的正态分布 。为了较容易地观察过拟合,我们考虑高维线性回归问题,如设维度p=200;同时 , 我们特意把训练数据集的样本数设低,如20 。
代码演示
tensorflow从零实现
无权重衰减时
有权重衰减时
对比可以看出加入惩罚后的权重参数明显被削弱,且测试集的损失也明显下降 。
tensorflow精简实现
使用keras封装的算法实现上述模型
无权重衰减时
有权重衰减时
基于PyTorch的简洁实现:
无权重衰减时损失曲线如下图所示,由图可知训练误差远小于测试集误差 。
加入权重衰减 , 惩罚系数为3时,损失曲线图如下,有图可知此时测试集误差有所下降,过拟合现象得到一定程度的缓解 。
【AI课堂第10讲:DL深度学习——模型过拟合解决方法一:权重衰减】总结
正则化惩罚通过为模型损失函数添加惩罚项使训练出的模型权重参数值减?。航夤夂衔侍?。惩罚项系数越大,变异点削弱程度越大;惩罚项系数越小,变异点削弱程度越小 。
以上就是朝夕生活(www.30zx.com)关于“AI课堂第10讲:DL深度学习——模型过拟合解决方法一:权重衰减”的详细内容,希望对大家有所帮助!

猜你喜欢