02-凸函數


02-凸函數

凸優化從入門到放棄完整教程地址:https://www.cnblogs.com/nickchen121/p/14900036.html

一、基本性質和例子

[凸函數] 一個函數 \(f: R^n\rightarrow R\) 是凸的,如果定義域 \(dom\,f\) 是凸集,並且對於所有 \(x,y\in f, \theta\leq 1\) ,我們有 \(f(\theta x+(1-\theta)y)\leq \theta f(x)+(1-\theta)f(y).\)

注:如果不能理解,從二維角度去理解

幾何解釋:點 \((x,f(x))\)\((y,f(y))\) 之間的線段在 \(f\) 對應的圖像上方。

img

  • 函數 \(f\)嚴格凸的,如果以上不等式在 \(x\ne y\) ,且 \(0<\theta <1\) 時也成立.
  • 函數 \(f\)的,當 \(-f\) 是凸的,嚴格凹,當 \(-f\) 是嚴格凸的。
  • 仿射函數既是凸的也是凹的,反過來,既凹又凸的函數是仿射的。
  • 一個函數是凸的當且僅當對任意 \(x\in dom\,f\) 和任意 \(v\) ,函數 \(g(t)=f(x+tv)\) 是凸的, \(\{t|x+tv\in dom\,f\}.\)注:其實只是修改了自變量的表示,又由於自變量的集合是凸集,線性表示后仍然是凸集

[擴展值] 將凸函數擴展到整個 \(R^n\) ,通常令它在定義域之外取 \(\infty\) 。如果 \(f\) 是凸函數那么它的拓展為 \(\widetilde{f} : R^n\rightarrow R \cup \{\infty\}\) ,

\(\widetilde{f}(x)=\left \{\begin{aligned} f(x)\;\; x\in domf\\ \infty\;\; x\not\in domf \end{aligned}\right.\)

[一階條件] 令函數 \(f\) 是可微的(也就是它的梯度 \(\nabla f\) 在開集 \(domf\) 的每個點上都存在)。那么 \(f\) 是凸的,當且僅當 \(domf\) 是凸的,並且對所有的 \(x,y\in domf\) 有:

\(f(y)\geq f(x)+\nabla f(x)^T(y-x).\)

注:其實同樣可以從二維角度的考慮,無非就是 \(dy\),也就是函數圖像永遠在某一點的切上上,同時 \(f(x)+\nabla f(x)^T(y-x)\) 相當於 \(f\)\(x\) 的一階泰勒近似,如果你對泰勒展開公式熟悉,更好理解,因為泰勒展開是無窮階的,只不過此處做了省略

在每個點上,函數圖像都高於在該點的切線。

img

解釋:\(y\) 的仿射函數 \(f(x)+\nabla f(x)^T(y-x)\)\(f\) 在靠近 \(x\) 處的一階泰勒近似。上述不等式表達了這個一階泰勒近似是函數的全局下限(global underestimator),反過來,如果函數的一階泰勒近似總是函數的全局下限,那么這個函數是凸的。

  • 如果 \(\nabla f(x)=0\) ,那么對於所有 \(y\in domf\) ,有 \(f(y)\geq f(x)\) , 也就是在 \(x\)\(f\) 取到全局最小值\(x\) is a global minimizer of \(f\) )。
  • \(f\)嚴格凸的,當且僅當 \(domf\) 是凸的,且對於所有 \(x,y\in domf, x\ne y\)\(f(y)>f(x)+\nabla f(x)^T(y-x).\)
  • \(f\)的,當且僅當 \(domf\) 是凸的,並且 \(f(y)\leq f(x)+\nabla f(x)^T(y-x),\)\(\forall x,y\in domf.\)

[二階條件] 設函數 \(f\) 是二階可微的,也就是它在開集 \(domf\) 的每個點上都存在二階導數 \(\nabla^2 f\) 。那么 \(f\) 是凸的,當且僅當它的二階導數是半正定的:

注:同樣在二維角度理解,二階導大於 0,則一階導單調遞增,則在一階導為 0 的左邊是小於 0 的,右邊大於 0 的,也就是說原函數在一階導為 0 的左邊是單調遞減的,在右邊是單調遞增的,凸

\(\forall x\in domf\) , \(\nabla^2f(x)\succeq 0\) .

幾何解釋:函數圖像在每個定義域的每個點上都有正的曲率(curvature)。

  • 函數 \(f\)的,當且僅當 \(domf\) 是凸的,並且 \(\nabla^2f(x)\preceq 0\) , \(\forall x\in domf\)
  • 如果 \(\forall x\in domf\) , \(\nabla^2f(x)\succ 0\) ,那么 \(f\)嚴格凸的。反過來不成立,例如 \(f(x)=x^4\) 是嚴格凸的,但是在 \(x=0\) 處二階導數為 \(0\) .

[例]

注:以下判斷,簡單的函數可以畫圖確定,復雜的可以通過求二階導確定

\(R\) 上:

  • \(e^{ax} , \forall a\in R\) , 在 \(R\) 上凸。
  • \(x^a,\)\(a\geq 1\)\(a\leq 0\) ,在 \(R_{++}\) 上凸,當 \(0\leq a\leq 1\) 時凹。
  • \(|x|^p\) , \(p\geq 1\) ,在R上凸。
  • \(log\;x\) ,在 \(R_{++}\) 上凸 。
  • 負熵 \(x log \; x\) ,在 \(R_+\)\(R_{++}\) 上凸。

\(R^n\) 上:

  • 范數,凸
  • 最大值函數,凸
  • Quadratic-over-linear 函數: \(f(x,y)=x^2/y\) , \(domf=R\times R_{++}=\{(x,y)\in R^n| y>0\}\) ,凸。
  • \(f(x)=log(e^{x_1}+...+e^{x_n})\) ,凸
  • 幾何平均 \(f(x)=(\prod^n_{i=1}x_i)^{1/n}\) ,在 \(R^n_{++}\) 上凹。
  • \(f(X)=log\; detX\) ,在 \(S^n_{++}\) 上凹。

[下水平集 sublevel set] 函數 \(f:R^n\rightarrow R\) 的一個 \(\alpha\) -下水平集是

注:下水平集其實就是對函數做了一個水平切割,或者說對定義域做了切割

\(C_{\alpha}=\{x\in domf | f(x)\leq \alpha\}\) .

  • 凸函數的下水平集是凸集,對於所有的 \(\alpha\) 。反過來不對,例如 \(f(x)=-e^x\)\(R\) 上不是凸的,但是它的所有下水平集都是凸集。
  • 凹函數的下水平集是凸集。

[上境圖 epigraph] 一個函數 \(f:R^n\rightarrow R\) 的圖像是 \(\{(x,f(x))|x\in dom f\}\) . 它是 \(R^{n+1}\) 的子集。定義函數 \(f\)

上境圖: \(epi\; f = \{(x,t)| x\in dom f , f(x)\leq t\}\) .

下境圖\(hypo\;f = \{(x,t)| t\leq f(x)\}\) .

注:上、下境圖,其實就是對函數做了一個水平切割。有可能說凸函數的下境圖是一個凸集,但是這種說法沒有意義,因為上、下境圖的水平切割是沒有固定值的

  • 函數是的當且僅當它的上境圖是一個凸集
  • 函數是的當且僅當它的下境圖是一個凸集

img

[Jensen不等式] 基本不等式 \(f(\theta x+(1-\theta)y)\leq \theta f(x)+(1-\theta)f(y)\) 有時被叫做Jensen不等式。

注:Jensen 不等式其實就是凸函數的定義

  • 它可以拓展到多個點的凸組合:

如果 \(f\) 是凸的, \(x_1,...,x_k\in domf, \theta_1,...,\theta_k \geq 0\) , \(\theta_1+...+\theta_k=1\) 那么

\(f(\theta_1x_1+...+\theta_kx_k)\leq \theta_1 f(x_1)+...+\theta_k f(x_k)\) .

  • 還可以拓展到無限,積分和期望:

積分:如果 \(p(x)\geq 0\)\(S\subseteq domf\) 上, \(\int_{S} p(x) dx =1\) ,那么 \(f(\int_{S} p(x) dx)\leq \int_S f(x) p(x) dx\) .

期望:如果 \(x\) 是隨機變量 \(x\in dom f\) ,且 \(f\) 是凸函數,那么有 \(f(Ex)\leq E f(x)\) .


二、保留凸性的運算

注:以下保凸運算其實可以使用定義,也就是用 Jensen 不等式證明,注意保留的是凸函數的性質,而不是保留了凸集的性質,不要和凸集的概念搞混了

[非負加權和] 如果 \(f_1,...,f_m\) 是凸函數,他們的集合是一個凸錐——凸函數的非負加權和 \(f=w_1f_1+...+w_mf_m, (w_1,...,w_m\geq 0)\) 是凸的。

注:非負加權和其實可以看做是多個做非負伸縮的凸函數進行了加和

  • 還可以拓展到積分:如果 \(f(x,y)\) 對於x是凸的,對於每個 \(y\in A\) ,且w(y)\geq 0, \(\forall y\in A\) ,那么函數 \(g(x)=\int_A w(y)f(x,y)dy\) 對於 \(x\) 是凸的。

[與仿射函數的復合]\(f:R^n\rightarrow R\) , \(A\in R^{n\times m}\) , \(b\in R\) 。定義 \(g:R^m\rightarrow R\)

\(g(x)=f(Ax+b)\) , \(domg=\{a| Ax+b\in domf\}\) .

那么如果 \(f\) 是凸函數, \(g\) 也是凸函數。

[逐點最大 pointwise maximum] 如果 \(f_1,f_2\) 是凸函數,那么他們的逐點最大 \(f\) ,定義為

\(f(x)=max\{f_1(x),f_2(x)\}\) , 定義域 \(domf=domf_1\cap domf_2\)

也是凸集。可以拓展到多個凸函數的逐點最大。

[逐點上確界 pointwise supremum] 如果對於每個 \(y\in A\) , \(f(x,y)\) 關於 \(x\) 是凸的,那么函數

\(g(x)=\underset {y\in A}{sup} \,f(x,y)\)

關於 \(x\) 是凸的。 \(g\) 的定義域是

\(dom g=\{x|(x,y)\in dom f, \forall y\in A, \underset{y\in A}{sup}f(x,y)<\infty\}\) .

  • 類似地,一組凹函數的逐點下確界是凹函數。
  • \(epi\, g =\bigcap _ {y\in A}epi \, f(\cdot,y)\) .

[最小化] 如果 \(f\) 關於 \((x,y)\) 是凸函數,並且 \(C\) 是非空凸集,那么函數

\(g(x)=\underset{g\in C}{inf}\, f(x,y)\)

是關於 \(x\) 的凸函數,對於所有的 \(x\)\(g(x)>-\infty\) 的定義域是 \(domf\)\(x\) 軸的投影:

\(dom g=\{x| (x,y)\in domf, for \,some\,y\in C\}\) .

[函數的透視] 函數 \(f: R^n\rightarrow R\)\(f\) 的透視函數為

\(g:R^{n+1}\rightarrow R\)\(g(x,t)=tf(x/t)\)

\(domg=\{(x,t)| x/t\in dom f, t>0\}\)

透視運算保存凸性:如果函數 \(f\) 是凸的,那么它的透視函數 \(g\) 也是凸的;如果 \(f\) 是凹的,那么 \(g\) 也是凹的。


三、共軛函數

[函數的共軛 conjugate]\(f:R^n\rightarrow R\) 函數 \(f^* : R^n\rightarrow R\) 定義為

\(f^*(y)=\underset{x\in domf}{sup} (y^Tx-f(x))\) , 叫做函數 \(f\)共軛

注:共軛函數的本質,其實就是通過一階導,對求 \(x\) 的最小值問題轉化為了求解截距最大值問題,如果我們把共軛函數寫成這樣 \(g(x_0) = -x_0 \frac{\partial f}{ \partial x} (x_0) + f(x_0),x_0\in domf\),這樣看是不是親切很多,其實就是切線截距公式,而前面的 \(\underset{{x\in domf}}{sup}\) 就是求最大值咯

共軛函數的定義域 由使得上述上確界有限的 \(y, y\in R^n\) 組成。也就是說在 \(domf\) 上差 \(y^Tx-f(x)\) 是有界的。如圖:

img

  • 共軛函數 \(f^*\) 是凸的,因為它是關於 \(y\) 的凸函數的逐點上確界,這一點為真不論 \(f\) 是否是凸的。

[Fenchel不等式] 由共軛函數的定義,我們有

\(f(x)+f^*(y)\geq x^T y\) , \(\forall x,y\) ,叫做Fenchel不等式。

例如對於 \(f(x)=(1/2)x^TQx\) , \(Q\in S^n_{++}\)\(x^Ty\leq (1/2)x^TQx+(1/2)y^TQ^{-1}y.\)

[共軛的共軛] 如果函數 \(f\) 是凸且閉的,那么 \(f^{**}=f\) .

[可微函數] 可微函數 \(f\) 的共軛,也叫做 \(f\)Legendre變換。令 \(f\) 是凸且可微的, \(domf=R^n\) ,任意使 \(y^Tx-f(x)\) 取最大值的 \(x^*\) 都滿足 \(y=\nabla f(x^*)\)

反過來如果 \(x^{*}\) 滿足 \(y=\nabla f(x^*)\) ,那么 \(x^{*}\) 使得 \(y^Tx-f(x)\) 最大化。因此如果 \(y=\nabla f(x^*)\) 我們有:

\(f^*(y)=x^{*T} \nabla f(x^*)-f(x^*).\) 注:這里就講到了 \(y^T\) 其實就是一階導

這允許我們能為任何 \(y\) 通過得到 \(f^*(y)\) 來解出梯度方程 \(y=\nabla f(z)\)

  • 另一種表示,令 \(z\in R^n\) 是任意的,定義 \(y=\nabla f(z)\) , 那么有 \(f^*(y)=z^T\nabla f(z)-f(z)\) .

注:下面就是共軛函數的一些特殊性質咯

[伸縮變換,與仿射變換的復合] 對於 \(a>0,b\in R\) ,函數 \(g(x)=af(x)+b\) 的共軛是

\(g^*(y)=af^*(A^{-1}y)-b^TA^{-T}y\) . 定義域 \(domg^*=A^Tdomf^*.\)

[獨立函數的和] 如果 \(f(u,v)=f_1(u)+f_2(v)\)\(f_1,f_2\) 都是凸函數,且有共軛 \(f_1^*,f_2^*,\) 那么 \(f^*(w,z)=f_1^*(w)+f_2^*(z).\)

也就是,獨立凸函數的和的共軛,是函數的共軛的和。


四、擬凸函數

[擬凸 Quasiconvex] 函數 \(f: R^n\rightarrow R\) 是擬凸的,如果它的定義域和所有下水平集 \(S_{\alpha}=\{x\in domf | f(x)\leq \alpha\}\) , \(\alpha \in R\) 都是凸的。

注:這里需要注意的是下水平集是凸集,而不是凸函數,其實就是利用了下境圖的概念去理解,就很好理解,就是一個函數可能不是凸,但是它的最小值在凸的那一部分,那我做個水平切割只要凸的那一部分就好了

  • 一個函數是擬凹(quasiconcave)的,如果 \(-f\) 是擬凸的,也就是每個上水平集 \(\{x| f(x)\geq \alpha\}\) 是凸的。
  • 如果一個函數既擬凸又擬凹,那么叫做擬線性(quasilinear)。如果一個函數是擬線性的那么它的定義域和每個下水平集 \(\{x| f(x)=\alpha\}\) 都是凸的.

img

[基本性質---不等式] 凸和擬凸有很多對應的性質,例如Jesen不等式的擬凸版本:一個函數 \(f\) 是擬凸的,當且僅當 \(domf\) 是凸的,且對任意 \(x\)\(0\leq \theta\leq 1\)

\(f(\theta x+(1-\theta)y)\leq max\{f(x),f(y)\}.\)

注:擬凸函數的 Jensen 不等式就是說明了函數被函數兩端的最大值控制着

也就是定義域某一段上的函數值,不超過這段兩端的函數值的最大值,如圖:

img

[ \(R\) 上的擬凸函數] 考慮連續函數 \(f:R\in R\) 是擬凸的,當且僅當滿足以下至少一個條件:

  • \(f\) 是非減的
  • \(f\) 是非增的
  • 存在一個點 \(c\in domf\) 使得對於 \(t\leq c (t\in domf)\)\(f\) 是非增的,且當 \(t\geq c (t\in domf)\)\(f\) 是非減的。

\(c\) 是一個全局最小點:

img

[可微擬凸函數---一階條件]\(f: R^n\rightarrow R\) 是可微的,那么 \(f\) 是擬凸的當且僅當 \(domf\) 是凸的,並且 \(\forall x,y\in domf\)

\(f(y)\leq f(x) \Rightarrow \nabla f(x)^T(y-x)\leq 0.\)

注:這個一階條件就是規定了 \(y-x\)\(\nabla f(x)\) 的夾角為鈍角,從下圖可以看出,也就是說 \(y\) 的等高線一定在 \(x\) 的等高線之內,也就是說明了 \(f(y) \leq f(x)\)

img

[可微擬凸函數---二階條件]\(f\) 是二次可微的,如果 \(f\) 是擬凸的,那么 \(\forall x\in domf, y\in R^n\)

\(y^T\nabla f(x)=0\Rightarrow y^T\nabla^2 f(x)y\geq 0.\)

  • 對於 \(R\) 上的擬凸函數 \(f\) ,條件簡化為 \(f'(x)=0\Rightarrow f''(x)\geq 0.\) 注:也就是說在斜率為 \(0\) 的坡的任意點上,二階導數都是非負的。

[保留擬凸性的運算]

  • 非負加權最大值: $f=max{w_1f_1,...,w_mf_m} ,w_i\geq 0, $$f_i$ 是擬凸函數。這個性質可以推廣到逐點上確界。
  • 復合:如果 \(g:R^n\rightarrow R\) 是擬凸函數, \(h:R\rightarrow R\) 是非減的,那么 \(f=h\circ g\) 是擬凸的。擬凸函數和仿射函數或線性-分數函數的復合也是一個擬凸函數。
  • 最小化: \(f(x,y)\) 是擬凸函數, \(C\) 是一個凸集,那么函數 \(g(x)=\underset{y\in C }{inf}f(x,y)\) 是擬凸的。

[用一族凸函數表示] 用凸函數的不等式來表示擬凸函數 \(f\) 的下水平集。找一族凸函數 \(\phi_t:R^n\rightarrow R , t\in R\) 滿足 \(f(x)\leq t\Leftrightarrow \phi_t(x)\leq 0.\)

也就是,擬凸函數 \(f\)\(t\)-下水平集是凸函數 \(\phi_t\)\(0\)-下水平集。


五、對數凹/對數凸函數

注:個人理解,因為對數凸不能證明什么,對數凸只是在某些情況讓一個函數更易於進行優化,例如擬凸函數 \(f=e^{x^2}\),對數之后就是凸函數 \(\log f = -x^2\),讓一個擬凸函數變成凸函數,性質更好

[對數凹/凸 log-concave/log-convex] 函數 \(f:R^n\rightarrow R\)對數凹的,如果 \(f(x)>0, \forall x\in domf\) 是凹的。

\(f\)對數凸的當且僅當 \(1/f\) 是對數凹的。

允許 \(f\)\(0\)\(log\,f(x)=-\infty\) ,此時 \(f\) 是對數凹的,如果拓展值函數 \(log\,f\) 是凹的。

[用不等式表示] 函數 \(f:R^n\rightarrow R\) 帶有凸定義域,並且 \(f(x)>0,\forall x\in domf\) 有:

\(log(f(\theta x+(1-\theta)y))\geq log(f(x)^{\theta}f(y)^{1-\theta})=f(\theta x+(1-\theta)y)\geq logf(x)^{\theta}f(y)^{1-\theta}.\)

注:從變異的 Jensen 不等式可以看出,其實對數凸就是對 Jensen 不等式做了對數變化

  • 特別地,對數凹函數在兩點的中點上的值,大於等於兩點上函數值的幾何平均數

[二次可微的對數凹/對數凸函數]\(f\) 是二次可微的, \(domf\) 是凸集,那么有

\(\nabla^2 log f(x)=\frac{1}{f(x)}\nabla^2 f(x)-\frac{1}{f(x)^2}\nabla f(x)\nabla f(x)^T.\)

  • \(f\)對數凸的,當且僅當 \(\forall x\in domf\) 有:

\(f(x)\nabla^2 f(x)\succeq \nabla f(x)\nabla f(x)^T.\)

  • \(f\)對數凹的,當且僅當 \(\forall x\in domf\) 有:

\(f(x)\nabla^2 f(x)\preceq \nabla f(x)\nabla f(x)^T.\)

[加法,乘法,積分] 對數凸性和對數凹性對於加法和正標量乘法封閉。

  • 如果 \(f(x,y)\) 對於所有的 \(y\in C\) 關於 \(x\) 對數凸, 那么 \(g(x)=\int_C f(x,y) dy\) 是對數凸的

[對數凹函數的積分] 在某些特殊情況中積分保留對數凹性。如果 \(f:R^n\times R^m\rightarrow R\) 是對數凹的,那么 \(g(x)= \int f(x,y)dy\) 是關於 \(x\) 的對數凹函數。

  • 這說明對數凹性在卷積下封閉,也就是如果 \(f,g\)\(R^n\) 上的對數凹函數,那么卷積 \((f*g)(x)=\int f(x-y)g(y)dy\) 也是對數凹函數。

六、關於廣義不等關系的凸性

注:廣義不等式的凸性,其實就是把 Jensen 不等式擴展到錐上定義了

單調性和凸性的推廣。

[單調性]\(K\subseteq R^n\) 是一個正常錐(proper cone) ,有對應的廣義不等關系 \(\preceq_K\)

  • 一個函數 \(f:R^n\rightarrow R\) 叫做\(K\) -非減的,如果

\(x\preceq_K y\Rightarrow f(x)\leq f(y).\)

  • \(f\)\(K\) -增的,如果

\(x\prec_K y, x\ne y\Rightarrow f(x)<f(y).\)

類似可以定義 \(K\) -非增函數,和 \(K\) -減函數。

[單調性的梯度條件] 一個定義域是凸集的可微函數 \(f\) ,是 \(K\) -非增的,當且僅當對於所有的 \(x\in domf\)\(\nabla f(x)\succeq_{K^*} 0\) .

更嚴格的情況,如果 \(\nabla f(x)\succ_{K^*} 0\) 對於所有 \(x\in domf\) 成立,那么說 \(f\)\(K\) -增的。

[凸性]\(K\subseteq R^m\) 是一個正常錐,有對應的廣義不等關系 \(\preceq_K\)

  • 函數 f: \(R^n\rightarrow R^m\)\(K\) -的,當且僅當對於所有 \(x,y, 0\leq \theta \leq 1\)

\(f(\theta x+(1-\theta) y)\preceq_K \theta f(x)+(1-\theta)f(y).\)

  • 函數 \(f\)嚴格 \(K\) -凸的,如果對於所有 \(x\ne y, 0< \theta< 1\)

\(f(\theta x+(1-\theta) y)\prec_K \theta f(x)+(1-\theta)f(y).\)

[ \(K\) -凸的對偶刻畫] 一個函數 \(f\)\(K\) -凸的當且僅當對於每個 \(w\succeq_{K^*} 0\) ,實值函數 \(w^Tf\) 是凸的。 \(f\) 是嚴格 \(K\) -凸的當且僅當對於每個非零 \(w\succeq_{K^*} 0\) 函數 \(w^Tf\) 是嚴格凸的。

[可微 \(K\) -凸函數] 一個可微函數 \(f\)\(K\) -凸的當且僅當它的定義域是凸集,並且對於所有的 \(x,y\in domf\)

\(f(y)\succeq_K f(x)+Df(x)(y-x).\)

此處 \(Df(x)\in R^{m\times n}\) 是函數 \(f\) 關於 \(x\) 的導數或 Jacobian 矩陣。

函數 \(f\) 是嚴格 \(K\) -凸的,當且僅當對於所有 \(x,y\in domf ,x\ne y\)

\(f(y)\succ_K f(x)+Df(x)(y-x).\)

[復合定理 composition theorem] 凸函數的非減凸函數是凸的。如果 \(g:R^n\rightarrow R^p\)\(K\) -凸的, \(h: R^p\rightarrow R\) 是凸的,且 \(h\) 的值拓展 \(\widetilde{h}\)\(K\) -非減的,那么 \(h\circ g\) 是凸的。

參考文獻:Stephen Boyd, Lieven Vandenberghe: Convex Optimization

參考資料:https://www.zhihu.com/column/c_1174389256402771968


免責聲明!

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



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