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\) 对应的图像上方。
- 函数 \(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\) 的一阶泰勒近似,如果你对泰勒展开公式熟悉,更好理解,因为泰勒展开是无穷阶的,只不过此处做了省略
在每个点上,函数图像都高于在该点的切线。
解释:\(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)\}\) .
注:上、下境图,其实就是对函数做了一个水平切割。有可能说凸函数的下境图是一个凸集,但是这种说法没有意义,因为上、下境图的水平切割是没有固定值的
- 函数是凸的当且仅当它的上境图是一个凸集。
- 函数是凹的当且仅当它的下境图是一个凸集。
[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)\) 是有界的。如图:
- 共轭函数 \(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\}\) 都是凸的.
[基本性质---不等式] 凸和拟凸有很多对应的性质,例如Jesen不等式的拟凸版本:一个函数 \(f\) 是拟凸的,当且仅当 \(domf\) 是凸的,且对任意 \(x\) , \(0\leq \theta\leq 1\) 有
\(f(\theta x+(1-\theta)y)\leq max\{f(x),f(y)\}.\)
注:拟凸函数的 Jensen 不等式就是说明了函数被函数两端的最大值控制着
也就是定义域某一段上的函数值,不超过这段两端的函数值的最大值,如图:
[ \(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\) 是一个全局最小点:
[可微拟凸函数---一阶条件] 令 \(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)\)
[可微拟凸函数---二阶条件] 令 \(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