赞
踩
L2正则化的目的就是为了让权重衰减到更小的值,在一定程度上减少模型过拟合的问题,所以权重衰减也叫L2正则化。
L2正则化就是在代价函数后面再加上一个正则化项:
其中 C0 代表原始的代价函数,后面那一项就是L2正则化项,它是这样来的:所有参数w的平方的和,除以训练集的样本大小n。λ就是正则项系数,权衡正则项与 C0项的比重。另外还有一个系数1/2, 1/2经常会看到,主要是为了后面求导的结果方便,后面那一项求导会产生一个2,与1/2相乘刚好凑整为1。系数λ就是权重衰减系数。
我们对加入L2正则化后的代价函数进行推导,先求导:
首先正则化主要是为了防止过拟合,而过拟合一般表现为模型对于输入的微小改变产生了输出的较大差异,这主要是由于有些参数w过大的关系,通过对||w||进行惩罚,可以缓解这种问题。
而如果对||b||进行惩罚,其实是没有作用的,因为在对输出结果的贡献中,参数b对于输入的改变是不敏感的,不管输入改变是大还是小,参数b的贡献就只是加个偏置而已。举个例子,如果你在训练集中,w和b都表现得很好,但是在测试集上发生了过拟合,b是不背这个锅的,因为它对于所有的数据都是一视同仁的(都只是给它们加个偏置),要背锅的是w,因为它会对不同的数据产生不一样的加权。
或者说,模型对于输入的微小改变产生了输出的较大差异,这是因为模型的“曲率”太大,而模型的曲率是由w决定的,b不贡献曲率(对输入进行求导,b是直接约掉的)。
参考资料:
weight_decay一般设置为多少_卷积神经网络学习路线(五)| 卷积神经网络参数设置,提高泛化能力?…
权重衰减(weight decay)与学习率衰减(learning rate decay)
weight decay(权值衰减)
关于weight_decay的深度分析
PyTorch 中 weight decay 的设置
深度学习里面的偏置为什么不加正则?
CNN训练分类任务的优化策略(tricks)
关于weight_decay的设定
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。