拉格朗日乘子法与SVM分类器原理详细推导

SVM(Support Vector Machine,支持向量机)是一个十分传统且好用的分类器,在二分类问题上有十分良好的表现。

一、拉格朗日乘子法

拉格朗日乘子法是SVM参数优化的核心,它能够解决多个等式或不等式约束下的最优化问题。

例1,给定 x 1 − x 2 = 2 x_1-x_2=2 x1x2=2,如何寻找 x 1 2 + x 2 2 x_1^2+x_2^2 x12+x22的最大值,此时 x 1 , x 2 x_1,x_2 x1,x2是多少?

拉格朗日乘子法的核心在于设立一个拉格朗日方程,将目标函数与约束函数的信息融合在一起,然后找寻该函数的最值。以上述情况为例,定义目标函数 f ( x 1 , x 2 ) = x 1 2 + x 2 2 f(x_1,x_2)=x_1^2+x_2^2 f(x1,x2)=x12+x22,约束函数 g ( x 1 , x 2 ) = x 1 − x 2 − 2 g(x_1,x_2)=x_1-x_2-2 g(x1,x2)=x1x22。拉格朗日乘子法顾名思义,就是新设立一个变量乘在约束函数上,然后和目标函数相加。则可定义拉格朗日函数 L ( x 1 , x 2 , λ ) L(x_1,x_2,\lambda) L(x1,x2,λ)为:
L ( x 1 , x 2 , λ ) = f ( x 1 , x 2 ) + λ g ( x 1 , x 2 ) = x 1 2 + x 2 2 + λ ( x 1 − x 2 − 2 ) L(x_1,x_2,\lambda)=f(x_1,x_2)+\lambda g(x_1,x_2)=x_1^2+x_2^2+\lambda(x_1-x_2-2) L(x1,x2,λ)=f(x1,x2)+λg(x1,x2)=x12+x22+λ(x1x22)
要求得上式的最值,需要各个变量的偏导数为零,所以必须满足:
∂ L ∂ x 1 = ∂ L ∂ x 2 = ∂ L ∂ λ = 0 \frac{\partial L}{\partial x_1}=\frac{\partial L}{\partial x_2}=\frac{\partial L}{\partial \lambda}=0 x1L=x2L=λL=0

将上式转换为等式组,有:
2 x 1 + λ = 0 2 x 2 − λ = 0 x 1 − x 2 − 2 = 0 2x_1+\lambda=0\\2x_2-\lambda=0\\x_1-x_2-2=0 2x1+λ=02x2λ=0x1x22=0

求解可得当 x 1 = 1 , x 2 = − 1 , λ = − 2 x_1=1,x_2=-1,\lambda=-2 x1=1,x2=1,λ=2时, x 1 2 + x 2 2 x_1^2+x_2^2 x12+x22可取到最大值2。

上例是最基本的拉格朗日乘子法的应用场景,下面描述扩展场景。

例2,给定 x 1 − x 2 = 2 , x 1 + x 2 ≥ 1 x_1-x_2=2,x_1+x_2\geq1 x1x2=2,x1+x21,如何寻找 x 1 2 + x 2 2 x_1^2+x_2^2 x12+x22的最大值?

已知约束中除了一个等式约束,还引入了一个不等式约束。和等式约束不同,不等式约束需要分情况讨论:

1. 全局最值在约束范围内

由例1可知,在该例中如果撇开不等式约束,最值在 x 1 = 1 , x 2 = − 1 x_1=1,x_2=-1 x1=1,x2=1时成立。所以倘若不等式函数 h ( x 1 , x 2 ) > 0 h(x_1,x_2)>0 h(x1,x2)>0在最值情况下成立(比如 x 1 + x 2 > − 1 x_1+x_2>-1 x1+x2>1),那么这个约束就等于没有。

2.全局最值在约束范围外

这种情况是例2场景下的情况了,此时不等式约束生效,成为等式约束。即最后的最值点会落在约束条件上(此例为 x 1 + x 2 ≥ 1 x_1+x_2\geq 1 x1+x21)。

除了不等式总共有两项约束,因此依然要建立一个方程,将这些信息融合在一起。定义 f ( x 1 , x 2 ) = x 1 2 + x 2 2 f(x_1,x_2)=x_1^2+x_2^2 f(x1,x2)=x12+x22 g ( x 1 , x 2 ) = x 1 − x 2 − 2 g(x_1,x_2)=x_1-x_2-2 g(x1,x2)=x1x22 h ( x 1 , x 2 ) = x 1 + x 2 − 1 h(x_1,x_2)=x_1+x_2-1 h(x1,x2)=x1+x21,由于约束比例1多了一个,所以拉格朗日乘子也要多一个。所以该例下拉格朗日函数 L ( x 1 , x 2 , λ , γ ) L(x_1,x_2,\lambda,\gamma) L(x1,x2,λ,γ)为:
L ( x 1 , x 2 , λ , γ ) = f ( x 1 , x 2 ) + λ g ( x 1 , x 2 ) − γ h ( x 1 , x 2 ) = x 1 2 + x 2 2 + λ ( x 1 − x 2 − 2 ) + γ ( x 1 + x 2 − 1 ) L(x_1,x_2,\lambda,\gamma)=f(x_1,x_2)+\lambda g(x_1,x_2) -\gamma h(x_1,x_2)\\=x_1^2+x_2^2+\lambda(x_1-x_2-2)+\gamma(x_1+x_2-1) L(x1,x2,λ,γ)=f(x1,x2)+λg(x1,x2)γh(x1,x2)=x12+x22+λ(x1

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值