• 对于L1正则化和L2正则化的理解


    在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老师

  • 相关阅读:
    手撕 LFU 缓存
    【C# 基础精讲】类和对象的概念
    Oracle/PLSQL: NULLIF Function
    SCI如何审稿和修稿
    ros中对move_base的调用
    solidty提升篇-智能协议-合约的所有权-gas-带参数的函数修饰符
    利用redis 的原子性生成不重复编号
    安装MathType
    0913(051天 网络编程01 Socket+URL)
    C语言 sizeof 函数内部进行计算
  • 原文地址:https://blog.csdn.net/weixin_63163242/article/details/133721760