深度学习机器学习理论知识:范数、稀疏与过拟合合集(3)范数与稀疏化的原理、L0L1L2范数的比较以及数学分析

范数、稀疏与过拟合合集(1)范数的定义与常用范数介绍
范数、稀疏与过拟合合集(2)有监督模型下的过拟合与正则化加入后缓解过拟合的原理
范数、稀疏与过拟合合集(3)范数与稀疏化的原理、L0L1L2范数的比较以及数学分析
范数、稀疏与过拟合合集(4)L2范数对condition number较差情况的缓解
范数、稀疏与过拟合合集(5)Dropout原理,操作实现,为什么可以缓解过拟合,使用中的技巧

1、参数稀疏的好处

1.0 为什么参数值越小代表模型越简单

因为越复杂的模型,越会对所有的样本进行拟合,甚至包括一些异常样本点,这就容易造成在较小的区间里预测值产生较大的波动,这种较大的波动也反映了在这个区间里的导数很大,而只有较大的参数值才能产生较大的导数。因此复杂的模型,其参数值会比较大。

1.1 特征选择(Feature Selection):

正则化所带来的稀疏有个很重要的好处在于它能实现特征的自动选择。

一般来说,输入 x i x_i xi的大部分元素(也就是特征)都是和最终的输出 y i y_i yi没有关系或者不提供任何信息的,在最小化目标函数的时候考虑 x i x_i xi这些额外的特征,虽然可以获得更小的训练误差,但在遇到新的测试样本时,这些训练时候被记住的没用的信息反而会被考虑,从而干扰了对测试数据的预测正确性。稀疏规则化算子的引入就是为了完成特征自动选择的光荣使命,它会在学习中去掉这些没有信息的特征,也就是把这些特征对应的响应权重置为0。

1.2 可解释性(Interpretability):

参数稀疏的另一个好处,模型更容易解释。

例如患某种病的概率是 y y y,然后我们收集到的数据 x x x是1000维的,也就是我们需要寻找这1000种因素到底是怎么影响患上这种病的概率的。假设我们这个是个回归模型: y = w 1 ∗ x 1 + w 2 ∗ x 2 + … + w 1000 ∗ x 1000 + b y=w_1*x_1+w_2*x_2+…+w_{1000}*x_{1000}+b y=w1x1+w2x2++w1000x1000+b(当然了,为了让 y y y限定在 [ 0 , 1 ] [0,1] [0,1]的范围,一般还得加个Logistic函数)。通过学习,如果最后学习到的 w ∗ w_* w就只有很少的非零元素,例如只有5个非零的 w i w_i wi,那么我们就有理由相信,这些对应的特征在患病分析上面提供的信息是巨大的,决策性的。也就是说,患不患这种病只和这5个因素有关,那医生就好分析多了。但如果1000个 w i w_i wi都非0,医生面对这1000种因素,累觉不爱。

2 由范数到稀疏

2.1 理论:

任何的正则化算子,如果他在 w i = 0 w_i=0 wi=0的地方不可微,并且可以分解为一个“求和”的形式,那么这个规则化算子就可以实现稀疏。

我自己的理解:

在0处不可微代表是一个阶跃点或者转折点,即非凸的不可导点,那么就会出现如下情况:优化函数与正则化项在优化过程中优先相遇的交点大概率出现在这个极值不可导点上,这个点的行成就是稀疏的成因。

为什么要分解为一个求和的形式呢?因为只有求和的时候可以保证有多项绝对值进行求和,然后在逐步优化的过程中,不同的求和项就会为了分别取到0,同时追求多个 w i w_i wi取到0,设想如果是乘积的形式,只要一个乘积项为0,之后就会整个正则项都是0,达不到追求很多系数稀疏的目的。

对于这个理论以及范数如何促进稀疏后面的背景和案例会进行更加清楚的叙述。

2.2 背景假设引出问题:

L 1 L_1 L1范数作为例子,根据 L 1 L_1 L1范数的定义,向量的 L 1 L_1 L1范数是所有元素的绝对值之和,训练出来的参数向量 [ ω 1 , ω 2 ] T [\omega_1,\omega_2]^T [ω1,ω2]T为例,其范数为 ∣ ω 1 ∣ + ∣ ω 2 ∣ |\omega_1|+|\omega_2| ω1+ω2

对如下两种向量情况进行分析: ω 1 = [ 0.1 , 0.1 ] T \boldsymbol \omega1 = [0.1,0.1]^T ω1=[0.1,0.1]T ω 2 = [ 1000 , 0 ] T \boldsymbol \omega2 = [1000,0]^T ω2=[1000,0]T

其中, ω 1 \boldsymbol \omega1 ω1很明显不是一个稀疏向量,但其 L 1 L_1 L1范数 ∣ ∣ ω 1 ∣ ∣ 1 = ∣ 0.1 ∣ + ∣ 0.1 ∣ = 0.2 ||\boldsymbol \omega1||_1=|0.1|+|0.1|=0.2 ω11=0.1+0.1=0.2 却远小于稀疏向量 ω 2 \boldsymbol \omega2 ω2 L 1 L_1 L1范数 ∣ ∣ ω 2 ∣ ∣ 1 = ∣ 1000 ∣ + ∣ 0 ∣ = 1000 ||\boldsymbol \omega2||_1=|1000|+|0|=1000 ω21=1000+0=1000

仅仅是看 L 1 L_1 L1范数的数值大小,我们可能很难比较向量的稀疏程度,因此,需要结合损失函数。

2.2.1 问题一:如何衡量稀疏性

在这个背景下我们需要衡量的不单纯仅仅是一个参数矩阵或者参数向量是否稀疏的问题,而是在相同的损失、相同的训练集表现,甚至可以理解为在损失函数上反应为相同的输出的这种情况下,我们的训练结果所获得的的参数矩阵是否是稀疏的

2.2.2 问题二:范数怎么推动训练结果到达稀疏效果

追求稀疏的原因是为了让模型具有一定的泛化效果,精简模型,让他不会在意一些噪声或者不必要的特征。那么,在兼顾训练效果的情况下,范数是如何推动最后的参数所在的向量空间达到稀疏的效果呢

2.3 举一个例子说明

假设需要拟合一个一次函数 y = − 2 x + 6 y = -2x+6 y=2x+6 (图1)

image-20210126105803108

我们将模型定义为 y = a x + b y = ax+b y=ax+b,我们需要通过训练得到 a a a b b b,假设只有一个训练数据也就是在这个一次函数上的一个点坐标 ( 1.5 , 3 ) (1.5,3) (1.5,3),那这个时候其实 a a a b b b就有无穷多组解。我们将训练数据代入 y = a x + b y = ax+b y=ax+b,得到 3 = 1.5 a + b 3 = 1.5a+b 3=1.5a+b,也就是说 a a a b b b需要满足这个限制条件。(图2)画出 a a a b b b可以取值的集合,参数 a a a b b b的解有无数组 (在蓝线上的点都是解)。

怎样通过 L 1 L_1 L1范数找到一个稀疏解呢?我们不妨先假设针对向量的 L 1 L_1 L1范数是一个常数 c c c(图3)。

它的形状是一个正方形 (红色线),不过在这些边上只有很少的点是稀疏的,即与坐标轴相交的4个顶点

把红色的正方形( L 1 L_1 L1范数为常数)与蓝色的线 (解) 放在同一个坐标系,如果这个时候我们逐渐放宽对 L 1 L_1 L1范数的要求,让它有着更大的容忍裕度,整个方块就会变大,知道红线与蓝线有交点,红线与蓝线的交点就是符合训练集要求的稀疏解。且这个交点使得 L 1 L_1 L1范数取得最小值。

得到的解是 a = 2 , b = 0 a = 2,b = 0 a=2,b=0

2.4 稀疏性的产生

这里需要说明的问题是只要不是位置非常巧妙(开始优化的初始坐标点设置很恰巧),优化的函数正好与红线( L 1 L_1 L1范数构成的取值点)相切,一般在优化过程中产生的交点会在坐标轴上,坐标轴上下左右四个点分别代表有一个参数为零这就是稀疏效果的达成。

2.5 结论

例子中虽然得到的解是错误的,但是那只是因为这个训练集相较于参数量过少,我们只是论证在整体训练过程中,加入范数的考量可以促使最后的参数向量解达成稀疏这一性质。如果基于范数的考量权重很大就会过于着眼于稀疏,而导致在训练集上也表现不佳,如果过于着眼于训练集的表现,就会忽略想要达到稀疏这一个目的。最后我们需要均衡考量正如我们需要均衡上一篇blog中所叙述loss函数两项的权重。

3 范数在应用中的比较

3.1 L 0 L_0 L0范数, L 1 L_1 L1范数:

L 0 L_0 L0范数、 L 1 L_1 L1范数主要是用来特征选择,能够将含有较小信息量的特征权重优化为0,从而降低特征的维度,从而简化模型。

L 1 L_1 L1范数也有个美称叫“稀疏规则算子”(Lasso regularization)。

3.2 L 0 L_0 L0范数 VS L 1 L_1 L1范数

既然 L 0 L_0 L0范数和 L 1 L_1 L1范数可以都实现稀疏,为什么不用 L 0 L_0 L0范数,而要用 L 1 L_1 L1范数呢?

  • 原因一: L 0 L_0 L0范数很难优化求解(NP难问题)
  • 原因二: L 1 L_1 L1范数是 L 0 L_0 L0范数的最优凸近似,它比 L 0 L_0 L0范数要容易优化求解。

3.3 L 2 L_2 L2范数:

也称为Ridge regularization

特征一:(防止过拟合的功能)正则化偏向于将特征的权重都调整的比较小,接近于0,限制了参数的空间,降低了模型的复杂度,提升了模型的泛化能力。越小的参数说明模型越简单,越不容易产生过拟合。

特征二:(较好的稳定性和快速优化)参数分布相对比较均匀。在高次方程中,特别是高次项的系数,是造成曲线陡增(减)的主要因子,我们如果能够将系数调整的比较均匀,那么就能够避免这种过拟合现象的发生。这样可以让我们的优化求解变得稳定和快速。

特征三:对大数,对outlier离群点更敏感!

特征四:有助于处理 condition number不好下的矩阵(数据变化很小矩阵求解后结果变化很大)

总结: L 2 L_2 L2范数是指向量各元素的平方和然后求平方根。我们让 L 2 L_2 L2范数的规则项 ∣ ∣ W ∣ ∣ 2 ||W||_2 W2最小,可以使得 W W W中的每个元素 w i w_i wi都很小,都接近于0,但与 L 1 L_1 L1范数不同,它不会让它等于0,而是接近于0,这里是有很大的区别的哦。而越小的参数说明模型越简单,越简单的模型则越不容易产生过拟合现象。为什么越小的参数说明模型越简单?在参数维度空间确定的情况下,限制了参数的范围,实际上就限制了多项式的某些分量,使其影响很小,这样就相当于减少参数个数,在解释的时候就可以忽略了。

限制解空间范围,缩小解空间,来控制模型复杂度,降低结构化风险,从而在一定程度上避免了过拟合。

例子:

image-20210126165015172

在这个例子中,优化的参数就是 Θ \Theta Θ,内部有若干参数 θ i \theta_i θi,当(图三)高次项前的参数不太小,作为高次项的系数,会很敏感的影响着最终拟合的分类曲线所代表的分界面,非常的陡峭,弯曲度很大,这就是过拟合的表现。

加入 L 2 L_2 L2范数后就会出现如图二所示,高次项可能会较小,但是仍然保留这较多小的低次项系数,例公式中所展示的 θ 1 − 5 \theta_{1-5} θ15

3.4 L 1 L_1 L1范数 VS L 2 L_2 L2范数

3.4.1 稀疏性比较

L 1 L_1 L1范数人称Lasso L 2 L_2 L2范数人称Ridge

L 1 L_1 L1范数会趋向于产生少量的特征,而其他的特征都是0

L 2 L_2 L2范数会选择更多的特征,这些特征都会接近于0。

Lasso在特征选择时候非常有用,而Ridge就只是一种规则化而已。

这里主要是形式化的说明:对于 L 1 L_1 L1范数和 L 2 L_2 L2范数正则化的代价函数来说,我们可以写成以下形式:
 Lasso:  min ⁡ w 1 n ∥ y − X w ∥ 2 ,  s.t.  ∥ w ∥ 1 ≤ C  Ridge:  min ⁡ w 1 n ∥ y − X w ∥ 2 ,  s.t.  ∥ w ∥ 2 ≤ C \begin{array}{l} \text { Lasso: } \min _{w} \frac{1}{n}\|\mathrm{y}-X \mathrm{w}\|^{2}, \quad \text { s.t. }\|\mathrm{w}\|_{1} \leq C \\ \text { Ridge: } \min _{w} \frac{1}{n}\|\mathrm{y}-X \mathrm{w}\|^{2}, \quad \text { s.t. }\|\mathrm{w}\|_{2} \leq C \end{array}  Lasso: minwn1yXw2, s.t. w1C Ridge: minwn1yXw2, s.t. w2C
为了便于可视化,我们考虑两维的情况,在 ( w 1 , w 2 ) (w^1, w^2) (w1,w2)平面上可以画出目标函数的等高线,即为彩色的圈,这里不同的等高线,其实也就意味着:不同loss误差容忍裕度,较外面的圈上的点在所要优化的函数上会有着较大的误差值。 L 1 L_1 L1约束条件则成为平面上对角线为 2 C 2C 2C的一个黑色方形, L 2 L_2 L2约束条件则成为平面上半径为 C C C的一个黑色圆圈。等高线与黑色线首次相交的地方就是最优解。

可以看到, L 1 L_1 L1范数与 L 2 L_2 L2范数的不同就在于 L 1 L_1 L1在和每个坐标轴相交的地方都有“角”出现,而目标函数的等高线除非位置摆得非常好,大部分时候都会在角的地方相交。注意到在角的位置就会产生稀疏性,例如图中的相交点就有 w 1 = 0 w^1=0 w1=0,而更高维的时候(想象一下三维的 L 1 L_1 L1范数 是什么样的?)除了角点以外,还有很多边的轮廓也是既有很大的概率成为第一次相交的地方,又会产生稀疏性。在高维度时(参数远大于2),许多系数估计值可能同时为 0。

相比之下, L 2 L_2 L2范数就没有这样的性质,因为没有角,所以第一次相交的地方出现在具有稀疏性的位置的概率就变得非常小了。这就从直观上来解释了为什么 L 1 L_1 L1范数能产生稀疏性,而 L 2 L2 L2范数不具备这一性质的原因了。最后由于Ridge回归的结果中系数估计全都是非零的。所以模型的解释性很弱。如果大部分特征都能起作用,而且起的作用很平均,那么使用岭回归也许更合适。

image-20210126152707185

3.4.2 下降速度的比较

L 1 L_1 L1范数初期下降较慢,后期下降较快

L 2 L_2 L2范数初期下降较快,后期下降较慢

将正则化项以 L 1 L_1 L1范数或者 L 2 L_2 L2范数的方式放到代价函数里面去。然后模型就会尝试去最小化训练的权值参数。而这个最小化就像一个下坡的过程,L1和L2的差别就在于这个“坡”不同,如下图:L1就是按绝对值函数的“坡”下降的,而L2是按二次函数的“坡”下降。所以实际上在0附近,L1的下降速度比L2的下降速度要快。所以会非常快得降到0,因为大部分参数初始值就是在 [ 0 , 1 ] [0,1] [0,1],这一段 L 1 L_1 L1范数是较快的。

image-20210126154835224

L 1 L_1 L1范数和 L 2 L_2 L2范数总结

L 1 L_1 L1范数会趋向于产生少量的特征,而其他的特征都是0,达到稀疏效果,总体而言下降速度较快。

L 2 L_2 L2范数会选择更多的特征,这些特征都会接近于0。

范数、稀疏与过拟合合集(1)范数的定义与常用范数介绍
范数、稀疏与过拟合合集(2)有监督模型下的过拟合与正则化加入后缓解过拟合的原理
范数、稀疏与过拟合合集(3)范数与稀疏化的原理、L0L1L2范数的比较以及数学分析
范数、稀疏与过拟合合集(4)L2范数对condition number较差情况的缓解

猜你喜欢

转载自blog.csdn.net/qq_41554005/article/details/113199699