SVM与拉格朗日乘子法的思考

拉格朗日乘子法:

  • 拉格朗日乘子法专门用于解决求解一个带有约束的函数的极值问题。但约束其实也有区分,分别可以分成“无约束”、“有等式约束”和“有不等式约束”。我们假设要求解min f(w)问题
    • 无约束:直接采用高中时期就学过的方式,对函数中涉及到的全部变量一一求偏导,然后令偏导=0,即可求解,十分简单;
    • 有等式约束:引入拉格朗日乘子。
      • 设若干等式约束为g_i (w,b) = 0 ,那么引入一组拉格朗日乘子λ,则原问题求解f(w)的最小值可以改为:求解f(w) + sigma _ i ^ m{λ_i * g_i (w,b) }的最小值的问题。为何?原因是,由于g_i (w,b)恒为0,因而不论λ取值是啥,对最终结果其实没有影响,我们设上式f(w) + sigma _ i ^ m{λ * g_i (w,b) } = L(w,b,λ)(这是拉格朗日函数),则求解 L(w,b,λ)的最小值和求解f(w)的最小值是一样的,这样,我们就把有等式约束的最值问题转化为无等式约束的最值问题;
      • 最后,按照无约束问题处理拉格朗日函数L(w,b,λ)的最值问题
    • 有不等式约束:(也可以包含等式约束)同样引入拉格朗日乘子,同时使用KKT条件对拉格朗日乘子法进行泛化。
      • 设不等式约束:g_i (w,b) <= 0, 则我们引入一组拉格朗日乘子α_i,其中α_i >= 0;则f(w)及其不等式约束条件可以被这样表示:max_(α) L(w,b,α) =max_(α) f(w) + sigma _i ^m{α_i * g_i (w,b)}。为何?原因也很简单,对于拉更朗日函数L求最大值,若约束条件不成立,例如g>0了,那么这样构建的拉格朗日函数的最大值将突破天际,没有上线;若全部约束条件都满足(g <= 0 , α_i >= 0),则很明显,拉格朗日函数此时的最大值就是f(w)的最大值加上后面sigma求和的最大值。后面sigma求和的最大值只能是0,所以L(w,b,α)的最大值就等于f(w)的最大值
      • 原问题为p* = min_w f(w),因而可以转化为p* = min_(w,b) max_α L(w,b,α)。我们将该问题转化为对偶问题,KKT条件是满足强对偶条件的优化问题的必要条件。(至于为何要转化为对偶问题?主要为了降低算法的算法度)。对偶问题即交换求解机制问题的顺序,d* = max_α min_(w,b) L(w,b,α)。容易得知,p* >= d*,当且仅当KKT条件成立,等号才能取到,我们才能用对偶问题的解去作为原问题的解
      • about KKT条件:KKT条件主要有5条
        • 由于d* = max_α min_(w,b) L(w,b,α),因而涉及到对拉格朗日函数L对w,b求偏导的问题,只有偏导为0时才能取到内层函数的最小值,因而KKT条件前两条就是L(w,b,α)对w,b分别求导=0的条件;
        • KKT条件作为拉格朗日乘子法的泛化,需要满足基本的约束条件,即α_i >=0、g_i(w,b) <= 0。这也是KKT条件的3,4条
        • 最后一条最有趣,即α_i*g_i(w*,b*) = 0。这个如何解释呢?α_i是所有样本的系数、g_i(w*,b*)是不等式约束,划出一个解的可行域。这里乘积必须为0的含义,就是,若g_i(w*,b*) != 0(即小于0),那么该样本一定在可行域内部,所以它就不是support vector,所以在计算时不被考虑在内,因而系数给0忽略之;若g_i(w*,b*) == 0,意味着该样本在可行域边界上就是支持向量,此时α_i != 0,意味着计算时要把这个支持向量考虑进来。
        • 满足这些KKT条件下,去解决对偶问题,求得w*和b*,从而最终得到仅含有一组未知数α的目标函数,并且最终使用SMO坐标上升算法予以解决。
  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

_illusion_

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

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

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

打赏作者

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

抵扣说明:

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

余额充值