用拉格朗日乘子理解正则项时出现的问题
对于一个预测模型:
(1) y ^ = f ( θ 0 , θ 1 , … , θ l ; x 1 , x 2 , … , x m ) \hat{y}=f({\theta_0, \theta_1,\dots,\theta_l};x_1,x_2,\dots,x_m)\tag{1} y^=f(θ0,θ1,…,θl;x1,x2,…,xm)(1)
其中, y ^ \hat{y} y^为预测值(标签); { θ i ∣ i ∈ [ 0 ,   l ] } \{\theta_i \mid i\in[0,\,l]\} {θi∣i∈[0,l]}为待估参数; l + 1 l+1 l+1为待估参数的个数; { x j ∣ j ∈ [ 1 ,   m ] } \{x_j \mid j\in[1,\,m]\} {xj∣j∈[1,m]}为输入值(特征); m m m为输入值的维数。
通常采用最小二乘法估计模型(1)中的待估参数
{
θ
i
∣
i
∈
[
0
,
 
l
]
}
\{\theta_i|i\in[0,\,l]\}
{θi∣i∈[0,l]},令
θ
⃗
=
[
θ
0
,
θ
1
,
…
,
θ
l
]
T
\vec{\theta}=[\theta_0, \theta_1,\dots,\theta_l]^T
θ=[θ0,θ1,…,θl]T,即有优化模型:
(2)
设
计
变
量
:
                              
θ
⃗
目
标
函
数
:
      
J
(
θ
⃗
)
=
∑
k
=
1
n
(
y
k
−
y
k
^
)
2
⟹
m
i
n
\begin{array}{l} {设计变量:\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,}\vec{\theta}\\ {目标函数:\,\,\,\,\,\,}J(\vec{\theta})=\sum_{k=1}^n(y_k-\hat{y_k})^2\Longrightarrow min \end{array} \tag{2}
设计变量:θ目标函数:J(θ)=∑k=1n(yk−yk^)2⟹min(2)
其中,
y
k
y_k
yk为真实值,
n
n
n为训练样本的个数。
然而,为了减小
∣
θ
⃗
∣
|\vec{\theta}|
∣θ∣(美其名曰:降低模型复杂度,防止模型过拟合,增强模型对新数据的预测能力 链接:正则项的理解之正则从哪里来),通常会在(2)的目标函数后添加一个正则项,即把优化模型(2)变为优化模型(3):
(3)
设
计
变
量
:
                                    
θ
⃗
目
标
函
数
:
      
J
(
θ
⃗
)
=
∑
k
=
1
n
(
y
k
−
y
k
^
)
2
+
λ
∑
i
=
0
l
θ
i
2
⟹
m
i
n
\begin{array}{l} {设计变量:\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,}\vec{\theta}\\ {目标函数:\,\,\,\,\,\,}J(\vec{\theta})=\sum_{k=1}^n(y_k-\hat{y_k})^2+\lambda\sum_{i=0}^l\theta_i^2\Longrightarrow min \end{array} \tag{3}
设计变量:θ目标函数:J(θ)=∑k=1n(yk−yk^)2+λ∑i=0lθi2⟹min(3)
其中,
λ
\lambda
λ为已知参数,它的值由经验选取(如:0.1)。
此时,若把 λ \lambda λ也当作一个设计变量(待估参数),即有优化模型(4):
(4) 设 计 变 量 :                                      θ ⃗ ;   λ 目 标 函 数 :        J ( θ ⃗ ) = ∑ k = 1 n ( y k − y k ^ ) 2 + λ ∑ i = 0 l θ i 2 ⟹ m i n \begin{array}{l} {设计变量:\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,}\vec{\theta};\,\lambda\\ {目标函数:\,\,\,\,\,\,}J(\vec{\theta})=\sum_{k=1}^n(y_k-\hat{y_k})^2+\lambda\sum_{i=0}^l\theta_i^2\Longrightarrow min \end{array} \tag{4} 设计变量:θ;λ目标函数:J(θ)=∑k=1n(yk−yk^)2+λ∑i=0lθi2⟹min(4)
则由拉格朗日乘子法(链接:理解拉格朗日乘子法)可以把优化模型(4)反着变换为优化模型(5):
(5)
设
计
变
量
:
                              
θ
⃗
;
 
λ
目
标
函
数
:
      
J
(
θ
⃗
)
=
∑
k
=
1
n
(
y
k
−
y
k
^
)
2
⟹
m
i
n
约
束
条
件
:
      
h
(
θ
⃗
)
=
∑
i
=
0
l
θ
i
2
=
0
\begin{array}{l} {设计变量:\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,}\vec{\theta};\,\lambda\\ {目标函数:\,\,\,\,\,\,}J(\vec{\theta})=\sum_{k=1}^n(y_k- \hat{y_k})^2\Longrightarrow min\\ {约束条件:\,\,\,\,\,\,}h(\vec{\theta})=\sum_{i=0}^l\theta_i^2=0 \end{array} \tag{5}
设计变量:θ;λ目标函数:J(θ)=∑k=1n(yk−yk^)2⟹min约束条件:h(θ)=∑i=0lθi2=0(5)
显然,当把
λ
\lambda
λ也当作一个设计变量(待估参数)时,由(5)中的约束条件可知,此时一定有
θ
0
=
θ
1
=
⋯
=
θ
l
=
0
 
\theta_0=\theta_1=\dots=\theta_l=\color{#F00}{0}\,
θ0=θ1=⋯=θl=0,即
θ
⃗
=
0
\vec{\theta}=\bf0
θ=0。换句话说,在目标函数中添加了正则项
∑
i
=
0
l
θ
i
2
\sum_{i=0}^l\theta_i^2
∑i=0lθi2后,不论
λ
\lambda
λ为多少,待估参数全为零。
这会出现很严重的问题,假如预测模型(1)为多元线性回归模型(6):
(6)
y
^
=
θ
0
+
θ
1
x
1
+
⋯
+
θ
l
x
l
\hat{y}=\theta_0+\theta_1x_1+\dots+\theta_lx_l \tag{6}
y^=θ0+θ1x1+⋯+θlxl(6)
如果在估计
θ
⃗
\vec{\theta}
θ时加入了正则项,则不论
λ
\lambda
λ为多少,都会得出:
y
^
=
0
\hat{y}=0
y^=0,而这又与实际经验相违背,是荒谬的。
因此,怎样才能正确地从拉格朗日乘子法的角度理解正则项?
以下解释为本人对以上问题的个人看法
出现以上问题的根源在于把
λ
\lambda
λ也当作一个设计变量(待估参数),为了求优化模型(4)的目标函数的驻点,可对其每个变量求偏导(这里依然以多元线性回归模型为例):
(7)
{
∂
J
(
θ
⃗
)
∂
θ
0
=
∑
k
=
1
n
−
2
(
y
k
−
θ
0
−
θ
1
x
k
1
−
⋯
−
θ
l
x
k
l
)
+
2
λ
θ
0
=
0
⋮
∂
J
(
θ
⃗
)
∂
θ
l
=
∑
k
=
1
n
−
2
x
k
l
(
y
k
−
θ
0
−
θ
1
x
k
1
−
⋯
−
θ
l
x
k
l
)
+
2
λ
θ
l
=
0
∂
J
(
θ
⃗
)
∂
λ
=
∑
i
=
0
l
θ
i
2
=
0
\begin{cases} \frac{\partial J(\vec{\theta})}{\partial \theta_0}=\sum_{k=1}^n-2(y_k-\theta_0-\theta_1x_{k1}-\dots-\theta_lx_{kl})+2\lambda\theta_0=0 \\[2ex] \vdots\\ \frac{\partial J(\vec{\theta})}{\partial \theta_l}=\sum_{k=1}^n-2x_{kl}(y_k-\theta_0-\theta_1x_{k1}-\dots-\theta_lx_{kl})+2\lambda\theta_l=0 \\[2ex] \frac{\partial J(\vec{\theta})}{\partial \lambda}=\sum_{i=0}^l\theta_i^2=0 \end{cases} \tag{7}
⎩⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎧∂θ0∂J(θ)=∑k=1n−2(yk−θ0−θ1xk1−⋯−θlxkl)+2λθ0=0⋮∂θl∂J(θ)=∑k=1n−2xkl(yk−θ0−θ1xk1−⋯−θlxkl)+2λθl=0∂λ∂J(θ)=∑i=0lθi2=0(7)
由(7)式的
∑
i
=
0
l
θ
i
2
=
0
\sum_{i=0}^l\theta_i^2=0
∑i=0lθi2=0可知
θ
0
=
θ
1
=
⋯
=
θ
l
=
0
 
\theta_0=\theta_1=\dots=\theta_l=0\,
θ0=θ1=⋯=θl=0,将其带入(7)式中的其他方程中可得:
(8)
{
∂
J
(
θ
⃗
)
∂
θ
0
=
∑
k
=
1
n
−
2
y
k
=
0
⋮
∂
J
(
θ
⃗
)
∂
θ
l
=
∑
k
=
1
n
−
2
x
k
l
y
k
=
0
\begin{cases} \frac{\partial J(\vec{\theta})}{\partial \theta_0}=\sum_{k=1}^n-2y_k=0 \\[2ex] \vdots\\ \frac{\partial J(\vec{\theta})}{\partial \theta_l}=\sum_{k=1}^n-2x_{kl}y_k=0 \end{cases} \tag{8}
⎩⎪⎪⎪⎪⎨⎪⎪⎪⎪⎧∂θ0∂J(θ)=∑k=1n−2yk=0⋮∂θl∂J(θ)=∑k=1n−2xklyk=0(8)
方程组(8)是矛盾方程,因为它们不全为0,因此方程组(7)无解。也就是说,当把
λ
\lambda
λ作为设计变量后,优化模型(4)的目标函数
J
(
θ
⃗
)
J(\vec{\theta})
J(θ)没有驻点,也就没有极值点了。现在再来定性地分析优化模型(4)的目标函数
J
(
θ
⃗
)
J(\vec{\theta})
J(θ)的单调性,由
∂
J
(
θ
⃗
)
∂
λ
=
∑
i
=
0
l
θ
i
2
\frac{\partial J(\vec{\theta})}{\partial \lambda}=\sum_{i=0}^l\theta_i^2
∂λ∂J(θ)=∑i=0lθi2恒大于等于0可知,
J
(
θ
⃗
)
J(\vec{\theta})
J(θ)在
λ
\lambda
λ这一坐标维度上是单调递增的。并且可以从
J
(
θ
⃗
)
J(\vec{\theta})
J(θ)的表达式直观地看出当
λ
→
−
∞
\lambda\rightarrow-\infty
λ→−∞时,
J
(
θ
⃗
)
→
−
∞
J(\vec{\theta})\rightarrow-\infty
J(θ)→−∞。
结论:在理解正则项时,不能简单地把 λ \lambda λ当成变量把优化模型(3)变为优化模型(4),并用拉格朗日乘子法转换成优化模型(5)进行理解。当 λ \lambda λ为常量时,即优化模型(3)的目标函数有极小值点;当把 λ \lambda λ作为变量时,即优化模型(4)没有极值点。