为什么L2范数能防止过拟合

        都在说加正则化项能防止过拟合,可是为什么它可以防止过拟合呢呢

        说这个东西之前我们先讲一下什么是 L2 范数,以及什么是过拟合

L2范数

        L2范数是指向量各元素的平方和然后求平方根。我们让L2范数的规则项||W||2最小,一方面可以使得W的个数少些,另一方面可以使得W的每个元素都很小,都接近于0。而越小的参数说明模型越简单,越简单的模型则越不容易产生过拟合现象。为什么越小的参数说明模型越简单?我们等会儿来说
在这里插入图片描述

在机器学习里面一般的是

                                                            C = C 0 + λ ∥ w ∥ 2 C={ {C}_{0}}+\lambda { {\left\| w \right\|}_{2}} C=C0+λw2

        其中C0代表原始的代价函数,后面那一项就是L2正则化项

                                                                                                                                                                                                                                                                                                                                              

        更多向量的范数见这篇博文 https://blog.csdn.net/qq_43657442/article/details/105240103

        矩阵的范数见这篇 https://blog.csdn.net/qq_43657442/article/details/105240853

                                                                                                                                                                                                

过拟合

        过拟合(overfitting,或称拟合过度)是指过于紧密或精确地匹配特定(训练)数据集,以致于无法良好地拟合其他数据或预测未来的观察结果的现象。 过拟合通常由于数据相对有限而且参数过多或者结构过于复杂的统计模型引起。

                                                比如下图的绿线就是过拟合的表现

在这里插入图片描述

        讲完什么是 L2范数,什么是过拟合了之后,我们再来看看刚才说的为什么越小的参数说明模型越简单?这个问题
                                                

为什么越小的参数说明模型越简单?

                                                
        过拟合的时候,拟合函数的系数往往非常大,为什么?过拟合,就是拟合函数需要顾忌每一个点,最终形成的拟合函数波动很大。在某些很小的区间里,函数值的变化很剧烈。上图绿线,是不是波动较大

        这就意味着函数在某些小区间里的导数值(绝对值)非常大,由于自变量值可大可小,所以只有系数足够大,才能保证导数值很大。

        来个实际点的例子,就以上面的过拟合那张图来讲

        黑线的多项式方程使这个

                                                 f w ( x ) = w 0 + w 1 x 1 + w 2 x 2 + w 3 x 1 2 + w 4 x 2 2 + w 5 x 1 x 2 { {f}_{w}}(x)={ {w}_{0}}+{ {w}_{1}}{ {x}_{1}}+{ {w}_{2}}{ {x}_{2}}+{ {w}_{3}}x_{1}^{2}+{ {w}_{4}}x_{2}^{2}+{ {w}_{5}}{ {x}_{1}}{ {x}_{2}} fw(x)=w0+w1x1+w2x2+w3x12+w4x22+w5x1x2

        绿线是这个

            f w ( x ) = w 0 + w 1 x 1 + w 2 x 1 2 + w 3 x 1 2 x 2 + w 4 x 1 2 x 2 2 + w 5 x 1 3 x 2 + w 6 x 1 x 2 2 + w 6 x 1 2 x 2 3 + ⋯ { {f}_{w}}(x)={ {w}_{0}}+{ {w}_{1}}{ {x}_{1}}+{ {w}_{2}}x_{1}^{2}+{ {w}_{3}}x_{1}^{2}{ {x}_{2}}+{ {w}_{4}}x_{1}^{2}x_{2}^{2}+{ {w}_{5}}x_{1}^{3}x_{2}^{ {}}+{ {w}_{6}}x_{1}^{ {}}x_{2}^{2}+{ {w}_{6}}x_{1}^{2}x_{2}^{3}+\cdots fw(x)=w0+w1x1+w2x12+w3x12x2+w4x12x22+w5x13x2+w6x1x22+w6x12x23+

                                                                                                                                                                                                                                                                                                                                                                                

        那么我们来想。从图上看,绿线在纵轴(x2)方向的变化率是蛮大的吧(对x2的偏导蛮大),这意味着什么呢?

                         ∂ f w ( x ) ∂ x 2 = w 3 x 1 2 + 2 w 4 x 1 2 x 2 + w 5 x 1 3 + 2 w 6 x 1 x 2 + 3 w 6 x 1 2 x 2 2 + ⋯ \frac{\partial { {f}_{w}}(x)}{\partial { {x}_{2}}}={ {w}_{3}}x_{1}^{2}+2{ {w}_{4}}x_{1}^{2}x_{2}^{ {}}+{ {w}_{5}}x_{1}^{3}+2{ {w}_{6}}x_{1}^{ {}}x_{2}^{ {}}+3{ {w}_{6}}x_{1}^{2}x_{2}^{2}+\cdots x2fw(x)=w3x12+2w4x12x2+w5x13+2w6x1x2+3w6x12x22+

                                                                                                                                                                                                                                                                                                                                        
在这里插入图片描述

        看这儿,这儿的x1(横轴)变化很小吧,但是曲线的变化幅度大吧,即说明这儿的对x2的偏导比较大,偏导上面求出来了,x1变化很小的情况下,要让偏导比较大,那么只有,参数 w 比较多,参数比较大两种可能能让他比较大

        我们用 L2 范数 ∥ w ∥ 2 { {\left\| w \right\|}_{2}} w2 刚好不是有这个作用吗,一方面可以使得W的个数少些,另一方面可以使得W的每个元素都很小,都接近于0。

        所以这样一来刚好就让曲线的变化幅度不剧烈了,变化幅度不剧烈,不就意味着不容易过拟合了吗

        以上是我的一个思考,虽然不一定对,但是我觉得这样讲得通,网上也没有一个好的说法,暂时先这样理解吧,等我多读点书,如果有不对的再更新

猜你喜欢

转载自blog.csdn.net/qq_43657442/article/details/108310014
今日推荐