多元函数的Hessian矩阵就类似一元函数的二阶导。
多元函数Hessian矩阵半正定就相当于一元函数二阶导非负,半负定就相当于一元函数二阶导非正。如果这个类比成立的话,凸函数的Hessian恒半正定就非常容易理解了——这是一元凸函数二阶导必非负的多元拓展。
至于为什么这个类是有道理的,你要这么看。对一元函数f(x)来说,就极值而言,一阶导为0是极值点的必要但不充分条件,一阶导为0切二阶导非负是极小值的充要条件。
为什么呢,因为有泰勒展开。如果一阶导为0,二阶导非负,dx不论是多少,f(x)一定不比f(x0)小。
你把多元函数也个泰勒展开,主要区别在于:
1) 二阶导变成了Hessian。
2) 以前只要考虑x怎么变,现在还要考虑y怎么变,x和y怎么一起变,头疼了很多。
以二元为例,
从一元的情况类比过来,如果一阶导为0,是不是极小值完全取决于不同的dx, dy下,能不能做到最后一项一直非负。
只有对于任意,一直非负的情况,我们才能说这是极小值。如果一直非正,这就是极大值。如果它一会正一会负,就是鞍点。
然后“对于任意,一直非负”这是啥?半正定的定义嘛!它就是这么引出来的,也是我们为什么需要半正定这个概念的原因
- 函数在定义域上连续
- 函数在定义域上二阶可导
现在要证明的是:
- definition 1st-order condition
- 1st-order condition 2nd-order condition
实际上这些都是充要关系,但是因为题主的问题并没有要求证明必要性我这里就偷懒只证明充分性了。
首先凸函数(一元)的定义是:
任意属于定义域的两个自变量和,且对于任意,如果函数满足,那么函数是凸函数。
多变量函数可以把自变量写成一个向量,同理对于定义域的任意两个自变量和,以及任意,如果函数满足,那么函数是凸函数。
1st-order condition 一阶条件,还是以一元函数为例:
对于定义域内任意两个自变量和,函数满足则函数为凸函数。
现在要证明的凸函数有的性质。
假设函数在定义域上是凸函数,那么有:
然后稍微变形可以得到
令,则,那么有
,当趋近于0时,有这一项也就是函数在处的导数值,实际是与的复合函数,容易求导得,由于只要求在处的导数值所以容易得,代入回不等式即可得到
从图形上也可以直观去理解这个推导结果,取函数曲线上两点作直线,被函数图像截断的那部分始终在曲线上方,而其他部分始终在曲线下方,那么这两个点取的无限接近,也就是通常我们说的“割线逼近切线”,那么切线就始终在曲线下方了,曲线不知道高到哪里去了。
现在我们来做第二部分也就是用1st-order condition推导2nd-order condition的部分的证明了。
2nd-order condition的内容就是凸函数的Hessian矩阵半正定。多元Taylor展开如果不熟悉的话可以参考Taylor's theorem的公式自己理解,我这里就不详细展开了,直接写在点处二阶展开形式:
,这里的即在点处的Hessian矩阵,也可以写作,可以理解为把梯度向量推广为二阶形式,梯度向量本身也是Jacobian矩阵的一种特例。
的Hessian矩阵第行第个元素为对第个变量先求导,对第个变量后求导的二阶导数,也就是,写成矩阵形式就是:
回到上面那个Taylor展开式,对于一个凸函数,我们可以试用1st-order condition得到对于任意的和都成立,那么二次项必须对于任意的两个自变量和恒成立,我们这里以增量简写,这个增量可以任意取值,那么需要对于任意一个恒成立,而这就是是半正定的充要条件。