共轭函数的意义主要就是:一个函数即便不是凸函数,但通过共轭法获得一个凸函数,很方便求解全局最优解的问题。
另外,共轭函数亦称对偶函数、极化函数,函数的某种对偶变换。过多的东西我就不再赘述了。
此处我是想着重讲一讲为什么共轭函数是可以“保凸”的,首先我们先给出共轭函数的表达式:
其中注意变量z的定义域:
这一步的限制非常关键,共轭函数g(z)反映的是线性函数与f(x)之间的最大差值,这个差值不是距离上的绝对值,可大于0也可小于0. 我们对变量z的取值加了限制,也就使得下图的凹函数对应的共轭函数取值恒为0
由该图可容易看到,线性函数与f(x)之间的最大差值恒为 ∞ ,这明显是不合要求的,即该凹函数上的所有点都不可取,因此其共轭函数也就保凹了。
同理,我们再来看一组具有多个局部最小值的函数
函数画的较丑,大家多多见谅
该函数中,点B和C是两个极小值点,那么共轭函数最终是如何知道舍弃点C,从而确保整个函数只有一个最小值点(也就是凸函数)呢?这一块我看西瓜书和网上的帖子都好像没提到,可能是太简单都觉得不值一提吧,可我这个数学渣渣真的是看了一天,最后是一直画图终于比划出来了。
对于这样具有多个鞍点的函数来说,当线性函数的z取值为一定区间时,该直线会与原函数有多个切点,本原函数只有3个鞍点,所以最多就是2个切点。我之前一直是以为只有1个切点,所以一直认为共轭函数并不能保凸,或者说是只对于凸函数才能保凸。
多个切点内选取一个函数与f(x)之间的最大差值,该差值即为我们最终需要的值。
经过一番比划,我们大致可排除了原函数内自变量x的一些点区间,如下图所示:
中间划掉的即为不满足共轭函数变量z要求的值,满足要求的点即为点B的左侧以及点C的右侧,初步认为这两侧合起来就是十分规范的凸函数。
以上,证毕。