问题简述
对偶,是解决最优化问题的一种常用的手段。它能够将一个最优化问题转化成另一个更容易求解的对偶问题。对偶研究中常用的方法是拉格朗日对偶。拉格朗日对偶有以下几个良好的特点:
- 无论原问题是否为凸问题,对偶问题都是凸优化问题
- 对偶问题至少给出了原问题最优解的下界
- 在满足一定条件的时候,对偶问题与原问题的解完全等价
- 对偶问题通常更容易求解
基于这样的特点,拉格朗日对偶经常被用来求解最优化问题,而机器学习的背后都是优化问题。所以,拉格朗日对偶非常适合来求解机器学习问题。应用拉格朗日对偶方法的一个典型例子就是支持向量机算法(SVM)。SVM训练时,求解的原问题是一个凸优化问题,经过拉格朗日对偶变换后,可以将目标函数转化为凸函数。
凸优化
拉格朗日对偶的目标就是将带约束的优化问题转化为不带约束或约束较简单的凸优化问题。所以,了解什么是凸优化是理解拉格朗日对偶的前提。
我们知道,求解一般函数的全局最优值是十分困难的,在机器学习实践中也是如此,算法经常被困在局部最优点动弹不得,无法收敛到全局最优。但是,如果对原问题加以限定,那么问题就会迎刃而解。对于凸优化来说即为:
- 目标函数是凸函数
- 优化变量的可行域是一个凸集
我们先来探讨凸集的概念。
凸集
对于 n n n维空间中的点集 C C C来说,如果对集合中的任意两点 x x x和 y y y,以及实数 0 ≤ θ ≤ 1 0\leq\theta\leq1 0≤θ≤1,都有:
θ + ( 1 + θ ) y ∈ C \theta +(1+\theta)y \in C θ+(1+θ)y∈C
则成该集合为凸集。这个定义看似复杂,直观上很好理解:将集合中的任意两个点连接起来,其直线上的点都在这个集合中。如果将这个点集画出来,那么就会得到一个全凸的几何图形。
相应的,
θ + ( 1 + θ ) y \theta +(1+\theta)y θ+(1+θ)y
称为 x x x和 y y y的凸组合。
有了凸集的概念,我们就可以知道以下约束的集合空间是凸集。
- 仿射子空间。这个空间其实是由所有的等式约束构成的,也就是:
{ x ∈ R : A x = b } \{x\in R:Ax = b\} { x∈R:Ax=b}
- 多面体。这个空间是由所有的不等式约束组成的。
{ x ∈ R : A x ≤ b } \{x\in R:Ax \leq b\} { x∈R:Ax≤b}
书上给出了证明两个空间为凸集的证明过程,这里不再赘述。
关于凸集,有这样一个性质:多个凸集的交集仍然是凸集。这也证明了,由多个等式或不等式的约束组合成的约束空间仍然是一个凸集。
凸函数
假设一个函数 f ( x ) f(x) f(x),对于任意的实数,都满足如下条件:
f ( θ x + ( 1 − θ ) y ) ≤ θ f ( x ) + ( 1 − θ ) f ( y ) f(\theta x +(1-\theta)y)\leq\theta f(x)+(1-\theta)f(y) f(θx+(1−θ)y)≤θf(x)+(1−θ)f(y)
则该函数是凸函数。这个定义的几何意义是:函数上的任意两点构成的线段,始终处于函数图像的上方。从几何直观角度来说,就是函数图像是向下凸的。
和凸集类似的,凸函数的非负线性组合是凸函数。
凸优化
如果一个最优化问题的可行域是凸集,并且目标函数是凸函数,那么该问题是凸优化问题。如下述函数就是一个凸优化问题:
m i n i m i z e f ( x ) s u b j e c t t o . g i ( x ) ≤ 0 , i = 1 , 2 , . . . , m h i ( x ) = 0 , i = 1 , 2 , . . . , p \begin{aligned} &minimize\quad f(x)\\ subject\ to.\quad &g_i(x) \leq 0,i = 1,2,...,m\\ &h_i(x) = 0,i = 1,2,...,p\\ \end{aligned} subject to.minimizef(x)gi(x)≤0,i=1,2,...,mhi(x)=0,i=1,2,...,p
凸优化问题有一个重要的特征:所求得的局部最优解一定是全局最优解。这极大地简化了问题的求解,同时也解决了梯度下降法困在局部最优点的问题。
然而,我们面对的机器学习问题很多情况下不是凸问题,这就要求我们寻找一种方法,将非凸问题转化为凸问题进而求解。拉格朗日对偶就是这样的方法。
拉格朗日对偶法
我们研究如下的优化问题:
m i n i m i z e f ( x ) s . t . g i ( x ) ≤ 0 , i = 1 , 2 , . . . , m h i ( x ) = 0 , i = 1 , 2 , . . . , p \begin{aligned} &minimize\quad f(x)\\ s.t.\quad &g_i(x) \leq 0,i = 1,2,...,m\\ &h_i(x) = 0,i = 1,2,...,p\\ \end{aligned} s.t.minimiz