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

  • 相关阅读:
    IDEA 工具 破解码
    postman 使用 及断言
    MonkeyTest 命名
    Jmeter 测试单元的封装与复用
    开发性能测试工具——自己动手实现迭代功能
    jemter安装mysql数据驱动JDBC
    全链路性能测试知识点整理
    Java接口全链路优化:如何降低接口RT时长(转)
    测试自动化之Mock服务思路探讨
    算法分析与设计(一)时间与空间复杂度
  • 原文地址:https://www.cnblogs.com/nickchen121/p/14902045.html
Copyright © 2011-2022 走看看