zoukankan      html  css  js  c++  java
  • 支持向量机(SVM)课前准备(二)--KKT条件

    Karush–Kuhn–Tucker conditions

    接第一节,拉格朗日乘子法https://www.cnblogs.com/super-yb/p/10705789.html

    我先直接给出公式(别跑!),然后慢慢解释每一条内容,欢迎批评指正!

    我们优化的目标是:

     

    其中,KKT条件如下:

     

    公式1、2、3不多解释。

    公式4、5,通过一个简单例子说明:

    gi添加一个 ≥0 的松弛变量。得到

    由此,我们将不等式转化为等式约束,应用拉格朗日乘子法。

    拉格朗日方程如下:

     

    对方程求偏导如下:

     

    注意红笔写的条件,我们会稍后解释。

    那么现在开始解方程组

    首先考虑 式5,

    当u1=0,a1≠0时,即 g1 对f(x)无约束

    当u1≠0,a1=0时,即 g1 对f(x)有约束,且根据式3可知, g1 也等于0。

    式6同理。注意,不等式对f(x)有约束效果时,不等式等于零。

    此时,方程组简化成

    推广,对于多个不等式约束,有 

    上述不等式称之为KKT条件,与本文一开始略有不同的是没有了等式的约束(不用在此纠结,我们关心的是不等式的约束问题),其中uj称之为KKT乘子

    最后利用几何的角度说明,为什么在极值点处KKT乘子大于等于零?


    其实用一个不等式约束很好理解,类似拉格朗日乘子法,

    f(x)的负梯度与g(x)的梯度同向,所以u1≥0.

    现增加一个不等式约束。

     将式1用梯度表示并移项,

    x*表示极值点。

    那么,此时f(x)的负梯度可以表示成所有有效约束条件在该点梯度的线性组合,梯度为向量,且与等高线垂直,有效指的是该约束条件(不等式)对应的KKT乘子。

     

    如图,极值点XK一定落在g1(X)=0和g2(X)=0两平面的交线上,且点XK处f(x)的负梯度可以为g1(X)和g2(X)梯度的线性组合。考虑两种情况:

     注意,由于约束条件为不等式,所以极值点的可行域为下半平面。

    当在b情况时,(ui小于0)在可行域C值可以变化,所以这种情况极值点不是最优。如图

    在a情况下,ui≥≥0,当C发生变化时,约束条件破坏,即该点为局部最优点。

    接下一节感知机

    参考:https://www.matongxue.com/madocs/987.html

    https://zhuanlan.zhihu.com/p/26514613

    https://en.wikipedia.org/wiki/Karush%E2%80%93Kuhn%E2%80%93Tucker_conditions

    https://www.cnblogs.com/liaohuiqiang/p/7805954.html

    https://www.cnblogs.com/xinchen1111/p/8804858.html

    最后附一个拉格朗日对偶问题讲的很好的博文

     https://www.cnblogs.com/ooon/p/5723725.html

    Valar morghulis
  • 相关阅读:
    zoj1589Professor John
    zoj1082Stockbroker Grapevine
    zoj1311Network
    zoj1060Sorting It All Out
    zoj1119SPF
    zju1085Alien Security
    zoj 2474Benny's Compiler
    zoj1068P,MTHBGWB
    what's next?
    ski for the first time~
  • 原文地址:https://www.cnblogs.com/super-yb/p/10811713.html
Copyright © 2011-2022 走看看