zoukankan      html  css  js  c++  java
  • 02-凸函数

    02-凸函数

    凸优化从入门到放弃完整教程地址:https://www.cnblogs.com/nickchen121/p/14900036.html

    一、基本性质和例子

    [凸函数] 一个函数 (f: R^n ightarrow R) 是凸的,如果定义域 (dom\,f) 是凸集,并且对于所有 (x,yin f, hetaleq 1) ,我们有 (f( heta x+(1- heta)y)leq heta f(x)+(1- heta)f(y).)

    注:如果不能理解,从二维角度去理解

    几何解释:点 ((x,f(x)))((y,f(y))) 之间的线段在 (f) 对应的图像上方。

    img

    • 函数 (f)严格凸的,如果以上不等式在 (x e y) ,且 (0< heta <1) 时也成立.
    • 函数 (f)的,当 (-f) 是凸的,严格凹,当 (-f) 是严格凸的。
    • 仿射函数既是凸的也是凹的,反过来,既凹又凸的函数是仿射的。
    • 一个函数是凸的当且仅当对任意 (xin dom\,f) 和任意 (v) ,函数 (g(t)=f(x+tv)) 是凸的, ({t|x+tvin dom\,f}.)注:其实只是修改了自变量的表示,又由于自变量的集合是凸集,线性表示后仍然是凸集

    [扩展值] 将凸函数扩展到整个 (R^n) ,通常令它在定义域之外取 (infty) 。如果 (f) 是凸函数那么它的拓展为 (widetilde{f} : R^n ightarrow R cup {infty}) ,

    (widetilde{f}(x)=left {egin{aligned} f(x);; xin domf\ infty;; x otin domf end{aligned} ight.)

    [一阶条件] 令函数 (f) 是可微的(也就是它的梯度 ( abla f) 在开集 (domf) 的每个点上都存在)。那么 (f) 是凸的,当且仅当 (domf) 是凸的,并且对所有的 (x,yin domf) 有:

    (f(y)geq f(x)+ abla f(x)^T(y-x).)

    注:其实同样可以从二维角度的考虑,无非就是 (dy),也就是函数图像永远在某一点的切上上,同时 (f(x)+ abla f(x)^T(y-x)) 相当于 (f)(x) 的一阶泰勒近似,如果你对泰勒展开公式熟悉,更好理解,因为泰勒展开是无穷阶的,只不过此处做了省略

    在每个点上,函数图像都高于在该点的切线。

    img

    解释:(y) 的仿射函数 (f(x)+ abla f(x)^T(y-x))(f) 在靠近 (x) 处的一阶泰勒近似。上述不等式表达了这个一阶泰勒近似是函数的全局下限(global underestimator),反过来,如果函数的一阶泰勒近似总是函数的全局下限,那么这个函数是凸的。

    • 如果 ( abla f(x)=0) ,那么对于所有 (yin domf) ,有 (f(y)geq f(x)) , 也就是在 (x)(f) 取到全局最小值(x) is a global minimizer of (f) )。
    • (f)严格凸的,当且仅当 (domf) 是凸的,且对于所有 (x,yin domf, x e y)(f(y)>f(x)+ abla f(x)^T(y-x).)
    • (f)的,当且仅当 (domf) 是凸的,并且 (f(y)leq f(x)+ abla f(x)^T(y-x),)(forall x,yin domf.)

    [二阶条件] 设函数 (f) 是二阶可微的,也就是它在开集 (domf) 的每个点上都存在二阶导数 ( abla^2 f) 。那么 (f) 是凸的,当且仅当它的二阶导数是半正定的:

    注:同样在二维角度理解,二阶导大于 0,则一阶导单调递增,则在一阶导为 0 的左边是小于 0 的,右边大于 0 的,也就是说原函数在一阶导为 0 的左边是单调递减的,在右边是单调递增的,凸

    (forall xin domf) , ( abla^2f(x)succeq 0) .

    几何解释:函数图像在每个定义域的每个点上都有正的曲率(curvature)。

    • 函数 (f)的,当且仅当 (domf) 是凸的,并且 ( abla^2f(x)preceq 0) , (forall xin domf)
    • 如果 (forall xin domf) , ( abla^2f(x)succ 0) ,那么 (f)严格凸的。反过来不成立,例如 (f(x)=x^4) 是严格凸的,但是在 (x=0) 处二阶导数为 (0) .

    [例]

    注:以下判断,简单的函数可以画图确定,复杂的可以通过求二阶导确定

    (R) 上:

    • (e^{ax} , forall ain R) , 在 (R) 上凸。
    • (x^a,)(ageq 1)(aleq 0) ,在 (R_{++}) 上凸,当 (0leq aleq 1) 时凹。
    • (|x|^p) , (pgeq 1) ,在R上凸。
    • (log;x) ,在 (R_{++}) 上凸 。
    • 负熵 (x log ; x) ,在 (R_+)(R_{++}) 上凸。

    (R^n) 上:

    • 范数,凸
    • 最大值函数,凸
    • Quadratic-over-linear 函数: (f(x,y)=x^2/y) , (domf=R imes 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 ightarrow R) 的一个 (alpha) -下水平集是

    注:下水平集其实就是对函数做了一个水平切割,或者说对定义域做了切割

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

    • 凸函数的下水平集是凸集,对于所有的 (alpha) 。反过来不对,例如 (f(x)=-e^x)(R) 上不是凸的,但是它的所有下水平集都是凸集。
    • 凹函数的下水平集是凸集。

    [上境图 epigraph] 一个函数 (f:R^n ightarrow R) 的图像是 ({(x,f(x))|xin dom f}) . 它是 (R^{n+1}) 的子集。定义函数 (f)

    上境图: (epi; f = {(x,t)| xin dom f , f(x)leq t}) .

    下境图(hypo;f = {(x,t)| tleq f(x)}) .

    注:上、下境图,其实就是对函数做了一个水平切割。有可能说凸函数的下境图是一个凸集,但是这种说法没有意义,因为上、下境图的水平切割是没有固定值的

    • 函数是的当且仅当它的上境图是一个凸集
    • 函数是的当且仅当它的下境图是一个凸集

    img

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

    注:Jensen 不等式其实就是凸函数的定义

    • 它可以拓展到多个点的凸组合:

    如果 (f) 是凸的, (x_1,...,x_kin domf, heta_1,..., heta_k geq 0) , ( heta_1+...+ heta_k=1) 那么

    (f( heta_1x_1+...+ heta_kx_k)leq heta_1 f(x_1)+...+ heta_k f(x_k)) .

    • 还可以拓展到无限,积分和期望:

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

    期望:如果 (x) 是随机变量 (xin dom f) ,且 (f) 是凸函数,那么有 (f(Ex)leq E f(x)) .


    二、保留凸性的运算

    注:以下保凸运算其实可以使用定义,也就是用 Jensen 不等式证明,注意保留的是凸函数的性质,而不是保留了凸集的性质,不要和凸集的概念搞混了

    [非负加权和] 如果 (f_1,...,f_m) 是凸函数,他们的集合是一个凸锥——凸函数的非负加权和 (f=w_1f_1+...+w_mf_m, (w_1,...,w_mgeq 0)) 是凸的。

    注:非负加权和其实可以看做是多个做非负伸缩的凸函数进行了加和

    • 还可以拓展到积分:如果 (f(x,y)) 对于x是凸的,对于每个 (yin A) ,且w(y)geq 0, (forall yin A) ,那么函数 (g(x)=int_A w(y)f(x,y)dy) 对于 (x) 是凸的。

    [与仿射函数的复合](f:R^n ightarrow R) , (Ain R^{n imes m}) , (bin R) 。定义 (g:R^m ightarrow R)

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

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

    [逐点最大 pointwise maximum] 如果 (f_1,f_2) 是凸函数,那么他们的逐点最大 (f) ,定义为

    (f(x)=max{f_1(x),f_2(x)}) , 定义域 (domf=domf_1cap domf_2)

    也是凸集。可以拓展到多个凸函数的逐点最大。

    [逐点上确界 pointwise supremum] 如果对于每个 (yin A) , (f(x,y)) 关于 (x) 是凸的,那么函数

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

    关于 (x) 是凸的。 (g) 的定义域是

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

    • 类似地,一组凹函数的逐点下确界是凹函数。
    • (epi\, g =igcap _ {yin A}epi \, f(cdot,y)) .

    [最小化] 如果 (f) 关于 ((x,y)) 是凸函数,并且 (C) 是非空凸集,那么函数

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

    是关于 (x) 的凸函数,对于所有的 (x)(g(x)>-infty) 的定义域是 (domf)(x) 轴的投影:

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

    [函数的透视] 函数 (f: R^n ightarrow R)(f) 的透视函数为

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

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

    透视运算保存凸性:如果函数 (f) 是凸的,那么它的透视函数 (g) 也是凸的;如果 (f) 是凹的,那么 (g) 也是凹的。


    三、共轭函数

    [函数的共轭 conjugate](f:R^n ightarrow R) 函数 (f^* : R^n ightarrow R) 定义为

    (f^*(y)=underset{xin domf}{sup} (y^Tx-f(x))) , 叫做函数 (f)共轭

    注:共轭函数的本质,其实就是通过一阶导,对求 (x) 的最小值问题转化为了求解截距最大值问题,如果我们把共轭函数写成这样 (g(x_0) = -x_0 frac{partial f}{ partial x} (x_0) + f(x_0),x_0in domf),这样看是不是亲切很多,其实就是切线截距公式,而前面的 (underset{{xin domf}}{sup}) 就是求最大值咯

    共轭函数的定义域 由使得上述上确界有限的 (y, yin 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) , (Qin S^n_{++})(x^Tyleq (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= abla f(x^*))

    反过来如果 (x^{*}) 满足 (y= abla f(x^*)) ,那么 (x^{*}) 使得 (y^Tx-f(x)) 最大化。因此如果 (y= abla f(x^*)) 我们有:

    (f^*(y)=x^{*T} abla f(x^*)-f(x^*).) 注:这里就讲到了 (y^T) 其实就是一阶导

    这允许我们能为任何 (y) 通过得到 (f^*(y)) 来解出梯度方程 (y= abla f(z))

    • 另一种表示,令 (zin R^n) 是任意的,定义 (y= abla f(z)) , 那么有 (f^*(y)=z^T abla f(z)-f(z)) .

    注:下面就是共轭函数的一些特殊性质咯

    [伸缩变换,与仿射变换的复合] 对于 (a>0,bin 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 ightarrow R) 是拟凸的,如果它的定义域和所有下水平集 (S_{alpha}={xin 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)(0leq hetaleq 1)

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

    注:拟凸函数的 Jensen 不等式就是说明了函数被函数两端的最大值控制着

    也就是定义域某一段上的函数值,不超过这段两端的函数值的最大值,如图:

    img

    [ (R) 上的拟凸函数] 考虑连续函数 (f:Rin R) 是拟凸的,当且仅当满足以下至少一个条件:

    • (f) 是非减的
    • (f) 是非增的
    • 存在一个点 (cin domf) 使得对于 (tleq c (tin domf))(f) 是非增的,且当 (tgeq c (tin domf))(f) 是非减的。

    (c) 是一个全局最小点:

    img

    [可微拟凸函数---一阶条件](f: R^n ightarrow R) 是可微的,那么 (f) 是拟凸的当且仅当 (domf) 是凸的,并且 (forall x,yin domf)

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

    注:这个一阶条件就是规定了 (y-x)( abla f(x)) 的夹角为钝角,从下图可以看出,也就是说 (y) 的等高线一定在 (x) 的等高线之内,也就是说明了 (f(y) leq f(x))

    img

    [可微拟凸函数---二阶条件](f) 是二次可微的,如果 (f) 是拟凸的,那么 (forall xin domf, yin R^n)

    (y^T abla f(x)=0Rightarrow y^T abla^2 f(x)ygeq 0.)

    • 对于 (R) 上的拟凸函数 (f) ,条件简化为 (f'(x)=0Rightarrow f''(x)geq 0.) 注:也就是说在斜率为 (0) 的坡的任意点上,二阶导数都是非负的。

    [保留拟凸性的运算]

    • 非负加权最大值: $f=max{w_1f_1,...,w_mf_m} ,w_igeq 0, $$f_i$ 是拟凸函数。这个性质可以推广到逐点上确界。
    • 复合:如果 (g:R^n ightarrow R) 是拟凸函数, (h:R ightarrow R) 是非减的,那么 (f=hcirc g) 是拟凸的。拟凸函数和仿射函数或线性-分数函数的复合也是一个拟凸函数。
    • 最小化: (f(x,y)) 是拟凸函数, (C) 是一个凸集,那么函数 (g(x)=underset{yin C }{inf}f(x,y)) 是拟凸的。

    [用一族凸函数表示] 用凸函数的不等式来表示拟凸函数 (f) 的下水平集。找一族凸函数 (phi_t:R^n ightarrow R , tin R) 满足 (f(x)leq tLeftrightarrow 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 ightarrow R)对数凹的,如果 (f(x)>0, forall xin domf) 是凹的。

    (f)对数凸的当且仅当 (1/f) 是对数凹的。

    允许 (f)(0)(log\,f(x)=-infty) ,此时 (f) 是对数凹的,如果拓展值函数 (log\,f) 是凹的。

    [用不等式表示] 函数 (f:R^n ightarrow R) 带有凸定义域,并且 (f(x)>0,forall xin domf) 有:

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

    注:从变异的 Jensen 不等式可以看出,其实对数凸就是对 Jensen 不等式做了对数变化

    • 特别地,对数凹函数在两点的中点上的值,大于等于两点上函数值的几何平均数

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

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

    • (f)对数凸的,当且仅当 (forall xin domf) 有:

    (f(x) abla^2 f(x)succeq abla f(x) abla f(x)^T.)

    • (f)对数凹的,当且仅当 (forall xin domf) 有:

    (f(x) abla^2 f(x)preceq abla f(x) abla f(x)^T.)

    [加法,乘法,积分] 对数凸性和对数凹性对于加法和正标量乘法封闭。

    • 如果 (f(x,y)) 对于所有的 (yin C) 关于 (x) 对数凸, 那么 (g(x)=int_C f(x,y) dy) 是对数凸的

    [对数凹函数的积分] 在某些特殊情况中积分保留对数凹性。如果 (f:R^n imes R^m ightarrow R) 是对数凹的,那么 (g(x)= int f(x,y)dy) 是关于 (x) 的对数凹函数。

    • 这说明对数凹性在卷积下封闭,也就是如果 (f,g)(R^n) 上的对数凹函数,那么卷积 ((f*g)(x)=int f(x-y)g(y)dy) 也是对数凹函数。

    六、关于广义不等关系的凸性

    注:广义不等式的凸性,其实就是把 Jensen 不等式扩展到锥上定义了

    单调性和凸性的推广。

    [单调性](Ksubseteq R^n) 是一个正常锥(proper cone) ,有对应的广义不等关系 (preceq_K)

    • 一个函数 (f:R^n ightarrow R) 叫做(K) -非减的,如果

    (xpreceq_K yRightarrow f(x)leq f(y).)

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

    (xprec_K y, x e yRightarrow f(x)<f(y).)

    类似可以定义 (K) -非增函数,和 (K) -减函数。

    [单调性的梯度条件] 一个定义域是凸集的可微函数 (f) ,是 (K) -非增的,当且仅当对于所有的 (xin domf)( abla f(x)succeq_{K^*} 0) .

    更严格的情况,如果 ( abla f(x)succ_{K^*} 0) 对于所有 (xin domf) 成立,那么说 (f)(K) -增的。

    [凸性](Ksubseteq R^m) 是一个正常锥,有对应的广义不等关系 (preceq_K)

    • 函数 f: (R^n ightarrow R^m)(K) -的,当且仅当对于所有 (x,y, 0leq heta leq 1)

    (f( heta x+(1- heta) y)preceq_K heta f(x)+(1- heta)f(y).)

    • 函数 (f)严格 (K) -凸的,如果对于所有 (x e y, 0< heta< 1)

    (f( heta x+(1- heta) y)prec_K heta f(x)+(1- heta)f(y).)

    [ (K) -凸的对偶刻画] 一个函数 (f)(K) -凸的当且仅当对于每个 (wsucceq_{K^*} 0) ,实值函数 (w^Tf) 是凸的。 (f) 是严格 (K) -凸的当且仅当对于每个非零 (wsucceq_{K^*} 0) 函数 (w^Tf) 是严格凸的。

    [可微 (K) -凸函数] 一个可微函数 (f)(K) -凸的当且仅当它的定义域是凸集,并且对于所有的 (x,yin domf)

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

    此处 (Df(x)in R^{m imes n}) 是函数 (f) 关于 (x) 的导数或 Jacobian 矩阵。

    函数 (f) 是严格 (K) -凸的,当且仅当对于所有 (x,yin domf ,x e y)

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

    [复合定理 composition theorem] 凸函数的非减凸函数是凸的。如果 (g:R^n ightarrow R^p)(K) -凸的, (h: R^p ightarrow R) 是凸的,且 (h) 的值拓展 (widetilde{h})(K) -非减的,那么 (hcirc g) 是凸的。

    参考文献:Stephen Boyd, Lieven Vandenberghe: Convex Optimization

    参考资料:https://www.zhihu.com/column/c_1174389256402771968

  • 相关阅读:
    HDU 5528 Count a * b 欧拉函数
    HDU 5534 Partial Tree 完全背包
    HDU 5536 Chip Factory Trie
    HDU 5510 Bazinga KMP
    HDU 4821 String 字符串哈希
    HDU 4814 Golden Radio Base 模拟
    LA 6538 Dinner Coming Soon DP
    HDU 4781 Assignment For Princess 构造
    LA 7056 Colorful Toy Polya定理
    LA 6540 Fibonacci Tree
  • 原文地址:https://www.cnblogs.com/nickchen121/p/14902045.html
Copyright © 2011-2022 走看看