《统计学习方法》啃书手册|附录C 拉格朗日对偶性(教材全解 + 公式推导 + Python实现)

【补充说明】原始问题和对偶问题的简单理解如下:

  • 原始问题:在确定 x x x 的情况下,求使 L ( x , α , β ) L(x,\alpha,\beta) L(x,α,β) 取得最大值的 α \alpha α β \beta β;然后在所有求出来的 L ( x , α , β ) L(x,\alpha,\beta) L(x,α,β) 的最大值中,寻找取值最小值时的 x x x
  • 对偶问题:在确定 α \alpha α β \beta β 的情况下,求使 L ( x , α , β ) L(x,\alpha,\beta) L(x,α,β) 取得最小值的 x x x;然后在所有求出来的 L ( x , α , β ) L(x,\alpha,\beta) L(x,α,β) 的最小值中,寻找取得最大值时的 α \alpha α β \beta β

【补充说明】仿射函数:最高次数为 1 的多项式函数,一般形式为 f ( x ) = A x + b f(x)=Ax+b f(x)=Ax+b。其中 A A A m × n m×n m×n 矩阵, B B B m m m 维向量。仿射函数可以将 n n n 维向量映射到 m m m 维向量上。

为什么有时规定拉格朗日乘子大于等于 0?

简单来说,这是因为拉格朗日乘子要起到的作用决定的。

引入拉格朗日乘子是为了强制要求所有的约束条件必须被满足,当 x x x 违反约束条件时, L ( x , α , β ) → + ∞ L(x,\alpha,\beta) \rightarrow + \infty L(x,α,β)+,当 x x x 满足约束条件时, L ( x , α , β ) = f ( x ) L(x,\alpha,\beta) = f(x) L(x,α,β)=f(x)

具体地,假设 f ( x ) f(x) f(x) c i ( x ) c_i(x) ci(x) h j ( x ) h_j(x) hj(x) 是定义在 R n R^n Rn 上的连续可微函数。考虑约束最优化问题(极大化问题可以简单地转换为极小化问题,这里仅讨论极小化问题):

min ⁡ x ∈ R n f ( x ) s . t . c i ( x ) ≤ 0 , i = 1 , 2 , ⋯   , k h j ( x ) = 0 , j = 1 , 2 , ⋯   , l \begin{aligned} \min_{x \in R^n} \hspace{1em} & f(x)\\ s.t. \hspace{1em} & c_i(x) \le 0, \hspace{1em} i=1,2,\cdots,k\\ & h_j(x) = 0, \hspace{1em} j=1,2,\cdots,l \end{aligned} xRnmins.t.f(x)ci(x)0,i=1,2,,khj(x)=0,j=1,2,,l

引入拉格朗日乘子后,得到

L ( x , α , β ) = f ( x ) + ∑ i = 1 k α i c i ( x ) + ∑ j = 1 l β j h j ( x ) L(x,\alpha,\beta) = f(x) + \sum_{i=1}^k \alpha_i c_i (x) + \sum_{j=1}^l \beta_j h_j (x) L(x,α,β)=f(x)+i=1kαici(x)+j=1lβjhj(x)

对于约束条件 c i ( x ) ≤ 0 c_i(x) \le 0 ci(x)0:当存在某个 i i i 使得 c i ( x ) > 0 c_i(x)>0 ci(x)>0 时,违反了约束条件;我们需要令 α i → + ∞ \alpha_i \rightarrow +\infty αi+,使 α i c i → + ∞ \alpha_i c_i \rightarrow + \infty αici+。而对于 c i ( x ) ≤ 0 c_i(x) \le 0 ci(x)0,满足约束条件;我们需要令当 α i = 0 \alpha_i = 0 αi=0 时, α i c i ( x ) \alpha_i c_i(x) αici(x) 取得最大值 0 0 0。显然, α i \alpha_i αi 不能为负数,于是我们得到了 α i ≥ 0 \alpha_i \ge 0 αi0 的取值范围。

对于约束条件 h j ( x ) = 0 h_j(x) = 0 hj(x)=0,当存在某个 j j j 使得 h j ( x ) > 0 h_j(x)>0 hj(x)>0 时,我们需要令 β j → + ∞ \beta_j \rightarrow +\infty βj+;对于 h j ( x ) < 0 h_j(x)<0 hj(x)<0,我们需要令 β j → − ∞ \beta_j \rightarrow - \infty βj;而对于 h j ( x ) = 0 h_j(x)=0 hj(x)=0,满足约束条件, β j \beta_j βj 取得任意值时,均有 β j h j ( x ) = 0 \beta_j h_j(x) = 0 βjhj(x)=0。显然, β j \beta_j βj 可以取任意值,于是我们得到了 β j ∈ R \beta_j \in R βjR 的取值范围。

KKT 条件整理
  1. 函数各个自变量的偏导数为 0(C.21)
  2. 各个拉格朗日乘子与约束条件的乘积均为 0(C.22)
  3. 各个约束条件均满足(C.23,C.25)
  4. 拉格朗日乘子的定义域均满足(C.24)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

长行

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值