1、原始问题

假设$f(x)$,$c_i(x)$,$h_j(x)$是定义在$R^n$上的连续可微函数,$x \in R^n$。考虑以下三类优化问题。

1、无约束的优化问题:

\begin{align*}
\mathop{min}\limits_{x \in R^n}f(x)
\end{align*}

这个只需对函数求导,求极值点即可。

2、如果增加等式约束条件,则变为如下优化问题:

\begin{align*}
& \mathop{min}\limits_{x \in R^n}f(x) \\
& s.t. \quad h_j(x) = 0, \quad j = 1,2,3 \cdots ,l
\end{align*}

该优化问题可通过拉格朗日乘子法解决。定义拉格朗日函数:

\begin{align*}
\mathcal{L}(x_1,\cdots ,x_n,\beta_1,\cdots ,\beta_l) = f(x_1,\cdots ,x_n) - \sum_{j=1}^{l}\beta_jh_j(x_1,\cdots ,x_n)
\end{align*}

函数$\mathcal{L}$的极值点包含原问题的所有极值点。对原问题求解时,我们只需求出$\mathcal{L}$的所有极值点,带入$f(x)$一一检验即可。

3、增加不等式约束条件:

\begin{align*}
&\mathop{min}\limits_{x \in R^n}f(x) \tag{C.1} \\
s.t. \quad & c_i(x) \leq 0, \quad i=1,2, \cdots , k \tag{C.2} \\
& h_j(x) = 0, \quad j = 1,2,\cdots ,l \tag{C.3}
\end{align*}

下面将讨论对该问题的求解。并将该优化问题称为原始问题(primal problem)。

首先定义广义拉格朗日函数(generalized Lagrange function):

\begin{align*}
\mathcal{L} = f(x) + \sum_{i=1}^{k}\alpha_i c_i(x) + \sum_{j=1}^{l}\beta_i h_j(x) \tag{C.4}
\end{align*}

其中,$x \in R^n$。$\alpha_i$、$\beta_i$是拉格朗日乘子并且满足$\alpha_i \geq 0$。考虑关于$x$的函数:

\begin{align*}
\theta_P(x) = \mathop{max}\limits_{\alpha \geq 0, \beta }\mathcal{L}(x, \alpha , \beta ) \tag{C.5}
\end{align*}

注意,这是一个以$x$为自变量的函数。求解过程是:给定一个$x_0$,求函数$\mathcal{L(x_0, \alpha, \beta)}$的最大值,此时$x_0$是定值(也就是常数),$\alpha$、$\beta$是自变量。

下标P表示原始(primal)问题。

给定某个$x$,如果$x$违反约束条件,也就是存在某个$i$满足$c_i(x) > 0$,或者存在某个j满足$h_j(x)  \neq 0$,可以得到以下结论:

\begin{align*}
\theta_P(x) = [f(x) + \sum_{i=1}^{k}\alpha_i c_i(x) + \sum_{j=1}^{l}\beta_j h_j(x)] = +\infty \tag{C.6}
\end{align*}

因为若存在某个$i$满足$c_i(x) > 0$,可取$\alpha_i = +\infty$,若存在某个j满足$c_j(x)  \neq 0$,可取$\beta_j = = +\infty$。其余的$\alpha$和$\beta$均取0。如此可得$\theta_P(x) = +\infty$。

如果$x$满足约束条件,由约束条件(C.3)可知$\sum_{j=1}^{l}\beta_j h_j(x) = 0$,由约束条件(C.2)和$\alpha_i \geq 0$可知$\sum_{i=1}^{k}\alpha_i c_i(x)  \leq  0$。可以得到:

\begin{align*}
\theta_P(x)  = f(x)
\end{align*}

并且此时满足$\sum_{i=1}^{k}\alpha_i c_i(x)  =  0$。再由(C.2)和$\alpha_i \geq 0$可知,必须满足$\alpha_i = 0$或者$c_i(x) = 0$。这是SVM的很多重要性质的来源,如支持向量的概念。

综上所述,

\begin{align*}
\theta_P(x) = \left\{\begin{matrix}
f(x), \quad c_i(x) \leq 0 \quad and \quad h_j(x) = 0 \\
+\infty , \quad c_i(x) > 0 \quad or \quad h_j(x) \neq 0
\end{matrix}\right. \tag{C.7}
\end{align*}

所以原问题(C.1)~(C.3)等价于:

\begin{align*}
\mathop{min}\limits_{x}\theta_P(x) = \mathop{min}\limits_{x} \mathop{max}\limits_{\alpha \geq 0, \beta} \mathcal{L}(x,\alpha ,\beta) \tag{C.8}
\end{align*}

为了方便,定义原问题的最优值:

\begin{align*}
p^* = \mathop{min}\limits_{x}\theta_P(x) \tag{C.9}
\end{align*}

2、对偶问题

定义关于$\alpha$、$\beta$的函数

\begin{align*}
\theta_D(\alpha, \beta) = \mathop{min}\limits_{x}\mathcal{L}(x,\alpha,\beta) \tag{C.10}
\end{align*}

可以得到最优化问题:

\begin{align*}
& \mathop{max}\limits_{\alpha,\beta}\theta_D(\alpha,\beta) = \mathop{max}\limits_{\alpha,\beta}\mathop{min}\limits_{x}\mathcal{L}(x,\alpha,\beta) \tag{C.12} \\
& s.t. \quad \alpha_i \geq 0, \quad i = 1,2,\cdots k \tag{C.13}
\end{align*}

该问题成为原问题的对偶问题。原问题和对偶问题并不是等价的。

定义对偶问题的最优解为$d^*$,则有$d^* \geq p^*$(证明略)。

定理C.2 考虑原始问题(C.1)~(C.3)和对偶问题(C.12)~(C.13)。假设$f(x)和c_i(x)$是凸函数,$h_j(x)$是仿射函数;并且假设不等式约束$c_i(x)$是严格可行的,即存在$x$,对所有$i$有$c_i(x)<0$,则存在$x^*$,$\alpha^*$,$\beta^*$,使$x^*$是原始问题的解,$\alpha^*$,$\beta^*$是对偶问题的解,并且:

\begin{align*}
p^* = d^* = L(x^*,\alpha^*,\beta^*) \tag{C.20}
\end{align*}

定理C.3 对原问题的对偶问题, 假设$f(x)$和$c_i(x)$是凸函数,$h_j(x)$是仿射函数(一阶多项式,可理解为线性函数),并且不等式约束是严格可行的(即存在$x$,对所有的$i$有$c_i(x) < 0$),则原问题和对偶问题具有相同解的充要条件是最优解$x^*$,$\alpha^*$,$\beta^*$满足下面的KKT条件:

\begin{align*}
& \nabla_x \mathcal{L}(x^*,\alpha^*,\beta^*) = 0 \\
& \nabla_{\alpha} \mathcal{L}(x^*,\alpha^*,\beta^*) = 0 \\
& \nabla_{\beta} \mathcal{L}(x^*,\alpha^*,\beta^*) = 0 \\
& \alpha_i^* c_i(x^*) = 0 \\
& c_i(x^*) \leq 0 \\
& \alpha_i^* \geq 0 \\
& h_j(x^*) = 0
\end{align*}

参考文献:

李航:《统计学习方法》 附录C

wikipedia:拉格朗日乘数

支持向量机(SVM)必备知识(KKT、slater、对偶)

SVM系列第七讲--KKT条件

附录C--拉格朗日对偶性的更多相关文章

  1. 3. 支持向量机(SVM)拉格朗日对偶性(KKT)

    1. 感知机原理(Perceptron) 2. 感知机(Perceptron)基本形式和对偶形式实现 3. 支持向量机(SVM)拉格朗日对偶性(KKT) 4. 支持向量机(SVM)原理 5. 支持向量 ...

  2. 拉格朗日对偶性(Lagrange duality)

    目录 拉格朗日对偶性(Lagrange duality) 1. 从原始问题到对偶问题 2. 弱对偶与强对偶 3. KKT条件 Reference: 拉格朗日对偶性(Lagrange duality) ...

  3. A-08 拉格朗日对偶性

    目录 拉格朗日对偶性 一.原始问题 1.1 约束最优化问题 1.2 广义拉格朗日函数 1.3 约束条件的考虑 二.对偶问题 三.原始问题和对偶问题的关系 3.1 定理1 3.2 推论1 3.3 定理2 ...

  4. 简易解说拉格朗日对偶(Lagrange duality)(转载)

    引言:尝试用最简单易懂的描述解释清楚机器学习中会用到的拉格朗日对偶性知识,非科班出身,如有数学专业博友,望多提意见! 1.原始问题 假设是定义在上的连续可微函数(为什么要求连续可微呢,后面再说,这里不 ...

  5. 简易解说拉格朗日对偶(Lagrange duality)

    引言:尝试用最简单易懂的描述解释清楚机器学习中会用到的拉格朗日对偶性知识,非科班出身,如有数学专业博友,望多提意见! 1.原始问题 假设是定义在上的连续可微函数(为什么要求连续可微呢,后面再说,这里不 ...

  6. 支持向量机 (一): 线性可分类 svm

    支持向量机(support vector machine, 以下简称 svm)是机器学习里的重要方法,特别适用于中小型样本.非线性.高维的分类和回归问题.本系列力图展现 svm 的核心思想和完整推导过 ...

  7. svm 之 线性可分支持向量机

    定义:给定线性可分训练数据集,通过间隔最大化或等价的求解凸二次规划问题学习获得分离超平面和分类决策函数,称为线性可分支持向量机. 目录: • 函数间隔 • 几何间隔 • 间隔最大化 • 对偶算法 1. ...

  8. 【十大经典数据挖掘算法】SVM

    [十大经典数据挖掘算法]系列 C4.5 K-Means SVM Apriori EM PageRank AdaBoost kNN Naïve Bayes CART SVM(Support Vector ...

  9. [Machine Learning & Algorithm]CAML机器学习系列2:深入浅出ML之Entropy-Based家族

    声明:本博客整理自博友@zhouyong计算广告与机器学习-技术共享平台,尊重原创,欢迎感兴趣的博友查看原文. 写在前面 记得在<Pattern Recognition And Machine ...

  10. 机器学习笔记—svm算法(上)

    本文申明:本文原创,如转载请注明原文出处. 引言:上一篇我们讲到了logistic回归,今天我们来说一说与其很相似的svm算法,当然问题的讨论还是在线性可分的基础下讨论的. 很多人说svm是目前最好的 ...

随机推荐

  1. Learning ROS forRobotics Programming Second Edition学习笔记(八)indigo rviz gazebo

    中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 Learning ROS forRobotics Pro ...

  2. WinCE上BINFS实现详解

    网上不少介绍三星24x0系列的BINFS启动方式实现,有些内容上描述的不是非常全面 下面就WinCE6上的BINFS实现,从基本原理到修改BSP,再到如何烧录启动做一个较全面的讲解 一 BINFS到底 ...

  3. sieve的objective-c实现

    用obj-cl来实现前面的sieve代码貌似"丑"了不少,应该有更好的方式:比如不用Foundation或不用NSArray类,而改用其它更"底层"的类. 先把 ...

  4. LeetCode之旅(16)-Climbing Stairs

    题目描述: You are climbing a stair case. It takes n steps to reach to the top. Each time you can either ...

  5. python 3下基于select模型的事件驱动机制程序

    它的基本原理就是select/epoll这个function会不断的轮询所负责的所有socket,当某个socket有数据到达了,就通知用户进程.它的流程如图: 当用户进程调用了select,那么整个 ...

  6. http 状态表

    整理一下xmlHttp.status的值(http 状态表)   状态码 状态码 意义 释义 100 1xx (临时响应)表示临时响应并需要请求者继续执行操作的状态代码.  继续 客户端应当继续发送请 ...

  7. Python_linux环境变量和软链接(个人理解)

    --------------------------------------- 最近在服务器上想运行个脚本,装了个python3.6,但是他还自带了个2.7版本,后来发现上面还有3.5版本的pytho ...

  8. DIV与SPAN之间有什么区别

    DIV与SPAN之间有什么区别 DIV 和 SPAN 元素最大的特点是默认都没有对元素内的对象进行任何格式化渲染.主要用于应用样式表(共同点). 两者最明显的区别在于DIV是块元素,而SPAN是行内元 ...

  9. 有关Java 锁原理

    锁 锁是用来锁东西的,让别人打不开也看不到!在线程中,用这个“锁”隐喻来说明一个线程在“操作”一个目标(如一个变量)的时候,如果变量是被锁住的,那么其他线程就对这个目标既“操作”不了(挂起)也无法看到 ...

  10. Java实现发送邮件(可配置)忘记密码,发送邮件

    学过Java基础的应该知道Java里有邮件这一块,不熟悉的话可以简单复习一下 本文章把发送邮件做为可配置可配置文件,这样方便以后维护 一.Maven依赖包 (发送邮件所依赖的jar包) <!-- ...