對偶函數
優化問題的形式
注意原問題不一定凸
\[\min f_0(x)\\ \begin{align*} s.t. \ &f_i(x) \le 0 \quad &i=1,2,\cdots,m\\ &h_i(x)=0 \quad &i=1,2,\cdots,p \end{align*} \]
拉格朗日函數形式
\[L(x,\lambda,\nu)=f_0(x)+\sum_{i=1}^m \lambda_i f_i(x)+\sum_{i=1}^p \nu_i h_i(x) \]
對偶函數的定義
\[g(\lambda,\nu)=\inf_{x \in D}(f_0(x)+\sum_{i=1}^m \lambda_i f_i(x)+\sum_{i=1}^p \nu_i h_i(x)) \]
根據對偶函數的定義可知,對偶函數是拉格朗日函數在把\(\lambda\)和\(\nu\)當做常量,\(x\)變化時的最小值
注意:對偶問題則是
\[\max_{\lambda,\nu}g(\lambda,\nu) \]
這里要着重說一下:對偶函數和對偶問題的區別
它們是非常不一樣的概念,問題是為了求最值,而函數就是個f
對偶函數的性質
對偶函數一定是凹函數
逐點上確界 pointwise supremum
如果對於\(\forall y \in A,f(x,y)\)關於\(x\)是凸函數,那么函數\(g(x)=\sup_{y \in A} f(x,y)\)關於\(x\)是凸函數
同理,一組凹函數逐點下確界是凹函數
數學證明可以看這個博客
大概的思路就是對偶函數中最小化之后\(x\)已經是個定值,此時對偶函數\(g(\lambda,\nu)\)是相對於變量\(\lambda,\nu\)的一簇仿射函數,仿射函數是既凹又凸的,那么就利用其凹性,一簇仿射函數的下界就是一個凹函數。
也可以從下圖直觀的看出:
對偶函數的最優解$\le$原函數最優解
\[\forall \lambda_i \succeq 0,\forall \nu \quad g(\lambda,\nu) \le P^* \]
一定要有\(\lambda_i \succeq 0\)這個條件
即對偶函數求得的函數值是原問題最優值的下界
這里再強調一遍:不等式左邊是函數,不等式右邊是問題的最優值
很好證明,因為
\[\begin{align*} &\sum_{i=1}^m \lambda_i f_i(x^*)+\sum_{i=1}^p \nu_i h_i(x^*) \le 0, \quad 其中x為原問題最優解\\ &f_0(x^*)=P^*\\ \therefore \quad &L(x^*,\lambda,\nu)=f_0(x^*)+\sum_{i=1}^m \lambda_i f_i(x^*)+\sum_{i=1}^p \nu_i h_i(x^*) \le P^*\\ \therefore \quad &g(\lambda,\nu) \le P^* \end{align*} \]
對偶問題
再看一次對偶問題
\[\begin{align*} \max_{\lambda,\nu}g(\lambda,\nu)=&\max_{\lambda,\nu}\min_{x}L(x,\lambda,\nu)\\ =&\max_{\lambda,\nu} f_0(x)+\sum_{i=1}^k \lambda f_i(x)+\sum_{i=1}^l \nu h_i(x)\\ \end{align*} \]
對偶函數是從拉格朗日函數轉換過來的,只跟\(\lambda,\nu\)相關的函數,不是一個問題(不需要得到最值什么的)
對偶問題利用對偶函數一定\(\le\)原問題最優解的性質,進而去求解對偶函數的最大值\(D^*\),將原問題通過對偶函數(凹函數)轉化為求解對偶問題(凸優化問題)
為什么費盡周折的去轉化成對偶問題呢?
因為無論原問題是否為凸優化問題,轉化成的對偶問題一定是凸優化問題
為什么要轉化成凸優化問題就不必多說了,具體可看凸優化問題的特性:局部最優解必是全局最優解
相關鏈接:拉格朗日對偶問題