范数的概念
范数,是具有“距离”概念的函数。
在数学上,范数包括向量范数和矩阵范数,向量范数表征向量空间中向量的大小,矩阵范数表征矩阵引起变化的大小。
一种非严密的解释:
- 对于向量范数:向量空间中的向量都是有大小的,这个大小就是用范数来度量的,不同的范数都可以来度量这个大小
- 对于矩阵范数:通过运算 A X = B AX=B AX=B,可以将向量 X X X 变化为 B B B,矩阵范数就是来度量这个变化大小的。
范数是机器学习和深度学习的一个重要概念,通常用于评估模型的误差。
向量的范数
假设向量 $X=[2, 3, -5, -7] $
L 0 L_0 L0-范数: 向量中非零元素的个数
L 1 L_1 L1-范数: ∣ ∣ X ∣ ∣ 1 = ∑ i = 1 n ∣ x i ∣ ||X||_1=\sum_{i=1}^n|x_i| ∣∣X∣∣1=∑i=1n∣xi∣
向量的各个元素的绝对值之和
向量 X X X 的 L 1 L_1 L1-范数: ∣ ∣ X ∣ ∣ 1 = 2 + 3 + 5 + 7 = 17 ||X||_1=2+3+5+7=17 ∣∣X∣∣1=2+3+5+7=17
L 2 L_2 L2-范数: ∣ ∣ X ∣ ∣ 2 = ∑ i = 1 n x i 2 ||X||_2=\sqrt{\sum_{i=1}^nx_i^2} ∣∣X∣∣2=∑i=1nxi2
向量的各个元素的平方和再开平方根
向量 X X X 的 L 2 L_2 L2-范数: ∣ ∣ X ∣ ∣ 2 = ( 2 2 + 3 2 + ( − 5 ) 2 + ( − 7 ) 2 ) = 9.3274 ||X||_2=\sqrt{(2^2+3^2+(-5)^2+(-7)^2)}=9.3274 ∣∣X∣∣2=(22+32+(−5)2+(−7)2)=9.3274
正无穷范数: ∣ ∣ X ∣ ∣ ∞ = m a x 1 ≤ i ≤ n ∣ x i ∣ ||X||_∞=max_{1≤i≤n}|x_i| ∣∣X∣∣∞=max1≤i≤n∣xi∣
向量的各个元素的绝对值中最大的
负无穷范数:
∣
∣
X
∣
∣
−
∞
=
m
i
n
1
≤
i
≤
n
∣
x
i
∣
||X||_{-∞}=min_{1≤i≤n}|x_i|
∣∣X∣∣−∞=min1≤i≤n∣xi∣
向量的各个元素的绝对值中最小的
向量 X X X 的无穷范数: X X X 的正无穷范数为 7 7 7,负无穷范数为 2 2 2
p-范数: ∣ ∣ X ∣ ∣ p = ( ∑ i = 1 n ∣ x i ∣ p ) 1 p ||X||_p=(\sum_{i=1}^n |x_i|^p)^{\frac1p} ∣∣X∣∣p=(∑i=1n∣xi∣p)p1
向量的各个元素的绝对值的 p p p 次方和的 1 p \frac1p p1 次幂
性质:
- 规范是非负值
- 零向量的范数是 0
- 向量之和的范数小于或等于这些向量的范数之和 ∣ ∣ u + v ∣ ∣ ≤ ∣ ∣ u ∣ ∣ + ∣ ∣ v ∣ ∣ ||u+v||≤||u||+||v|| ∣∣u+v∣∣≤∣∣u∣∣+∣∣v∣∣
- 向量的范数乘以标量等于该标量的绝对值乘以向量的范数 ∣ ∣ k v ∣ ∣ = k ∣ ∣ v ∣ ∣ ||kv||=k||v|| ∣∣kv∣∣=k∣∣v∣∣
矩阵的范数
假设矩阵 A = [ − 1 2 − 3 4 − 6 6 ] A= \begin{bmatrix} -1 & 2 & -3 \\ 4 & -6 & 6 \end{bmatrix}\\ A=[−142−6−36]
1-范数(列和范数): 矩阵的每一列上的元素的绝对值先求和,再从中取个最大值(即,列和最大)
矩阵 A A A 先得到:[5,8,9],再取最大值:9
2-范数(谱范数): 矩阵 A T A A^TA ATA 的最大特征值开平方根
矩阵 A A A 的 2-范数是:10.0623
无穷范数(行和范数): 矩阵的每一行上的元素绝对值先求和,再从中取个最大值(即,行和最大)
矩阵 A A A 先得到:[6,16],再取最大值:16
为解决实际问题中的困难而提出的新的范数定义:
核范数: 矩阵的奇异值之和,可以用来低秩表示(最小化核范数 = 最小化矩阵的秩——低秩)
矩阵 A A A 的核范数是:10.9287
L 0 L_0 L0-范数: 矩阵中的非零元素的个数,通常用它来表示稀疏, L 0 L_0 L0-范数越小,0就越多,越稀疏
矩阵 A A A 的 L 0 L_0 L0-范数是:6
L 1 L_1 L1-范数: 矩阵中的各个元素的绝对值之和,是 L 0 L_0 L0-范数的最优凸近似,也可以表示稀疏
矩阵 A A A 的 L 1 L_1 L1-范数是:22
F F F-范数: 矩阵的各个元素的平方之和的平方根,也叫矩阵的 L 2 L_2 L2范数,是一个凸函数,可以求导求解,易于计算
矩阵 A A A 的 F F F-范数是:10.0995
L 21 L_{21} L21-范数: 矩阵先以每一列为单位,求每一列的 F F F-范数,再将得到的结果求 L 1 L_1 L1-范数,是介于 L 1 L_1 L1-范数和 L 2 L_2 L2-范数之间的一种范数
矩阵 A A A 的 L 21 L_{21} L21-范数是:17.1559
范数应用-损失函数
在回归问题中待解决的问题是:找出一条线,让数据点到线上的总距离(也就是error)最小。
范数可以表示距离 —> 因此可以用 L 1 L_1 L1-范数 和 L 2 L_2 L2-范数 作为损失函数,度量预测值与实际目标之间的距离
—> 最小化损失函数 = 最小化预测值与实际值之间的距离
- L 1 L_1 L1-范数损失函数,又称为最小绝对偏差 (least absolute deviation,LAD)
- L 2 L_2 L2-范数损失函数,又称为最小二乘误差(least squares error, LSE)
范数应用-正则项
过拟合:模型准确地记住了所有训练数据,包括噪声和不相关的特征。
过度贴合训练样本点,导致泛化能力差。(复杂的曲线无法保证能穿过下一个随机给出的样本点)
解决方法:清洗数据、减少特征值、正则化等
正则化:通过给需要训练的目标函数加上一些规则(限制),缩小求解的范围。
稀 疏:消除数据中一些无用特征,使模型泛化,减小过拟合的几率。
解向量的大部分分量(权重)为零,只有少数是非零的。
正则化 --> 稀疏 —> 避免过拟合
对于实验过程中出现的过拟合问题,正则化可以防止过拟合。即,在损失函数中加个正则项,防止参数过度拟合。
常用的正则项:
- L 1 L_1 L1-范数正则项: λ ∑ j = 1 n ∣ w j ∣ λ\sum^n_{j=1}|w_j| λ∑j=1n∣wj∣
- L 2 L_2 L2-范数正则项: λ ∑ j = 1 n w j 2 λ\sum^n_{j=1}w_j^2 λ∑j=1nwj2
L 1 L_1 L1-范数正则项 和 L 2 L_2 L2-范数正则项 的区别:
-
L 1 L_1 L1-范数正则项:也叫 稀疏规则算子(Lasso regularization)。
可以产生稀疏权值矩阵,把不重要的特征直接置零,防止过拟合,即特征自动选择,是一个天然的特征选择器。
对于线性回归模型,使用 L 1 L_1 L1-范数正则项 的模型叫做 Lasso回归。
-
L 2 L_2 L2-范数正则项:可以让参数尽可能小,接近于0,防止模型过拟合。
但是与 L 1 L_1 L1 不同的是不会等于0,这样得到的模型抗干扰能力强。
对于线性回归模型,使用 L 2 L_2 L2-范数正则项 的模型叫做 Ridge回归(岭回归)。
L 0 L_0 L0 和 L 1 L_1 L1都可以实现稀疏化,但是一般用 L 1 L_1 L1而不用 L 0 L_0 L0,原因是:
- L 0 L_0 L0 很难优化求解(NP-hard问题);
- L 1 L_1 L1 是 L 0 L_0 L0的最优凸近似,比 L 0 L_0 L0 更容易优化求解。
稀疏化的好处:
-
特征选择
将无用特征对应的权重置为零,去除无用特征,实现特征的自动选择。
-
可解释性
例如判断某种病的患病率时,最初有1000个特征,建模后参数经过稀疏化,最终只有5个特征的参数是非零的,那么就可以说影响患病率的主要就是这5个特征。
为什么正则化会导致稀疏?
找到一篇写的不错的:https://blog.csdn.net/qq_41554005/article/details/113199699
内容如下: