用拉格朗日乘子理解正则项时出现的问题

用拉格朗日乘子理解正则项时出现的问题


对于一个预测模型:
(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]\} {θii[0,l]}为待估参数; l + 1 l+1 l+1为待估参数的个数; { x j ∣ j ∈ [ 1 ,   m ] } \{x_j \mid j\in[1,\,m]\} {xjj[1,m]}为输入值(特征); m m m为输入值的维数。

通常采用最小二乘法估计模型(1)中的待估参数 { θ i ∣ i ∈ [ 0 ,   l ] } \{\theta_i|i\in[0,\,l]\} {θii[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(ykyk^)2min(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(ykyk^)2+λi=0lθi2min(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(ykyk^)2+λi=0lθi2min(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(ykyk^)2minh(θ )=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} θ0J(θ )=k=1n2(ykθ0θ1xk1θlxkl)+2λθ0=0θlJ(θ )=k=1n2xkl(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} θ0J(θ )=k=1n2yk=0θlJ(θ )=k=1n2xklyk=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)没有极值点。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值