SVM之问题形式化

   SVM之对偶问题

   SVM之核函数

   SVM之解决线性不可分

>>>写在SVM之前——凸优化与对偶问题

本篇是写在SVM之前的关于优化问题的一点知识,在SVM中会用到。考虑到SVM之复杂,将其中优化方面基础知识提出,单作此篇。所以,本文也不会涉及优化问题的许多深层问题,只是个人知识范围内所了解的SVM中涉及到的优化问题基础。

一、凸优化问题

在优化问题中,凸优化问题由于具有优良的性质(局部最优解即是全局最优解),受到广泛研究。

对于一个含约束的优化问题:

\[\left\{ \begin{matrix}\underset{x}{\mathop{\min }}\,f(x)  \\\begin{matrix}s.t. & x\in C  \\\end{matrix}  \\\end{matrix} \right.\]

其中,$f(x)$ 为一个凸函数,变量$\text{x}$ 的可行域$\text{C}$ 是一个凸集,那么这个优化问题称为一个凸优化问题。

将上面的约束条件的形式更加明确一点,一个凸优化问题可以写成:

\[\left\{ \begin{matrix}\underset{x}{\mathop{\min }}\,f(x)  \\\begin{matrix}s.t. & {{g}_{i}}(x)\le 0  \\{} & {{h}_{i}}(x)=0  \\\end{matrix}  \\\end{matrix} \right.\]

其中,$f(x)$ 当然仍然为一个凸函数,但对约束条件有一定要求:${{g}_{i}}(x)$ 是凸函数;${{h}_{i}}(x)$ 为仿射函数。这样的要求当然是为了保证可行域是一个凸集。

不等式约束中${{g}_{i}}(x)$为凸函数,而凸函数的水平截集$\{x|{{g}_{i}}(x)\le \alpha \}$ 是一个凸集(凸函数的性质),这就使得不等式约束保证了可行域为凸集;

对于等式约束${{h}_{i}}(x)=0$ 可以写成:

\[\left\{ \begin{matrix}{{h}_{i}}(x)\le 0  \\{{h}_{i}}(x)\ge 0  \\\end{matrix} \right.\]

要使得满足条件的$x$ 组成的集合为凸集,就要求${{h}_{i}}(x)$ 既是一个凸函数,又是一个凹函数,这样${{h}_{i}}(x)$便只能是仿射函数了。

以上便是凸优化问题的一般形式。常见的线性规划、二次规划、二次约束二次规划等优化问题都是凸优化问题。

二、拉格朗日对偶

抛开凸优化问题,回到一般的优化问题。

一般的优化问题可以写成以下形式:

\[\left\{ \begin{matrix}\underset{x}{\mathop{\min }}\,f(x)  \\\begin{matrix}s.t. & {{g}_{i}}(x)\le 0  \\{} & {{h}_{i}}(x)=0  \\\end{matrix}  \\\end{matrix} \right.\]

当然,这里对$f(x)$、${{g}_{i}}(x)$、${{h}_{i}}(x)$ 都是没有要求的。

根据拉格朗日方法,对应的拉格朗日函数为:

$L(x,\alpha ,\beta )=f(x)+\sum\limits_{i}{{{\alpha }_{i}}{{g}_{i}}(x)}+\sum\limits_{i}{{{\beta }_{i}}{{h}_{i}}(x)}$

其中$\alpha $ 、$\beta $为拉格朗日乘数(都是向量,其长度分别对应于不等式约束和等式约束的个数),且${{\alpha }_{i}}\ge 0$、$\beta $ 任意。

定义函数:

\[{{\theta }_{P}}(x)=\underset{\alpha ,\beta :{{\alpha }_{i}}\ge 0}{\mathop{\max }}\,L(x,\alpha ,\beta )\]

容易发现:

\[{{\theta }_{P}}(x)=\left\{ \begin{matrix}f(x) & {{g}_{i}}(x)\le 0\And {{h}_{i}}(x)=0  \\+\infty  & {{g}_{i}}(x)>0||{{h}_{i}}(x)\ne 0  \\\end{matrix} \right.\]

如果原来的约束条件都满足那么$L(x,\alpha ,\beta )=f(x)+\sum\limits_{i}{{{\alpha }_{i}}{{g}_{i}}(x)}+\sum\limits_{i}{{{\beta }_{i}}{{h}_{i}}(x)}$,最后一项为零,第二项要取得最大值,由于${{g}_{i}}(x)\le 0$,所以只能取$\alpha =\overset{\to }{\mathop{0}}\,$ ,使其取得最大值0,这样\[{{\theta }_{P}}(x)=\underset{\alpha ,\beta :{{\alpha }_{i}}\ge 0}{\mathop{\max }}\,L(x,\alpha ,\beta )=f(x)\]

如果违背了原来的约束条件,比如存在某一个约束${{g}_{i}}(x)>0$,那么可以取${{\alpha }_{i}}$ 任意大,这样${{\theta }_{P}}(x)=+\infty $。违反等式约束${{h}_{i}}(x)=0$的情况是类似的。

所以可以认为${{\theta }_{P}}(x)$是对原理优化问题中的约束条件进行了吸收,是原来的约束优化问题变为无约束优化问题(相对于原来变量$x$ 无约束了),即原来的优化问题可以写成:

$\begin{align}\underset{x}{\mathop{\min }}\,{{\theta }_{P}}(x)=\underset{x}{\mathop{\min }}\,\underset{\alpha ,\beta :{{\alpha }_{i}}\ge 0}{\mathop{\max }}\,L(x,\alpha ,\beta )\end{align}$

现在,称(1)为原问题,这和最初的有约束问题是等价的。

将(1)中min和max交换顺序得到对偶问题:

$\begin{align}\underset{\alpha ,\beta :{{\alpha }_{i}}\ge 0}{\mathop{\max }}\,{{\theta }_{D}}(\alpha ,\beta )=\underset{\alpha ,\beta :{{\alpha }_{i}}\ge 0}{\mathop{\max }}\,\underset{x}{\mathop{\min }}\,L(x,\alpha ,\beta )\end{align}$

其中\[{{\theta }_{D}}(\alpha ,\beta )=\underset{x}{\mathop{\min }}\,L(x,\alpha ,\beta )\]

记${{p}^{*}}$ 为原问题的最优解,对应最优解的最优变量取值为${{x}^{*}}$,则${{p}^{*}}=f({{x}^{*}})$ ;

记${{d}^{*}}$ 为对偶问题的最优解,对应最优解的最优变量取值为${{\alpha }^{*}}$、${{\beta }^{*}}$,则${{d}^{*}}={{\theta }_{D}}({{\alpha }^{*}},{{\beta }^{*}})$。

下面来说明${{d}^{*}}\le {{p}^{*}}$。

对于任意$\alpha ,\beta $($\alpha \ge 0$ ):

\[\begin{align*}{{\theta }_{D}}(\alpha ,\beta )&=\underset{x}{\mathop{\min }}\,L(x,\alpha ,\beta ) \\& \le L({{x}^{*}},\alpha ,\beta ) \\ & =f({{x}^{*}})+\sum\limits_{i}{{{\alpha }_{i}}{{g}_{i}}({{x}^{*}})}+\sum\limits_{i}{{{\beta }_{i}}{{h}_{i}}({{x}^{*}})} \\& \le f({{x}^{*}}) \\& ={{p}^{*}} \\\end{align*}\]

第一个不等号成立是显然的,这是由$\underset{x}{\mathop{\min }}\,L(x,\alpha ,\beta )$ 的定义直接得到的;第二个不等号成立是因为${{x}^{*}}$ 是一个可行解,所以约束条件${{g}_{i}}(x)\le 0$ 和${{h}_{i}}(x)=0$ 都满足,所以$\sum\limits_{i}{{{\alpha }_{i}}{{g}_{i}}({{x}^{*}})}\le 0$ 、$\sum\limits_{i}{{{\beta }_{i}}{{h}_{i}}({{x}^{*}})}=0$。

由于以上推导过程中$\alpha $、$\beta $的任意性,所以${{d}^{*}}={{\theta }_{D}}({{\alpha }^{*}},{{\beta }^{*}})\le {{p}^{*}}$ ,所以求解对偶问题是在最大化原问题最优解的下界。

通常,对偶问题相对于原问题有比较好的形式(有看到“无论原问题形式如何,对偶问题都是一个凸优化问题”的说法,但没见过证明。),这样,当原问题不好求解时,可以转而求解对偶问题。问题是一般情况下有${{d}^{*}}\le {{p}^{*}}$,所以求解对偶问题只能得到原问题解的下界,不能保证${{d}^{*}}={{p}^{*}}$。

当原问题满足一些条件时,可以保证${{d}^{*}}={{p}^{*}}$。

Slater条件存在$x$ ,使得不等式约束${{g}_{i}}(x)\le 0$严格成立,即${{g}_{i}}(x)=0$

当原问题为一凸优化问题,且满足Slater条件时,有${{d}^{*}}={{p}^{*}}$,这样就原问题和对偶问题的解一致,求解对偶问题即可。显然,Slater是凸优化问题与其对偶问题等价的一个充分条件。

KKT条件是原问题与对偶问题等价的必要条件。考虑一般优化问题(不一定是凸优化),如果有${{d}^{*}}={{p}^{*}}$,则:

\[\begin{align*}{{d}^{*}}&={{\theta }_{D}}({{\alpha }^{*}},{{\beta }^{*}}) \\& =\underset{x}{\mathop{\min }}\,L(x,{{\alpha }^{*}},{{\beta }^{*}}) \\& \le L({{x}^{*}},{{\alpha }^{*}},{{\beta }^{*}}) \\& =f({{x}^{*}})+\sum\limits_{i}{{{\alpha }_{i}}^{*}{{g}_{i}}({{x}^{*}})}+\sum\limits_{i}{{{\beta }_{i}}^{*}{{h}_{i}}({{x}^{*}})} \\& \le f({{x}^{*}}) \\& ={{p}^{*}} \\\end{align*}\]

由于${{d}^{*}}={{p}^{*}}$,所以上面推导过程中所以的不等号“$\le $ ”应该取到等号。第一个等号得到$\underset{x}{\mathop{\min }}\,L(x,{{\alpha }^{*}},{{\beta }^{*}})=L({{x}^{*}},{{\alpha }^{*}},{{\beta }^{*}})$,这说明${{x}^{*}}$ 是$L(x,{{\alpha }^{*}},{{\beta }^{*}})$的一个极值点,所以$L(x,{{\alpha }^{*}},{{\beta }^{*}})$在${{x}^{*}}$ 处的偏导为零,$\frac{\partial L(x,{{\alpha }^{*}},{{\beta }^{*}})}{\partial x}{{|}_{{{x}^{*}}}}=0$ ;第二个等号得到$f({{x}^{*}})+\sum\limits_{i}{{{\alpha }_{i}}^{*}{{g}_{i}}({{x}^{*}})}+\sum\limits_{i}{{{\beta }_{i}}^{*}{{h}_{i}}({{x}^{*}})}=f({{x}^{*}})$,所以$\sum\limits_{i}{{{\beta }_{i}}^{*}{{h}_{i}}({{x}^{*}})}=0$、$\sum\limits_{i}{{{\alpha }_{i}}^{*}{{g}_{i}}({{x}^{*}})}=0$。$\sum\limits_{i}{{{\beta }_{i}}^{*}{{h}_{i}}({{x}^{*}})}=0$是显然的,因为根据约束条件本来就有${{h}_{i}}({{x}^{*}})=0$,重点是原本的$\sum\limits_{i}{{{\alpha }_{i}}^{*}{{g}_{i}}({{x}^{*}})}\le 0$现在取到了等号。

综合以上两点,在加上原来的约束,可以得到KKT条件:

\[\left\{ \begin{matrix}\frac{\partial L(x,{{\alpha }^{*}},{{\beta }^{*}})}{\partial x}{{|}_{{{x}^{*}}}}=0  \\\sum\limits_{i}{{{\alpha }_{i}}^{*}{{g}_{i}}({{x}^{*}})}=0  \\{{\alpha }_{i}}^{*}\ge 0  \\\begin{matrix}{{g}_{i}}({{x}^{*}})\le 0  \\{{h}_{i}}({{x}^{*}})=0  \\\end{matrix}  \\\end{matrix} \right.\]

KKT条件是${{d}^{*}}={{p}^{*}}$的必要条件,给出了当原问题和对偶问题等价时对应最优值点所满足的性质。

尽管KKT条件是${{d}^{*}}={{p}^{*}}$的必要条件,但当原问题是凸优化问题时,它就升级为充要条件,也就是只要找到${{x}^{*}},{{\alpha }^{*}},{{\beta }^{*}}$ 满足以上五个条件,那么原问题就和对偶问题就有相同的解,分别在${{x}^{*}}$和$({{\alpha }^{*}},{{\beta }^{*}})$处取得。

另外,根据KKT条件中的$\sum\limits_{i}{{{\alpha }_{i}}^{*}{{g}_{i}}({{x}^{*}})}=0$可以得到,${{g}_{i}}({{x}^{*}})<0\Rightarrow {{\alpha }_{i}}^{*}=0$,反过来说,只有${{g}_{i}}({{x}^{*}})=0$,${{\alpha }_{i}}^{*}$才有可能不为0,这是SVM中用到的一个重要性质。

写在SVM之前——凸优化与对偶问题的更多相关文章

  1. 拉格朗日乘子法与KKT条件 && SVM中为什么要用对偶问题

    参考链接: 拉格朗日乘子法和KKT条件 SVM为什么要从原始问题变为对偶问题来求解 为什么要用对偶问题 写在SVM之前——凸优化与对偶问题 1. 拉格朗日乘子法与KKT条件 2. SVM 为什么要从原 ...

  2. 支持向量机(SVM)必备概念(凸集和凸函数,凸优化问题,软间隔,核函数,拉格朗日乘子法,对偶问题,slater条件、KKT条件)

    SVM目前被认为是最好的现成的分类器,SVM整个原理的推导过程也很是复杂啊,其中涉及到很多概念,如:凸集和凸函数,凸优化问题,软间隔,核函数,拉格朗日乘子法,对偶问题,slater条件.KKT条件还有 ...

  3. (邹博ML)凸优化

    目录 凸集的基本概念 凸函数的基本概念 凸优化的一般提法 凸集基本概念 思考两个不能式 两个正数的算术平均数大于等于几何平均数 给定可逆对称阵Q,对于任意向量x,y,有: 思考凸集和凸函数 在机器学习 ...

  4. paper 110:凸优化和非凸优化

    数学中最优化问题的一般表述是求取,使,其中是n维向量,是的可行域,是上的实值函数.凸优化问题是指是闭合的凸集且是上的凸函数的最优化问题,这两个条件任一不满足则该问题即为非凸的最优化问题. 其中,是 凸 ...

  5. murongxixi的凸优化笔记

    http://www.cnblogs.com/murongxixi/p/3598645.html 在前两节里已经涉及到集合的相对内部与闭包的概念,这一节我们深入研究它们的性质和计算,之后介绍凸函数的连 ...

  6. 【BZOJ2654】Tree(凸优化,最小生成树)

    [BZOJ2654]Tree(凸优化,最小生成树) 题面 BZOJ 洛谷 题解 这道题目是之前\(Apio\)的时候写的,忽然发现自己忘记发博客了... 这个万一就是一个凸优化, 给所有白边二分一个额 ...

  7. 【CF739E】Gosha is hunting(动态规划,凸优化)

    [CF739E]Gosha is hunting(动态规划,凸优化) 题面 洛谷 CF 题解 一个\(O(n^3)\)的\(dp\)很容易写出来. 我们设\(f[i][a][b]\)表示前\(i\)个 ...

  8. 凸优化(Convex Optimization)浅析

    本博客已经迁往http://www.kemaswill.com/, 博客园这边也会继续更新, 欢迎关注~ 在机器学习中, 很多情况下我们都需要求得一个 问题的全局最优值(global optimum) ...

  9. 「学习笔记」wqs二分/dp凸优化

    [学习笔记]wqs二分/DP凸优化 从一个经典问题谈起: 有一个长度为 \(n\) 的序列 \(a\),要求找出恰好 \(k\) 个不相交的连续子序列,使得这 \(k\) 个序列的和最大 \(1 \l ...

随机推荐

  1. STM32(6)——USART串口的使用

    1. 串口的基本概念 在STM32的参考手册中,串口被描述成通用同步异步收发器(USART),它提供了一种灵活的方法与使用工业标准NRZ异步串行数据格式的外部设备之间进行全双工数据交换.USART利用 ...

  2. Android接口与架构(驱动开发)翻译官方文档

    Android接口与架构 Android在设备的规格与驱动方面给了你很大的自由来实现.HAL层提供了一个标准的方式来打通Android系统层与硬件层.Android系统是开源的,所以你能够在接口和性能 ...

  3. 20155212 ch03 课下作业

    T4 题目 通过输入gcc -S -o main.s main.c 将下面c程序"week0603学号.c"编译成汇编代码 int g(int x){ return x+3; } ...

  4. 20155320《Java程序设计》实验一(Java开发环境的熟悉)实验报告

    20155320<Java程序设计>实验一(Java开发环境的熟悉)实验报告 实验内容及步骤 (一)命令行下Java程序开发 步骤一:首先在cmd中输入d:和cd ljq20155320进 ...

  5. 20155323 2016-2017-2 《Java程序设计》第2周学习总结

    20155323 2016-2017-2 <Java程序设计>第2周学习总结 教材学习内容总结 对象:对象是类的一个实例,有状态和行为. 类:类是一个模板,它描述一类对象的行为和状态. 第 ...

  6. 2016-2017-2 20155325实验二《Java面向对象程序设计》实验报告

    实验二 面向对象程序设计-1 答案截图 码云代码链接 链接1 实验遇到的问题和解决过程 问题1:在plugins里搜索不到JUnitGenerator V2.0只能搜到Generste Teats 问 ...

  7. spring boot启动报内存溢出的问题

    问题: springBoot项目,已经两次了,启动报内存溢出,内存泄露 分析: 内存泄露是因为垃圾回收器想要回收程序不用的对象,但是该对象还有引用存在 解决: 1.第一次是mybatis文件和Java ...

  8. 【BZOJ2589】[SPOJ10707]Count on a tree II

    [BZOJ2589][SPOJ10707]Count on a tree II 题面 bzoj 题解 这题如果不强制在线就是一个很\(sb\)的莫队了,但是它强制在线啊\(qaq\) 所以我们就用到了 ...

  9. 1130: [POI2008]POD Subdivision of Kingdom

    1130: [POI2008]POD Subdivision of Kingdom https://lydsy.com/JudgeOnline/problem.php?id=1130 分析: 有效状态 ...

  10. [flex 布局]——flex教程

    简介:2009年,W3C提出了一种新的方案----Flex布局,可以简便.完整.响应式地实现各种页面布局.目前,它已经得到了所有浏览器的支持,这意味着,现在就能很安全地使用这项功能. Flex布局是什 ...