浅谈L1 与L2 正则项
1 从范数开始吧
1.1 范数是什么
范数:一种具有抽象长度概念的函数,被用来度量某个向量空间(或矩阵)中每个向量的长度或大小。
1.2 范数的性质
通常意义上,范数具有以下三种基本性质:
- 非负性:
∣ ∣ x ∣ ∣ ≥ 0 , 且 ∣ ∣ x ∣ ∣ = 0 ⟺ x = 0 ||x||\ge0,且||x||=0\iff x=0 ∣∣x∣∣≥0,且∣∣x∣∣=0⟺x=0 - 齐次性:
∣ ∣ c ∗ x ∣ ∣ = ∣ c ∣ ∗ ∣ ∣ x ∣ ∣ ||c*x||=|c|*||x|| ∣∣c∗x∣∣=∣c∣∗∣∣x∣∣ - 三角不等式:
∣ ∣ x + y ∣ ∣ ⩽ ∣ ∣ x ∣ ∣ + ∣ ∣ y ∣ ∣ ||x+y||\leqslant||x||+||y|| ∣∣x+y∣∣⩽∣∣x∣∣+∣∣y∣∣
1.3 常用的几组范数
以
C
n
C^n
Cn空间为例,
R
n
R^n
Rn空间类似,若
x
=
[
x
1
,
x
2
,
.
.
.
,
x
n
]
T
x=[x_1,x_2,...,x_n]^T
x=[x1,x2,...,xn]T,
则有
∣
∣
x
∣
∣
p
=
(
∣
x
1
∣
p
,
∣
x
2
∣
p
,
.
.
.
,
∣
x
n
∣
p
)
1
p
||x||_p=(|x_1|^p,|x_2|^p,...,|x_n|^p)^\frac{1}{p}
∣∣x∣∣p=(∣x1∣p,∣x2∣p,...,∣xn∣p)p1。与闵可夫斯基(Minkowski)定义一样,可以将定义写成如下形式,
L
p
=
∣
∣
x
∣
∣
p
=
∑
i
=
1
n
x
i
p
p
L_p=||x||_p=\sqrt[p]{\sum_{i=1}^{n}{x_i}^p}
Lp=∣∣x∣∣p=pi=1∑nxip
值得注意的是,
L
p
L_p
Lp范数为一组范数。根据p的取值不同,其具体范数不同。通常,p取以下值:0,1,2,
∞
。
\infty。
∞。
L
0
:
∣
∣
x
∣
∣
0
=
∑
i
=
1
n
x
i
0
0
L_0: ||x||_0=\sqrt[0]{\sum_{i=1}^{n}{x_i}^0}
L0:∣∣x∣∣0=0i=1∑nxi0
用来度量向量中非零元素的个数。
L
0
L_0
L0范数的问题在于,非零元素开零次方不可为,意义表达有障碍,被认为是NP难题。因此通常用如下表达:
∣
∣
x
∣
∣
0
=
#
(
i
∣
x
i
≠
0
)
||x||_0=\#(i|x_i\neq0)
∣∣x∣∣0=#(i∣xi=0)
实际应用中,经常用
L
1
,
L
2
L_1,L_2
L1,L2范数来逼近
L
0
L_0
L0,
L
1
:
∣
∣
x
∣
∣
1
=
∑
i
=
1
n
∣
x
i
∣
1
=
∑
i
=
1
n
∣
x
i
∣
L_1:||x||_1=\sqrt[1]{\sum_{i=1}^{n}{|x_i|}}={\sum_{i=1}^{n}{|x_i|}}
L1:∣∣x∣∣1=1i=1∑n∣xi∣=i=1∑n∣xi∣
L
1
L_1
L1范数也称为Lasso,表示向量中非零元素的绝对值之和
L
2
:
∣
∣
x
∣
∣
2
=
∑
i
=
1
n
x
i
2
2
L_2:||x||_2=\sqrt[2]{\sum_{i=1}^{n}{x_i}^2}
L2:∣∣x∣∣2=2i=1∑nxi2
L
2
L_2
L2范数也称为Ridge,表示向量中非零元素的平方和开方
L
∞
:
∣
∣
x
∣
∣
∞
=
lim
p
→
∞
∑
i
=
1
n
x
i
p
p
L_\infty:||x||_\infty=\lim_{p\to\infty}\sqrt[p]{\sum_{i=1}^{n}{x_i}^p}
L∞:∣∣x∣∣∞=p→∞limpi=1∑nxip
L
∞
L_\infty
L∞被用来度量向量中元素最大值,通常情况下表示为:
L
∞
:
∣
∣
x
∣
∣
∞
=
m
a
x
(
∣
x
i
∣
)
L_\infty:||x||_\infty=max(|x_i|)
L∞:∣∣x∣∣∞=max(∣xi∣)
2 机器学习角度
2.1 损失函数
机器学习中损失函数(Loss function )用来描述真实值与预测值之间的差异,表达如下:
L ( x , y ) = ∑ i = 1 n ( y i − f ( x i ) ) 2 L(x,y)=\sum_{i=1}^{n}(y_i-f(x_i))^2 L(x,y)=i=1∑n(yi−f(xi))2
2.2 最优化问题
根据损失函数表达式,当y与f(x)的值差不多时,损失函数的值会无限接近于某个数,暂记为L;当y与f(x)的值差很多时,损失函数的值会高于L。因此可以判定,损失函数有下确界。
此时,需要找到一个模型f(f属于F泛函空间)使得在全局中,损失函数的值最小。即:
f
=
a
r
g
m
i
n
f
L
(
f
)
,
f
∈
F
f=argmin_fL(f),f\in F
f=argminfL(f),f∈F
这就转化为了最优化问题。由于此时只考虑了模型的数据拟合,而忽略了模型的复杂度(过拟合overfitting),因此我们需要引入可以描述模型复杂度的一项。即正则项(regularizer),表达式如下:
f
=
a
r
g
m
i
n
f
O
b
j
(
f
)
=
a
r
g
m
i
n
f
L
(
f
)
+
γ
Ω
(
f
)
f=argmin_fObj(f)=argmin_fL(f)+\gamma\Omega(f)
f=argminfObj(f)=argminfL(f)+γΩ(f)
为什么选用范数作为正则项呢?
由于求解损失函数最优化问题中非负性保证了损失函数有下确界。此时所需的正则项也应保证具有相同的性质。而根据范数的性质可知,其也有一个下界,且有非负性提供。当c=0时,由齐次性保证了具有下确界。因此选用范数作为正则项。
2.3 范数与机器学习的联系
下面,我们通过一个例子来说明范数作为正则项在机器学习中的使用。若在泛函空间F中,存在以下f模型及其损失函数,
f
(
x
)
=
Θ
0
+
Θ
1
x
1
+
Θ
2
x
2
2
+
Θ
3
x
3
3
+
Θ
4
x
4
4
,
f(x)= \Theta_0+\Theta_1x_1+\Theta_2x_2^2+\Theta_3x_3^3+\Theta_4x_4^4,
f(x)=Θ0+Θ1x1+Θ2x22+Θ3x33+Θ4x44,
L
(
x
,
y
)
=
∑
i
=
1
n
(
y
i
−
f
(
x
i
)
)
2
L(x,y)=\sum_{i=1}^{n}(y_i-f(x_i))^2
L(x,y)=i=1∑n(yi−f(xi))2
x
=
[
x
1
,
x
2
,
x
3
,
x
4
]
T
,
Θ
i
为
权
重
x=[x_1,x_2,x_3,x_4]^T,\Theta_i为权重
x=[x1,x2,x3,x4]T,Θi为权重
此时,我们希望模型能够尽可能的简单,比如使后两项的系数尽可能的接近于0,这样模型f整体最高次方可以控制在平方的层面上。那么,正则项就是作用在模型上,使模型的某些权重尽可能的小,模型尽可能的简单(可以在一定程度上避免过拟合)
由此,损失函数的表达为,
L
(
x
,
y
)
=
∑
i
=
1
n
(
y
i
−
f
(
x
i
)
)
2
+
γ
∑
i
=
1
n
Θ
i
2
L(x,y)=\sum_{i=1}^{n}(y_i-f(x_i))^2+\gamma\sum_{i=1}^{n}\Theta_i^2
L(x,y)=i=1∑n(yi−f(xi))2+γi=1∑nΘi2
这时可以把正则项(regularizer)看作是对模型的一种约束规范项,使其在空间中的形态表达更为简单,不会因为模型复杂度过高而导致过拟合问题。它通过对损失函数进行惩罚来实施约束规范。
那么具体有哪些惩罚措施或者说约束规范呢?
这就引入了前面提到的范数,常用的是p值为1,2的这两组范数。
根据上述模型事例,
L
1
=
γ
∑
i
=
1
n
∣
Θ
i
∣
,
L
1
的
惩
罚
为
权
值
绝
对
值
L_1=\gamma\sum_{i=1}^{n}|\Theta_i|,L_1的惩罚为权值绝对值
L1=γi=1∑n∣Θi∣,L1的惩罚为权值绝对值
L
2
=
γ
∑
i
=
1
n
Θ
i
2
,
L
2
的
惩
罚
为
所
有
特
征
权
值
的
平
方
和
L_2=\gamma\sum_{i=1}^{n}\Theta_i^2,L_2的惩罚为所有特征权值的平方和
L2=γi=1∑nΘi2,L2的惩罚为所有特征权值的平方和
3. L1与L2的对比
3.1 分析
下面我们来具体分析下,这两组正则项有什么不同。
L1正则项实际上在做的是特征选择(feature selection)。它会对不重要的输入特征置为零权值(zero weight),有用的特征置为非零权值(non-zero weight)。而L2正则项则使权值都逼近到非常小的数,但是无法达到零。也因此,L1具有稀疏性。以下图例引自周志华《机器学习》一书,
对于我们要求解的目标函数f,我们希望能够找到一个交点,使得正则项等值线与平方误差项等值线的和最小。由于L1会把不重要的特征置为零,放到图中其等值线(菱形)交点则易落在坐标轴上,另一参数值交点为零,因此具有稀疏性。而L2等值线是一组圆形,其交点可能落在平面中任意位置,因此不具备稀疏性。
对于鲁棒性,由于L1采取的是线性计算,L2则是指数方式增加,因此L1对于数据中异常值(outlier)的容忍力要高于L2,其鲁棒性更强。
关于求解的数量,根据L1和L2的定义可知,L1可以有多个解,L2则只有一个解。
3.2 对比总结
L1 | L2 |
---|---|
度量为绝对误差和 | 度量为平方差和 |
具有稀疏性 | 不具有稀疏性 |
有多个解 | 有一个解 |
具备特征选择 | 无特征选择 |
鲁棒性更强 | 鲁棒性差 |
参考资料
- https://blog.csdn.net/zouxy09/article/details/24971995
- https://blog.csdn.net/a493823882/article/details/80569888
- https://blog.csdn.net/vividonly/article/details/50723852?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.nonecase
- https://medium.com/datadriveninvestor/l1-l2-regularization-7f1b4fe948f2
- https://blog.csdn.net/anshuai_aw1/article/details/89435414