拉格朗日对偶性
在约束优化问题中,常常用拉格朗日对偶性来将原始问题转为对偶问题,通过解对偶问题的解来得到原始问题的解。
1.为什么要利用对偶?
首先要明确,对偶问题的解不一定直接等于原问题的解(弱对偶),但是对偶问题有两点性质:
- 无论原始问题是否是凸的,对偶问题都是凸优化问题
- 当Lagrange对偶问题的强对偶性成立时,可以利用求解对偶问题来求解原问题;而原问题是凸优化问题时,强对偶性往往成立;弱对偶性永远成立,可以为原问题提供下界。
(1)原始问题
优化问题:
$$\begin{align*} \min_{\bf x} & \hspace{3ex} f({\bf x}) \\ {\rm s.t.} & \hspace{3ex} g_i({\bf x}) \le 0, \ {\rm for\ }i =1,2,\ldots, m \\ & \hspace{3ex} h_j({\bf x}) = 0, \ {\rm for\ }j =1,2,\ldots, n \end{align*}$$
拉格朗日函数:
$$L(x, \alpha , \beta ) = f(x) + \sum _{i=1}^q \alpha_i g_i(x) + \sum _{j=q+1}^m \beta_j h_j(x)$$
则原问题等价于:
$$\begin{align} \min_{{\bf x}} \max_{ {\boldsymbol \alpha}, {\boldsymbol \beta}} & \hspace{3ex} \mathcal{L({\bf x},{\boldsymbol \alpha}, {\boldsymbol \beta})} \\ {\rm s.t.} & \hspace{3ex} \alpha_i \ge 0 \end{align}\tag{2-1}$$
推导:
$$\begin{align} &\min_{{\bf x}} \max_{ {\boldsymbol \alpha}, {\boldsymbol \beta}} \mathcal{L({\bf x},{\boldsymbol \alpha}, {\boldsymbol \beta})} \\ = & \min_{{\bf x}} \left( f(x) + \max_{ {\boldsymbol \alpha}, {\boldsymbol \beta}} \left( \sum_{i=1}^m\alpha_ig_i({\bf x}) + \sum_{j=1}^n\beta_jh_j({\bf x})\right) \right) \\=& \min_{{\bf x}} \left( f(x) +\begin{cases} 0& \text{u满足约束条件}\\ \infty& \text{otherwise} \end{cases} \right) \end{align}$$
- 当g不满足约束条件的时候$g_i(x) \gt 0$,我们内层优化取max,因此 $\alpha_i = \infty \Rightarrow \alpha_ig_i({\bf x}) = \infty$
- 当g满足约束条件的时候$g_i(x) \le 0$,我们内层优化取max,因此 $\alpha_i =0 \Rightarrow \alpha_ig_i({\bf x}) = 0$
- 当h不满足约束条件的时候$h_j(x) \ne0$,同理可以取 $\beta_j= \rm sign(h_j({\bf x})) \infty \Rightarrow \beta_jh_j({\bf x}) = \infty$
- 当h满足约束条件的时候$h_j(x) =0$,同理可以取 $\beta_jh_j({\bf x}) =0$
为了使2-1达到优值,需要满足如下条件(KKT条件):
- 主问题可行: $g_i({\bf x}) \le 0, h_i({\bf x}) = 0$
- 对偶问题可行: $\alpha_i \ge 0$
- 互补松弛: $\alpha_i g_i({\bf x}) = 0$
主问题可行是上面推导的结果,对偶问题可行为2-1的约束项;互补松弛是主问题和对偶问题都可行的条件下的最大值。
原始问题求得的解为$g^{*}$
(2)对偶问题
$$\begin{align*} \max_{ {\boldsymbol \alpha}, {\boldsymbol \beta}}\min_{{\bf x}} & \hspace{3ex} \mathcal{L({\bf x},{\boldsymbol \alpha}, {\boldsymbol \beta})} \\ {\rm s.t.} & \hspace{3ex} \alpha_i \ge 0 \end{align*}\tag{2-2}$$
对偶问题是原问题的下界,即:
$$\max_{ {\boldsymbol \alpha}, {\boldsymbol \beta}}\min_{{\bf x}} \mathcal{L({\bf x},{\boldsymbol \alpha}, {\boldsymbol \beta})} \le \min_{{\bf x}} \max_{ {\boldsymbol \alpha}, {\boldsymbol \beta}} \mathcal{L({\bf x},{\boldsymbol \alpha}, {\boldsymbol \beta})}$$
因为下式总是成立:
$$ \min_{{\bf x}} \mathcal{L({\bf x},{\boldsymbol \alpha}, {\boldsymbol \beta})} \le\min_{{\bf x}} \max_{ {\boldsymbol \alpha}, {\boldsymbol \beta}} \mathcal{L({\bf x},{\boldsymbol \alpha}, {\boldsymbol \beta})} $$
对偶问题求得的解为$d^{*}$
对任意可能的值求极值,肯定不如直接求到的极值大。有句俗语叫“瘦死的骆驼比马大”说的就是这个道理。
- 弱对偶($d^*<=g^*$),对于所有优化问题都成立,这个时候我们可以得到原始问题的一个下界。
- 强对偶($d^*=g^*$),满足某些条件才成立,这时可以用解对偶问题替代原始问题。那么满足什么样的条件可以得到强对偶呢?(如果原问题是一个凸优化,并且不等式约束$g(x)$是严格可行的,即存在$x$对所有$i$有$g_i(x)<0$,那么强对偶成立。这里需要注意的是,这里的条件只是强对偶成立的一种情况,对于非凸的问题也有可能是强对偶。)
如果原问题是一个凸优化,并且不等式约束$g(x)$是严格可行的,即存在$x$对所有$i$有$gi(x)<0$,那么强对偶成立。这里需要注意的是,这里的条件只是强对偶成立的一种情况,对于非凸的问题也有可能是强对偶。强对偶成立时,将拉格朗日函数分别对原变量$x$和对偶变量$α$和$β$分别求导,令导数等于零(还需要满足KKT条件),即可求解对偶问题的解,也就求得了原问题的解。
强对偶成立的条件:Slater条件
Slater定理:当Slater条件成立且原问题是凸优化问题时,强对偶成立。
满足强对偶性的例子:
- 线性规划
- 最小二乘
- 最大熵问题
(3)KKT条件
当Lagrange对偶问题的强对偶性成立时,可以利用求解对偶问题来求解原问题;而原问题是凸优化问题时,强对偶性往往成立。否则,可以利用求解对偶问题求出原问题最优值的下界。
(鞍点就满足KKT,但鞍点就不是最优解))
当原问题只有等式约束而没有不等式约束时,KKT条件即为拉格朗日乘数法。
(4)KKT与凸优化的关系
KKT主要是针对带约束的可微分的优化问题,凸优化研究的对象是目标函数为凸函数,约束为凸集的优化问题。因此这两者研究的对象,有交集,也各有不同。
凸优化:
- 第一类问题为两类问题的交集即带约束的可微分凸优化问题,这类问题目前已经被很好的解决了,它同时具备两类问题的性质,凸优化和可微分性,让原来KKT从局部最优解的必要条件变为全局最优解的充要条件。
- 第二类问题是凸优化但是不可微分,这类问题也较为常见,在拉格朗日松弛算法中,对偶问题一般都是不可微分的凸优化问题,因为不可微分,传统的基于梯度的方法就不适用了,一般采用次梯度的方法,主要难点在于次梯度如何确定,由于次梯度不唯一,如何确定一个简单有效的次梯度也是一个问题。
- 第三类问题是可微分的但不是凸优化的,这类问题也很多,一般这类问题都可以采用基于梯度的算法来求解,例如对神经网络的训练多数就属于这类问题。采用梯度法仅仅能保证收敛到局部最优的必要条件而已。因此该类问题的受困于陷入鞍点和全局最优的寻找是很困难的。
非凸优化:非凸且不可微分
参考文献:
【1】『我爱机器学习』深入理解SVM(一) 原始问题和对偶问题
【2】优化问题