凸函数

  • Post author:
  • Post category:其他



凸函数有一个很好的性质,即只要能证明我们求解的问题是凸函数,最终得到的解一定是全局最优解

首先得注意一下:

中国大陆数学界某些机构关于函数凹凸性定义和国外的定义是相反的。Convex Function在中国大陆某些的数学书中,比如说我上大学那会同济版的高等数学就是指凹函数。Concave Function指凸函数。


如在讲到函数凹凸性的时候,概念是这么给出的:


设f(x)在[a,b]上连续,在(a,b)内具有一阶和二阶导数,那么,

(1)若在(a,b)内f”(x)>0,则f(x)在[a,b]上的图形是凹的;

(2)若在(a,b)内f”(x)<0,则f(x)在[a,b]上的图形是凸的。

个人觉得中国人所说的凸函数可能和凹凸这两个字象形体有关。

关于这一点,我觉得知乎上有些朋友解释的特别好,如

Cave代表洞穴

Concave 凹 Convex 凸


这里写图片描述


歪果仁是这么认识凹凸函数的


这里写图片描述


这里写图片描述


怎么样,是不是看到这个,突然就觉得好理解多了呢,我也是从知乎上看到的,狂戳链接


为什么数学概念中,将凸起的函数称为凹函数?


泰勒展开公式

泰勒公式是将一个在x=x_0处具有n阶导数的函数f(x)利用关于(x-x0)的n次多项式来逼近函数的方法。

若函数f(x)在包含x0的某个闭区间[a,b]上具有n阶导数,且在开区间(a,b)上具有(n+1)阶导数,则对闭区间[a,b]上任意一点x,成立下式:










f




(


x


)


=






f




(





x






0







)








0























+











f


















(


x


)








1


!














(


x








x






0







)






+











f










′′







(


x


)








2


!














(


x








x






0










)






2







+









+









f










(


n


)









(


x


)








n


!














(


x








x






0










)






n




















当然也可以写成:








f




(


x


)


=














i


=


0








n
















f










(


n


)









(


x


)


(


x








x






0










)






n













n


!

























or








f




(


x


)


=














i


=


0








n












f










(


n


)









(


x


)










1







n


!














(


x








x






0










)






n














泰勒级数展开(标量)

我们知道,二阶泰勒展开公式为:










f




(





x






k







+


δ




)





f




(





x






k







)


+





f




































(





x






k







)




δ








+





1






2
















f



















′′














(





x






k







)





δ








2




















此时,

1.若











f


































(





x






k







)


=


0











,如果有












f



















′′














(





x






k







)


>


0











,则











x






k
















为局部极小点(反之,局部极大点),这个在高数书上有,不懂的同学可以回头翻书看看。用几何方法特别好理解,二阶导数大于0说明,一阶导数的曲线呈现严格递增状态,就抛物线而言,斜率代表一阶导数,斜率在逐渐增大,说明抛物线开口向上。

2.如果











f



















′′














(


x












k







)


=


0











,有可能是一个鞍点,也就是拐点。比如说,








f




(


x


)


=





x






3
















,一阶导数和二阶倒数在(0,0)这点处均为0。


总结一下


判断函数极大值以及极小值。

结合一阶、二阶导数可以求函数的极值。当一阶导数等于0,而二阶导数大于0时,为极小值点。当一阶导数等于0,而二阶导数小于0时,为极大值点;当一阶导数和二阶导数都等于0时,为驻点。

凸集(Convex Sets)


定义

:一个集合








C












R








N


















是凸的,则对于任意的











x






i










C













,有:








θ





x






1







+


(


1





θ


)





x






2










C




















0





θ





1























i


=


1










n












θ






i







=


1











简单理解为:

在实数R上(或复数C上)的向量空间中,如果集合S中任两点的连线上的点都在S内,则称集合S为凸集。例如球体是凸集,但是任何中空的或具有凹痕的例如月牙形都不是凸集。



这里写图片描述


就不是凸集。

常见的凸集

1.超平面








C




=




x




|







a






T









x


=


b













2.半空间

类似于一个分隔超平面将空间切成两半的感觉

这个图来自于七月学习算法

3.多面体

这个应该比较好理解,比如说,三面体,四面体。。。

4.还有类似于平常见到的一些,比如说,圆、椭圆啊,椭球,球体都是凸集


注意



凸集的交集也是凸集,比如说,圆和椭圆相交,正方体和五面体相交都是凸集。

证明也特别简单:

不妨设两个凸集为P,Q,对于任意两个点x,y∈P∩Q,由于P凸,故线段xy在P中,同理线段xy在Q中,故线段xy在P∩Q中。于是P∩Q凸

凸函数

如果函数f的定义域domf为凸集,且满足












x


,


y







d




o


m


f




,


0





θ





1























f




(


θ


x


+


(


1





θ


)


y




)





θ


f




(


x


)






+


(


1





θ


)


f




(


y




)















则称f为定义域上的凸函数


判定方法

可利用定义法、已知结论法以及函数的二阶导数

对于实数集上的凸函数,一般的判别方法是求它的二阶导数,如果其二阶导数在区间上非负,就称为凸函数。(向下凸)

如果其二阶导数在区间上恒大于0,就称为严格凸函数。

常见的凸函数

  1. 指数函数











    e








    a


    x

















  2. 幂函数











    x






    a







    ,


    x








    R






    +







    ,


    1





    a




















    a





    0










  3. 负对数函数 – log x
  4. 负熵函数 x log x
  5. 范数函数










    |






    |




    x




    |









    |








    p
























    f




    (


    x


    )


    =


    m


    a


    x


    (





    x






    1







    ,





    ,





    x






    n







    )


















    f




    (


    x


    )


    =





    x






    2









    /




    y




    ,


    y




    >


    0


















    f




    (


    x


    )


    =


    l


    o


    g




    (





    e











    x






    1














    +


    ,





    ,


    +





    e











    x






    n














    )









凸优化问题的基本形式








m


i


n


i


m


i


z




e





f








0







(


x


)


,


x








R






n























s


u


b


j


e


c


t


t


o





f








i







(


x


)





0


,


i


=


1


,





,


m





















h






j







(


x


)


=


0


,


j


=


1


,





,


p











其中











f








i







(


x


)











为凸函数,











h






j







(


x


)











为仿射函数

注:仿射函数即由1阶多项式构成的函数,一般形式为 f (x) = A x + b,这里,A 是一个 m×k 矩阵,x 是一个 k 向量,b是一个m向量,实际上反映了一种从 k 维到 m 维的空间映射关系。


凸优化问题的性质

  1. 凸优化问题的可行域为凸集
  2. 凸优化问题的局部最优解即为全局最优解

    其中第2点非常重要。

【更多关于仿射函数请参考】

[1]

https://www.zhihu.com/question/20666664/answer/15790507


Edited by Eshter

Email:fang_yuu1992@126.com

版权归Eshter所有,撰于 2017/3/8



版权声明:本文为u012513618原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。