目录html
更新、更全的《机器学习》的更新网站,更有python、go、数据结构与算法、爬虫、人工智能教学等着你:http://www.javashuo.com/article/p-vozphyqp-cm.htmlpython
在约束最优化问题中,拉格朗日对偶性(Lagrange duality)能够将原始问题转换为对偶问题,而后经过求解对偶问题的解获得原始问题的解。算法
假设\(f(x),c_i(x),h_j(x)\)是定义在\(R^n\)上的连续可微函数,则约束最优化问题的原始问题为
\[ \begin{align} & \underbrace{min}_{x\in{R^n}}f(x) \\ & s.t. \, c_i(x)\leq0,\quad{i=1,2,\cdots,k} \\ & h_j(x)=0,\quad{j=1,2,\cdots,l} \end{align} \]
若是不考虑约束条件,约束问题就是
\[ \underbrace{min}_{x\in{R^n}}f(x) \]
由于已经假设\(f(x),c_i(x),h_j(x)\)连续可微,直接对\(f(x)\)求导取0,便可求出最优解,可是这里有约束条件,所以得想办法去掉约束条件,而拉格朗日函数正是干这个的。数据结构
为了解决上述原始问题,引入广义拉格朗日函数(generalized Lagrange function)
\[ L(x,\alpha,\beta)=f(x)+\sum_{i=1}^k\alpha_ic_i(x)+\sum_{j=1}^l\beta_jh_j(x) \]
其中\(x=(x^{(1)},x^{(2)},\cdots,x^{(n)})^T\in{R^n}\),\(\alpha_i\geq0,\beta_j\)是拉格朗日乘子。机器学习
若是把\(L(x,\alpha,\beta)\)看做是关于\(\alpha_i,\beta_j\)的函数,求其最大值,即
\[ \underbrace{max}_{\alpha,\beta}L(x,\alpha,\beta) \]
因为\(\alpha_i,\beta_j\)做为拉格朗日乘子已经可知,所以能够把\(L(x,\alpha,\beta)\)看做是关于\(x\)的函数
\[ \theta_P(x)=\underbrace{max}_{\alpha,\beta}L(x,\alpha,\beta) \]
其中下标\(P\)表示原始问题。函数
假设给定某个\(x\)。学习
经过对约束条件的考虑便可得
\[ \theta_P{(x)} = \begin{cases} f(x), & \text{$x$知足约束条件} \\ +\infty, & \text{其余} \end{cases} \]
因此若是考虑极小化问题
\[ \underbrace{min}_x\theta_P{(x)}_{x} = \underbrace{min}_{x}\,\underbrace{max}_{\alpha,\beta}L(x,\alpha,\beta) = \underbrace{min}_{x}f(x) \]
它与原始问题是等价的,其中\(\underbrace{min}_{x}\,\underbrace{max}_{\alpha,\beta}L(x,\alpha,\beta)\)被称做广义拉格朗日函数的极小极大问题。优化
经过广义拉格朗日函数的极小极大问题,能够定义原始问题的最优值
\[ p^*=\underbrace{min}_x\theta_P(x) \]
这一节主要经过使用拉格朗日函数把原始约束问题转化为无约束问题,即将约束问题无约束化。网站
定义一个关于\(\alpha,\beta\)的函数
\[ \theta_D(\alpha,\beta)=\underbrace{min}_xL(x,\alpha,\beta) \]
其中等式右边是关于\(x\)的函数的最小化,即肯定了\(x\)的值,最小值只与\(\alpha,\beta\)有关。
若是极大化\(\theta_D(\alpha,\beta)\),即
\[ \underbrace{max}_{\alpha,\beta}\theta_D(\alpha,\beta)=\underbrace{max}_{\alpha,\beta}\underbrace{min}_{x}L(x,\alpha,\beta) \]
上述就是原始问题的对偶问题,其中\(\underbrace{max}_{\alpha,\beta}\underbrace{min}_{x}L(x,\alpha,\beta)\)也称为广义拉格朗日函数的极大极小问题。人工智能
该对偶问题的原始问题为
\[ \underbrace{min}_x\theta_P{(x)}_{x} = \underbrace{min}_{x}\,\underbrace{max}_{\alpha,\beta}L(x,\alpha,\beta) \]
原始问题是先固定\(L(x,\alpha,\beta)\)中的\(x\),优化出参数\(\alpha,\beta\),再优化\(x\);对偶问题是先固定\(\alpha,\beta\),优化出\(x\),而后再肯定\(\alpha,\beta\)。
对偶问题的最优值为
\[ d^*=\underbrace{max}_{\alpha,\beta}\theta_D(\alpha,\beta) \]
若是原始问题和对偶问题都有最优解,则
\[ d^* = \underbrace{max}_{\alpha,\beta}\underbrace{min}_xL(x,\alpha,\beta)\leq\underbrace{min}_x\underbrace{max}_{\alpha,\beta}L(x,\alpha,\beta)=p^* \]
由于对任意的\(\alpha,\beta,x\),都有
\[ \theta_D(\alpha,\beta)=\underbrace{min}_xL(x,\alpha,\beta)\leq{L(x,\alpha,\beta)}\leq\underbrace{max}_{\alpha,\beta}L(x,\alpha,\beta)=\theta_P(x) \]
即
\[ theta_D(\alpha,\beta)\leq\theta_P(x) \]
因为原始问题和对偶问题都有最优值,因此
\[ \underbrace{max}_{\alpha,\beta}\theta_D(\alpha,\beta)\leq\underbrace{min}_x\theta_P(x) \]
即
\[ d^*=\underbrace{max}_{\alpha,\beta}\underbrace{min}_xL(x,\alpha,\beta)\leq\underbrace{min}_x\underbrace{max}_{\alpha,\beta}L(x,\alpha,\beta)=p^* \]
上述说明了原始问题的最优值不小于对偶问题的最优值,可是咱们要经过对偶问题来求解原始问题,就必须得使原始问题的最优值与对偶问题的最优值相等。
经过定理1能够推出:假设\(x^*,\alpha^*,\beta^*\)分别是原始问题和对偶问题的可行解,若是\(d^*=p^*\),则\(x^*,\alpha^*,\beta^*\)分别是原始问题和对偶问题的最优解。
当原始问题和对偶问题的最优值相等\(d^*=p^*\),若是使用对偶问题比求解原始问题简单,则能够用对偶问题求解原始问题。
对于原始问题和对偶问题,假设函数\(f(x)\)和\(c_i(x)\)是凸函数,\(h_j(x)\)是仿射函数(注:仿射函数是一阶多项式构成的函数,\(f(x)=Ax+b\),\(A\)是矩阵,\(x,b\)是向量);而且假设不等式约束\(c_i(x)\)是严格可行的,即存在\(x\),对全部的\(i\)有\(c_i(x)<0\),则存在\(x^*,\alpha^*,\beta^*\),使\(x^*\)是原始问题的解,\(\alpha^*,\beta^*\)是对偶问题的解,而且会有
\[ p^*=d^*=L(x^*,\alpha^*,\beta^*) \]
对于原始问题和对偶问题,假设函数\(f(x)\)和\(c_i(x)\)是凸函数,\(h_j(x)\)是仿射函数;而且假设不等式约束\(c_i(x)\)是严格可行的,即存在\(x\),对全部的\(i\)有\(c_i(x)<0\),则\(x^*\)是原始问题的解,\(\alpha^*,\beta^*\)是对偶问题的解的充分必要条件是\(x^*,\alpha^*,\beta^*\)知足下面的Karush-Kuhn-Tucker(KKT)条件
\[ \begin{align} & \nabla_xL(x^*,\alpha^*,\beta^*)=0 \\ & \nabla_\alpha{L(x^*,\alpha^*,\beta^*)}=0 \\ & \nabla_\beta{L(x^*,\alpha^*,\beta^*)}=0 \\ & \alpha_i^*c_i(x^*)=0,\quad{i=1,2,\cdots,k} \\ & c_i(x^*)\leq0,\quad{i=1,2,\cdots,k} \\ & \alpha_i^*\geq0,\quad{i=1,2,\cdots,k} \\ & h_j(x^*)=0,\quad{j=1,2,\cdots,l} \end{align} \]
其中\(\alpha_i^*c_i(x^*)=0,\quad{i=1,2,\cdots,k}\)是KKT的对偶互补条件,由该条件可知:若是\(\alpha_i^*>0\),则\(c_i(x^*)=0\)。