Primal => Dual

现实中我们遇到的原优化问题, 写为标准型的话是这样的.

\(min _w f(w) \\ s.t. \\ g_i(w) <=0 \\ h_i(w) = 0\)

即要求的是在w满足约束条件下, 且使得f(w)取得最小值的 w 的值.

那我们通常的做法是通过引入拉格朗日函数:

\(L(w, \alpha, \beta) = f(w) + \sum _{i=1}^{k} \alpha_i g_i(w) + \sum _{i=1}^{t} \beta_i h_i(w)\)

其中\(\alpha, \beta\) 都大于等于0, 称为拉格朗日算子. 至于为什么能这样做, 参考"对偶问题初识"的笔记里我有推导, 更详尽的可以翻翻高数, 关于带约束条件下求函数极值的部分, 分别从几何和分析的两个角度有推导(核心就是偏导数,梯度向量(法向量)平行), 这里就过了,不想牵扯太多.

现在来考虑一个max 的函数:

\(\theta_p(w) = max _{\alpha, \beta} L(w, \alpha, \beta)\) 即针对 \(\alpha, \beta\)要对L(w) 取最大.

对于给定的w, 如果对于原问题 f(w)中没有对w进行约束, 则可得出\(\theta_p(w)\)的是无穷大的.

\(\theta_p(w) = [f(w) + \sum _{i=1}^{k} \alpha_i g_i(w) + \sum _{i=1}^{t} \beta_i h_i(w)] = \infty\)

如过 w 满足primal 的约束, 则\(\theta_p(w) = f(w)\), 这里的"=",应该表示"最优化问题等价"不是数值上等于,感觉. 这里有一点绕, 其实想表达的是这样的思想:

欲对关于\(w,\alpha, \beta\)的函数\(L(w,\alpha, \beta) 取min\)时的优化问题, 转为先对 \(\alpha, \beta\) 优化取max, 再优化 w

用数学的形式来表达这样的思想即:

\(min_w \ [\theta_p (w)] =min_w \ [max_{\alpha, \beta} \ L(w, \alpha, \beta)]\)

再定义: \(\theta_D(\alpha, \beta) = min_w \ L(w, \alpha, \beta)\)

  • \(\theta _p(w)\) 是针对 \(\alpha, \beta\) 的max 最优化
  • \(\theta_D(\alpha, \beta)\) 是针对 w 的min 最优化

也就是将dual 的问题可定义为:

\(max_{\alpha, \beta} \ [\theta_D(\alpha, \beta)] = max_{\alpha, \beta \ min_w \ [L(w, \alpha, \beta)]}\)

对于原始及其对偶问题, 我们假设

  • p* 为primal 问题 \(min_w \ \theta_p(w)\) 的最优解

  • d* 为其 dual 问题 \(max_{\alpha, \beta} \ \theta_D(\alpha, \beta)\) 的最优解

必然有:

$p^* = min_w [max_{\alpha, \beta}  L(w, \alpha, \beta)] >= max_{\alpha, \beta}  [min_w  L(w, \alpha, \beta)]= d* $

关于 p* >= d* 在"对偶问题初识"的笔记中有过证明, 根据约束条件及定义证明的

有一种这样的感觉: 对一个多元函数有: "min max" >= "max min", 多个参数哈.

KKT

关于primal 和 dual 的一个最为重要的结论, 莫过于p* >= d* (用约束定义证明)

\(minmize \ f_0(x) \\ s.t. \\ f_i(x) <=0, i=1,2,..m \\ h_j(x) = 0, j = 1,2...p\)

在凸优化及对偶的初识中, 我们知道, 如果 **p* = d*, 则称为强对偶, 当函数为convex, 一般会成立. 同样, 如果已经函数是convex. 如果满足: \(\exists \ x', f_i(x') <0, h_j(x')=0\) (称为slater's condition) 则可判定该convex是强对偶**的哦.

我们进一步还推导了 complementary slackness 条件

即如果 p=d 必然要有 \(\lambda^* f_i(x) = 0\)

这里先引入结论, p=d 只有在KKT条件下才会满足

KKT

  • 是以3个科学家名字命名的: Karush-Kuhn-Tucke
  • 广义化的拉格朗日数数乘的扩展

SVM算是KKT的一个最典型的应用了. 假设 f, g 都是convex函数\(f(w) = w^Tw\)的约束条件, 满足\(h_i(w), g_i(w)\) 都是 \(a_i^Tw+b\) 的线性形式, 同时假设存在w使得\(g_i(w)<=0 恒成立\). 则一定存在\(a_i^*, \beta^*, w^*\) 满足Karush-Kuhn-Tucker(KKT)条件,而 [ \(a_i^*, \beta^*, w^*\)] 也正好是 p=d 的解, KKT条件即:

\(\frac {\partial } {\partial w_i} L(w^*,a_i^*, \beta^*)= 0\)

\(\frac {\partial } {\partial \beta_i} L(w^*, a_i^*, \beta^*)= 0\)

\(\alpha_i^*g_i(w^*) = 0\) (很关键的 complementary 条件哦, 已通过定义证明)

\(g_i(w^*)<=0\)

\(a^* >= 0\)

why KKT?

不难发现在很多问题求解, 我们大多能转为dual的问题, 然而如果不能满足KKT条件, dual的问题可能不能简化primal问题的求解, KKT我自己平时也基本不会用到, 不过在SVM中却被巧妙地用到了, 就是有一条关键性质:

\(\alpha_i^*g_i(w^*) = 0\)

使得SVM在求解参数的时候, 简化了大量的运算量, 从而找到那些支持向量就搞定了, 其他地方, 欧文感觉也没太用到, 不过运筹学方面,应该会有涉及一点, 我也不管, 就像理解一波KKT和推导SMV, 装逼一波, 然后应用上做一个自信的调参侠,仅此而已, 下一波就推导SVM.

ML-对偶(Duality)问题 KKT 条件的更多相关文章

  1. 装载:关于拉格朗日乘子法与KKT条件

    作者:@wzyer 拉格朗日乘子法无疑是最优化理论中最重要的一个方法.但是现在网上并没有很好的完整介绍整个方法的文章.我这里尝试详细介绍一下这方面的有关问题,插入自己的一些理解,希望能够对大家有帮助. ...

  2. 约束优化方法之拉格朗日乘子法与KKT条件

    引言 本篇文章将详解带有约束条件的最优化问题,约束条件分为等式约束与不等式约束,对于等式约束的优化问题,可以直接应用拉格朗日乘子法去求取最优值:对于含有不等式约束的优化问题,可以转化为在满足 KKT ...

  3. 从对偶问题到KKT条件

    转自:http://xuehy.github.io/%E4%BC%98%E5%8C%96/2014/04/13/KKT/ 从对偶问题到KKT条件 Apr 13, 2014 对偶问题(Duality) ...

  4. 真正理解拉格朗日乘子法和 KKT 条件

        这篇博文中直观上讲解了拉格朗日乘子法和 KKT 条件,对偶问题等内容.     首先从无约束的优化问题讲起,一般就是要使一个表达式取到最小值: \[min \quad f(x)\]     如 ...

  5. 关于拉格朗日乘子法与KKT条件

    关于拉格朗日乘子法与KKT条件 关于拉格朗日乘子法与KKT条件   目录 拉格朗日乘子法的数学基础 共轭函数 拉格朗日函数 拉格朗日对偶函数 目标函数最优值的下界 拉格朗日对偶函数与共轭函数的联系 拉 ...

  6. 机器学习——支持向量机(SVM)之拉格朗日乘子法,KKT条件以及简化版SMO算法分析

    SVM有很多实现,现在只关注其中最流行的一种实现,即序列最小优化(Sequential Minimal Optimization,SMO)算法,然后介绍如何使用一种核函数(kernel)的方式将SVM ...

  7. PRML读书会第七章 Sparse Kernel Machines(支持向量机, support vector machine ,KKT条件,RVM)

    主讲人 网神 (新浪微博: @豆角茄子麻酱凉面) 网神(66707180) 18:59:22  大家好,今天一起交流下PRML第7章.第六章核函数里提到,有一类机器学习算法,不是对参数做点估计或求其分 ...

  8. 深入理解拉格朗日乘子法(Lagrange Multiplier) 和KKT条件

    [整理]   在求解最优化问题中,拉格朗日乘子法(Lagrange Multiplier)和KKT(Karush Kuhn Tucker)条件是两种最常用的方法.在有等式约束时使用拉格朗日乘子法,在有 ...

  9. 拉格朗日乘子法和KKT条件

    拉格朗日乘子法(Lagrange Multiplier)和KKT(Karush-Kuhn-Tucker)条件是求解约束优化问题的重要方法,在有等式约束时使用拉格朗日乘子法,在有不等约束时使用KKT条件 ...

随机推荐

  1. 网络协议 13 - HTTPS 协议

    之前说了 HTTP 协议的各种问题,但是它还是陪伴着互联网.陪伴着我们走过了将近二十年的风风雨雨.现在有很多新的协议尝试去取代它,来解决性能.效率等问题,但它还还能靠着“多年的情分”活的滋润.然而,近 ...

  2. 洛谷P1531 I Hate It题解

    题目背景 很多学校流行一种比较的习惯.老师们很喜欢询问,从某某到某某当中,分数最高的是多少.这让很多学生很反感. 题目描述 不管你喜不喜欢,现在需要你做的是,就是按照老师的要求,写一个程序,模拟老师的 ...

  3. Glimma 包

    http://master.bioconductor.org/packages/3.9/bioc/html/Glimma.html 安装 if (!requireNamespace("Bio ...

  4. Linux笔记本合上屏幕不待机

    Linux笔记本合上屏幕不待机[]# vim /etc/systemd/logind.conf# This file is part of systemd.## systemd is free sof ...

  5. 2018-2019-2 网络对抗技术 20165318 Exp 9 Web安全基础

    2018-2019-2 网络对抗技术 20165318 Exp 9 Web安全基础 基础问题回答 实践过程记录 WebGoat安装 SQL注入攻击 1.命令注入(Command Injection) ...

  6. CSS3rem自适应

    CSS3rem自适应 如果外层背景是 width:100%; height:100%;拉伸的背景 那top必须要用百分比 才能保证跟背景结合如果外层背景是 width:100%; 自适应宽度的背景 那 ...

  7. mknod命令的使用

    1.mknod命令 在Linux系统下,mknod命令可用于系统下字符设备文件和块设备文件的创建. (1)命令语法 mknod(选项)(参数) (2)常用选项说明 -Z:设置安全的上下文. -m:设置 ...

  8. ES6高级技巧(三)

    html转译 let c='<a href="#">Me & you</a>'.replace(/[&<>'"]/g, ...

  9. char[],char *,string之间转换

    char []与char *之间转换 char []转char *:直接进行赋值即可 // char[] 转char *char str[] = "lala";char *str1 ...

  10. How to let your website login with domain account when using IIS to deploy it?

    如何让你的网站以域账号登录 Select your website in IIS Manager, open Authentication, enable Windows Authentication ...