设函数 f:Rn→R,定义函数 f∗:Rn→R 则勒让德变换为:
f∗(s)=x∈domfsup(sTx−f(x))
公式推导
让我们暂时忘掉奇怪的符号,我们从一个单变量的函数 f(x) 开始。
简单来说,勒让德变换让函数 f(x) 转换成一个自变量为原函数导数的函数 f∗(s)
f(x)⇒f∗(dxdf)
而新函数的值实际是对应切线在 y 轴的截距 b
f∗(fxdf)=−b
这就是勒让德变换的核心,你可能觉得这太随便了,但这是有原因的,实际上我们能够通过斜率和截距重构原函数 f(x)。
其完整的写法是:
f∗(dxdf)=dxdfx−f
下面我们从几何直觉推导下:
我们想要求解截距 b
于是
b=f−dxdfx所以
f∗(dxdf)=−b=dxdfx−f
对于简单函数 f(x)=x2,我们首先定义新的自变量 p
p=dxdf=2x我们可以解得:
p=2x⇒x(p)=2pf(x) 带入 x(p) 得到 f(p)
f(x)=x2⇒f(p)=(2p)2=4p4于是函数 f(x)=x2 的勒让德变换为:
f∗(p)=px(p)−f(p)=p2p−4p2=4p2
你搁着套娃呢
我们对 f∗ 求斜率
dpdf∗(p)=ddxdfddxdfx−f=x
可以得到 f∗(p) 的斜率是 x,而 f(x) 的斜率是 p,(奇妙的对偶)
如果说,我们想找到 f(x) 的最小值,并且我们有共轭函数 f∗(p),只需要在最小值处,让切线斜率为 0(函数性质良好)。那不正好对应了共轭函数的原点了吗
f∗(0)=0Txmin−f(xmin)f(xmin)=−f∗(0)
Legendre 变换本身很有用,但是它仅仅局限在凸函数和可微函数,如果这两个条件有一个不满足,那么这个变换就无法完成。让我们考虑 f(x)=∣x∣。函数斜率在 x=0 处没有定义。如下图所示。
另外,非凸函数在不同点处其斜率的可能相同,这导致 x 和 p 之间不存在唯一的对应关系。如下图,同一个斜率 p 可能对应则两个 b 值。
而 Fenchel 找到了一个巧妙的转换技巧,将 Legendre 变换推广到了这类函数中。
我们将共轭函数 f∗(p) 的值等价于寻找斜率为 p 的切线截距 b,它是斜率为 p 的直线穿过凸函数与 y 轴相交的最小截距,如下图所示:
可以看到拥有最小截距的直线只是众多直线中的一条,小于该截距时,直线将不与 f(x) 相交,因此在更多的时候,我们通常选一组与 f(x) 相交的直线,然后寻找最小截距的那条。这使得不可微甚至是非凸函数也可以使用这一变换:
此时,我们想要对于所有的 x 来说最小的 b,那么有
b=xinf(f(x)−sTx)=xinf(−(sTx−f(x)))=−xsup(sTx−f(x))
这里使用了性质 inf(−x)=−sup(x)
于是我们最终得到:
f∗(s)=−b=xsup(sTx−f(x))
讨论 Bregmen Divergence
相关资料