【深度学习】梳理范数与正则化(二)

【深度学习】梳理范数与正则化(二)

今天要梳理的知识是范数与正则化。文章完全根据个人理解写,如有不对,欢迎指出!!

正则化

正则化是一种对学习算法的约束,主要是为了防止过拟合(下一次会梳理这个知识点),从而增强模型的泛化能力。泛化能力 是指模型对未知数据的预测能力,是一种用于评估机器学习算法的能力的指标。泛化误差可以反映模型的泛化能力,误差越小,模型越稳定。泛化误差(generalization error) 又是指训练后的模型在测试集上的误差,也叫测试误差(test error)。这一下子牵扯出来一堆专业名称,还真不好理解…

继续说回正则化,正则化的作用主要是约束,控制模型的拟合程度。对于线性模型来说,数学形式是这样:
y = w x + b y'=wx+b
对于理论而言,我们当然希望能找到非常合适的参数w和b,使得目标值 y y' 与真实值 y y 能完全相同,但是如果这种情况出现在实际中,则属于过拟合现象,我们必须要约束这个模型,使其结果与真实值保持一定的误差,这就是正则化需要做的事:
y = ( w x + b ) + α Ω ( θ ) y'=(wx+b)+\alpha \Omega(\theta)

后一项是惩罚项,用于限制模型的学习能力,而 α \alpha 为惩罚系数,系数越大,惩罚越大。在神经网络中,一般只对w做惩罚,而不对偏置b做惩罚(原因暂时未知)。我们熟知的正则化项有两个L1正则和L2正则 ,L1正则和L2正则又是什么来的???这就与范数有牵连了~

范数

先来简单普及一下范数这个概念。根据百科,在泛函分析中,范数是定义在赋范线性空间中,并满足三个条件:非负性、齐次性和三角不等式,的函数,常用于度量某个向量空间或矩阵中每个向量的长度或大小。(没听懂!)简单来说,范数就是一个函数,用来度量向量大小和长度的。

根据维度,范数可分为向量范数(二维坐标系)和矩阵范数(多维空间,一般化表达),然鹅,向量范数和矩阵范数又可划分几种范数。

向量范数

对于向量范数可分为p-范数、 -\infty -范数、1-范数、2-范数和 \infty -范数。下面简单放公式介绍一下,为了方便解释,我先借一个图用一用:
图谱

p-范数

x p = ( i = 1 N x i p ) 1 p ||x||_p=(\sum_{i=1}^N |x_i|^p)^\frac{1}{p}
p-范数表示为向量元素绝对值的p次方和 1 p \frac{1}{p} 次幂。这里的p跟上图中的q是一样的,随着p越大,曲线越接近正方形(为正无穷范数),越小,曲线越接近原点(负无穷范数)。

-\infty -范数

x = a r g min i x i ||x||_{-\infty}=arg \min_i |x_i|
负无穷范数表示为所有向量元素中绝对值的最小值。

1-范数

x 1 = i = 1 N x i ||x||_{1}=\sum_{i=1}^N |x_i|
1-范数表示为向量元素绝对值之和。

2-范数

x 2 = i = 1 N x 2 ||x||_{2}=\sqrt{\sum_{i=1}^N x^2}
2-范数表示为所有向量元素中绝对值的最大值,也称棋盘距离(chessboard)。

矩阵范数

矩阵范数也可分为1-范数、 \infty -范数、2-范数、F-范数和核范数。

1-范数

A 1 = a r g max 1 j n j = 1 m a i , j ||A||_{1}=arg \max_{1\le j\le n}\sum_{j=1}^m |a_{i,j}|
1-范数,也称列和范数,表示为所有矩阵列向量绝对值之和的最大值。

\infty -范数

A = a r g max 1 j n j = 1 m a i , j ||A||_{\infty}=arg \max_{1\le j\le n}\sum_{j=1}^m |a_{i,j}|
\infty -范数,也称行和范数,表示为所有矩阵行向量绝对值之和的最大值。

2-范数

A 2 = λ m a x ( A A ) ||A||_{2}=\sqrt{\lambda_{max}(A^*A)}
2-范数,也称谱范数,表示为矩阵A的谱范数是A最大的奇异值或者半正定矩阵 A T A A^TA 的最大特征值的平方根,其中 A A^* 为A的共轭转置。

F-范数

A F = i = 1 m j = 1 n a i , j 2 ||A||_{F}=\sqrt{\sum_{i=1}^m\sum_{j=1}^n|a_{i,j}|^2}
Frobenius范数(希尔伯特-施密特范数,这个称呼只在希尔伯特空间),即矩阵元素绝对值的平方和再开平方。

核范数

A = i = 1 n λ i ||A||_{*}=\sum_{i=1}^n\lambda_i
λ i \lambda_i 若 A 矩阵是方阵,称为本征值。若不是方阵,称为奇异值,即奇异值/本征值之和。

L1正则和L2正则

上面提到正则项一般是两种:L1正则和L2正则,那么L1和L2正则其实就是1-范数和2-范数。
L1正则项表示:所有向量元素中的绝对值之和
Ω ( θ ) = w 1 = i w i \Omega(\theta)=||w||_1=\sum_i|w_i|
L2正则项表示:所有向量元素平方和
Ω ( θ ) = w 2 = 1 2 w i 2 2 \Omega(\theta)=||w||_2=\frac{1}{2}||w_i||_2^2

接着拿上面的线性模型例子来说,给模型加上正则项,那么模型完整的损失函数L(真实值和预测值的误差+正则化项)就表示为:
L ( w ) = 1 2 n = 1 N [ y n w T f ( x n ) ] 2 + α 2 j = 1 M w j q L(w)=\frac{1}{2}\sum_{n=1}^N[y_n-w^Tf(x_n)]^2+\frac{\alpha}{2}\sum_{j=1}^M|w_j|^q
其中,q为代表幂次,M为模型的阶次,即数据的维度。多维度很难表示,假设M=2,即 x = ( x 1 , x 2 ) , w = ( w 1 , w 2 ) x=(x_1, x_2), w=(w_1, w_2) ,如果分别令q=0.5,1,2,4,就有下图:
图上图我们在介绍范数的时候用过,在这里是同样的意思。上图中的绿色线为俯视图,横纵坐标分别为 w 1 , w 2 w_1,w_2 ,那么如果换成三维图,z轴就代表正则化值,即 z = α 2 j = 1 2 w j q z=\frac{\alpha}{2}\sum^2_{j=1}|w_j|^q
三维图
从上图可看到,q=1的时候代表L1正则化,q=2代表L2正则化。结合上两个图,我们就可以解释L1正则为什么会产生稀疏解,而L2正则为什么比较稳定。当M=2时,根据正则公式, z = α 2 j = 1 2 w j q = α 2 ( w 1 2 + w 2 2 ) z=\frac{\alpha}{2}\sum^2_{j=1}|w_j|^q=\frac{\alpha}{2}(w_1^2+w_2^2) ,根据二次曲面公式,可得此时的z是一个抛物面,那么它的俯视图是一个圆。为了求解相应的解,在数学上一般可以将变量的变化曲线画出来,找到相交部分进行分析。
z
蓝线圈代表损失函数在没有L1正则限制时,寻找最小值的过程。而橙线圈则代表L1正则的曲线。总的损失函数是=蓝线圈+橙线圈的和的最小值 ,解是在两者相交线上,因此,我们可以看到在L1曲线上,两者相交的部分总出现在顶点处,而顶点刚好都在坐标轴上,那么当在 w 1 w_1 轴顶点处相交时, w 1 w_1 总为0,相反成立。而我们现在所举的例子是在二维空间上,但事实上远远不止二维,因此在多维空间中,使用L1正则往往会产生更多的0,故具有稀疏性。

z2

同理,橙线圈则代表L2正则的曲线。在L2曲线上,两者在边缘上出处相交,相交时出现0的概率也很少,因此在多维空间中,使用L2正则往往会更稳定,并不具有稀疏性。

总结

本文主要梳理了什么是正则化和范数,以及简单地解释了常用的L1正则和L2正则的性质。今天的写作任务就完成啦,写得不好,请勿喷,欢迎指出,本人虚心接受,大家一起学习~~

参考文章:
https://baike.baidu.com/item/%E8%8C%83%E6%95%B0/10856788?fr=aladdin
https://charlesliuyx.github.io/2017/10/03/%E3%80%90%E7%9B%B4%E8%A7%82%E8%AF%A6%E8%A7%A3%E3%80%91%E4%BB%80%E4%B9%88%E6%98%AF%E6%AD%A3%E5%88%99%E5%8C%96/
https://www.cnblogs.com/pinking/p/9310728.html

发布了20 篇原创文章 · 获赞 62 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/Resume_f/article/details/104627620