由SVM中的拉格朗日乘子法与KKT条件到最优化问题

  前言:在学习支持向量机SVM时,要对SVM模型求最优解,需要用到拉格朗日乘子法和KKT条件。因此本文目的在于系统地梳理求“如何求最优解”,侧重介绍以上提到的两个概念。新手一个,叙述有纰漏的地方恳请指出。
  最优化问题这里指给定某一函数,求其在指定定义域内的全局最小值。
  一般来说,最优化问题由简单到复杂可以分为以下三类:

(1)无约束条件

  这是最简单的情况,通常是对变量求导,令导数为0的点是极值点,因而有可能是最值点。如求 f(x)=x2,xϵR f ( x ) = x 2 , x ϵ R 的最小值。

fx=02x=0x=0f(0)=0 ∂ f ∂ x = 0 → 2 x = 0 → x = 0 → 极 小 值 与 最 小 值 f ( 0 ) = 0

(2)约束条件为等式

  目标函数是 f(x) f ( x ) ,约束条件有k个等式,如下:

{minf(x)s.t.hi(x)=0,i=1,2,...,k { m i n f ( x ) s . t . h i ( x ) = 0 , i = 1 , 2 , . . . , k
  我们用 拉格朗日乘子法,先构造拉格朗日函数 L L
L(x,λ1,...,λk)=f(x)+i=1kλihi(x)
i=1kλihi(x)=0L(x,λ1,...,λk)=f(x) 因 为 ∑ i = 1 k λ i h i ( x ) = 0 → L ( x , λ 1 , . . . , λ k ) = f ( x )
  对所有变量求导
Lx=0,Lλ1=0,...,Lλk=0 ∂ L ∂ x = 0 , ∂ L ∂ λ 1 = 0 , . . . , ∂ L ∂ λ k = 0

  求出的解代入原方程,就有可能得到 L L 的极值,也就是f的极值。

(3)约束条件为不等式

  假设我们的目标函数和约束条件如下所示:

minf(x)s.t.hi(x)=0,i=1,2,...,ks.t.gj(x)0,j=1,2,...,m { m i n f ( x ) s . t . h i ( x ) = 0 , i = 1 , 2 , . . . , k s . t . g j ( x ) ≤ 0 , j = 1 , 2 , . . . , m
  我们照样用 拉格朗日乘子法,这次我们希望构造一个函数 L L ,Lf,当 L L 取得最大值时,f便取得最小值,同时 L L 应该包含所有的约束条件,如下所示:
L(x,λ1,...,λk,μ1,...,μm)=f(x)+i=1kλihi(x)+j=1mμjgj(x)
其中 μj0,(j=1,2,...,m) μ j ≥ 0 , ( j = 1 , 2 , . . . , m ) ,因为要保证 Lf L ≤ f L L 的第二项为0,第三项中gj(x)0,因此 μj0 μ j ≥ 0 ,才能保证第三项最大值是0,从而 Lf L ≤ f
  假设 x x ∗ L L 的最优解,则其应满足以下条件:
{1)s.t.hi(x)=0,i=1,2,...,k2)s.t.gj(x)0,j=1,2,...,m3)μj0,(j=1,2,...,m)4)μjgj(x)=0,(j=1,2,...,m)5)Fx|x=x=0
以上条件合称为 KKT条件。 其中,1),2),3)是原约束条件;4)是因为要求 f f 的最小值,则L必取得最大值,此时 L L 的第三项必取得最大值0,而此时第三项的每一分项μjgj(x)都为0;5)拉格朗日函数取极值的必要条件。

参考:
1.https://blog.csdn.net/johnnyconstantine/article/details/46335763 KKT条件介绍
2.https://blog.csdn.net/xianlingmao/article/details/7919597 深入理解拉格朗日乘子法(Lagrange Multiplier) 和KKT条件

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值