在DL中,L1和L2正则化经常被使用到,因为大于1L的正则化都是凸优化的问题,是个简单问题,可以被解决。
首先说正则的意义:
一切可以缓解过拟合的方法,都可以被叫做正则化
我最开始理解正则化的时候就是看lhy老师所理解的:防止模型w过大,导致过拟合,为什么?
因为w过大,之后测试或者验证的时候,你如果引入了噪声,噪声也会被放大,我们不要那么敏感,引入了正则项,也就是w的欧式距离(L2)或者曼距离(l1)。这样就考虑loss函数的时候,你也必须看距离也要小。
现在看来,为什么后面加入的是lambad/2 *l2的范数
要让w在一个可行域的范围之类,b只是平移的结果,所以不考虑
这样就可以限制距离范围
这里就是在约束w的距离,不要太大
而这里,求函数的极值,引入了拉格朗日乘数法来求解,lambad就是拉格朗日乘数法的系数。
这样一切都好解释,绿色代表距离,红色代表以前loss的线
但是和我们加入的正则项不同,因为这里只是多了个常数项,超参数只有c,我们可以更简单的理解为我们求导求极值,其实w是相同的!
因为我们加的就是没有常数项,相当于很多个圆,很多个交点?不对,我们超参数就变成了lambad,这张图告诉我们左图L2正则化带来的是w的衰退,而右图就是L1带来的不仅是衰退,还有稀疏性,因为调整lambad甚至可以让一个feauture不起作用,不用考虑!
L1调整lambad可以简化问题,可以带来稀疏性
不用担心这样做,会以为本来的w很大,结果故意限制了w的大小,带来的偏差,因为本来就可以等价,因为很多w和b的值都能够成为最值,我们要做的 限制他的大小罢了
带来的偏差只是图中的d罢了,而不是到中心的距离!
这是目前我对l1,l2的理解
参考lm wmt lhy老师