凸優化(四)凸函數分析


1. 概述

\(\quad\)之前簡單介紹了凸函數的定義,相信大家對凸函數有了簡單的認識,但是這是遠遠不夠的,這次通過一些詳細的函數講解來介紹一下部分常見凸函數的特點。

2. 凸函數的四個定義:

(1)第一個定義:如果X為在實數向量空間的凸集。並且有映射\(f:X\rightarrow R\),如果\(f\)被稱為,則有$$\forall x_1,x_2\in X,\forall t\in[0,1]: f(tx_1+(1-t)x_2)\leq tf(x_1)+(1-t)f(x_2).$$如果F被稱為嚴格凸,那么有:$$\forall x_1\ne x_2\in X,\forall t\in(0,1): f(tx_1+(1-t)x_2)\ngeq tf(x_1)+(1-t)f(x_2).$$

(2)第二個定義:有映射$$f:R^n\rightarrow R為凸\leftrightarrow dom f為凸\(,\)\forall x,y\in dom f,\forall v為任意方向,g(t)=f(x+tv)為凸$$,\(dom g=\{t|x+tv\in dom f\}\)

(3)第三個定義:若\(f\)可微,對\(\forall x,y\in dom f,f(y)\geq f(x)+\nabla^Tf(y-x)\)

(4)第四個定義二階條件,若\(f:R^n\rightarrow R\)二階可微,則$$f為凸\(\leftrightarrow dom f為凸,\nabla^2f(x)\geq0,\forall x\in dom f\)$(這里的大於等於號是表示特征值大於等0,表示矩陣半正定) 。

這四個定義在不同地方均有用處,但在判斷函數是否為凸函數時最常用的是第四個。其中\(\nabla^2f(x)\)Hessian矩陣,表示函數的二階偏導矩陣。

3. 常見凸函數:

(1)仿射函數:\(f(x)=Ax+b\),顯然,其二階導函數為\(\nabla^2f(x)=0\),所以仿射函數為凸函數

(2)指數函數:\(f(x)=e^{ax},x\in R\),顯然\(f^{'}(x)=ae^{ax},f^{''}(x)=a^2e^{ax}\geq0\),所以指數函數是凸函數

(3)冪函數:\(f(x)=x^a,x\in R_{++}\),接着求導啊求導~,\(f^{'}(x)=ax^{a-1}\),$$f^{''}(x)\begin{cases} \geq 0,a\geq1 或a\leq0 (凸函數)\ \leq 0,0\leq a\leq1 (凹函數)\end{cases}$$,顯然啦,當\(a=1、0\)時,冪函數就成為了仿射函數,所以即凸又凹。

(4)負熵函數:\(f(x)=xln{x},x\in R_{++}\),還是求導,\(f^{'}(x)=lnx+1,f^{''}(x)=\frac{1}{x}\nleq0\),嗯,還是個嚴格凸函數。(也是個非常重要的函數!!)

(5)極大值函數(重中之重):現在來一個比較復雜卻非常常見的函數:$$f(x) = max{x_1,x_2,...,x_n}$$這個函數顯然是不可導的,那么首先根據定義一來看一下是否為凸函數。取兩值\(x,y\in dom f\),構造凸組合的新值\(\theta x+(1-\theta)y,f(\theta x+(1-\theta)y)=max\{\theta x_i+(1-\theta)y_i\}\leq \theta max\{x_i,i=0,1..n\}+(1-\theta)max\{y_i,i=0,1..n\}=\theta f(x)+(1-\theta)f(y)\),發現滿足凸函數定義,所以極大值函數時凸函數。但是啊,由於其無法求導,后續處理會出現各種問題。所以,這里有一個解析逼近,就是用一個解析函數去逼近極大值函數。這個函數是這樣的\(log-sum-exp:\):$$f(x)=log(e^{x_1}+...+e^{x_n}),x\in R^n,且有性質max{x_i}\leq f(x)\leq max{x_i}+ln(n)$$ \(\quad\) 那么來證明一下這個函數也是凸函數吧!這里就要用到凸函數的第四個定義了,輪到Hessian矩陣出場了。對上述函數求二次偏導得到如下關系(公式打得累死):
\(\frac{\partial^2f}{\partial{x_i}\partial{y_i}}=\frac{-e^{x_i}e^{x_j}}{(e^{x_1}+...e^{x_n})^2},i\neq j, \frac{\partial^2f}{\partial{x_i}\partial{y_i}}=\frac{-e^{x_i}e^{x_i}+e^{x_i}(e^{x_1}+...e^{x_n})}{(e^{x_1}+...e^{x_n})^2},i=j\tag{1}\)
這個式子看上去也很丑,那么定義列向量\(z=[e^{x_1},...,e^{x_n}]^T\),那么(1)式就變成了$$\frac{\partial^2f}{\partial{x_i}\partial{y_i}}=\frac{-e^{x_i}e^{x_j}}{(1^Tz)^2},i\neq j, \frac{\partial^2f}{\partial{x_i}\partial{y_i}}=\frac{-e^{x_i}e^{x_i}+e^{x_i}(1^Tz)} {(1^Tz)^2},i=j$$,函數的Hessian矩陣可以寫成$$H(x)=\frac{1}{(1^Tz)^2}((1^Tz)diag(z)-zz^T),另后項矩陣為K,diag(z),為向量z展開的對角矩陣$$那么大家還記得半正定矩陣如何證明么?就是\(\forall x\in R^n,x^TAx\geq0\)成立,那么A則為半正定矩陣。好,那么開始構造!!$$V^TKV=(1^Tz)V^Tdiag(z)v-V^Tzz^TV=(\sum_iz_i)\sum_i(V_i^2z_i)-(\sum_iv_iz_i)^2\tag{2}$$另\(a_i=v_i\sqrt{z_i},b_i=\sqrt{z_i}\),那么(2)式就變成了:$$(b^Tb)(a^Ta)-(a^Tb)^2\geq0\tag{3}$$此式成立,用到的性質為柯西-施瓦茨不等式,所以\(log-sum-exp\)函數為凸函數。

(6)行列式的對數:\(f(X)=\log det(X),dom f=S^n_{++}\),首先說明一下啊,當矩陣X只有一維時,那么原函數則為\(\log x\),顯然是凹函數。所以我們是在已經知道其為凹函數的前提下證明它是凹函數的了~根據凸函數的第二個定義當\(\forall z\in S^n_{++},\forall t\in R^{n \times n},z+tv\in S^n_{++}=dom f\),構造凸組合的函數\(g(t)=f(z+tv)=\log det(z+tv)=\log det(z^{\frac{1}{2}}(I+tv^{-\frac{1}{2}}vz^{-\frac{1}{2}})z^{\frac{1}{2}})\tag{4}\)繼續化簡得到為:$$\log det{z}+\log det{I+tz^{-\frac{1}{2}}vz^{-\frac{1}{2}}}=\log det{z}+\sum^n_i\log(1+t\lambda_i),其中\lambda_i\geq0\tag{5}$$接着只要分析這個式子就可以,求導即可,得到:\(g^{'}(t)=\sum_i\frac{\lambda_i}{1+t\lambda_i},g^{''}(t)=\sum_i\frac{-\lambda_i^2}{(1+t\lambda_i)^2}\leq0\tag{6}\)到這里證明就結束了,原函數為凹函數得證。

4. 總結:

\(\quad\)可見啊,分析函數凸性一般都是通過其\(Hessian\)矩陣來分析,但是對於部分凸函數的證明也不是簡單的,總體的計算過程也在越來越復雜,后面會逐步講解凸問題的理論與求解。但是在證明的過程中會發現,其理論也是一步一步建立起來的,弄懂了原理之后看問題就會舉一反三了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM