logsumexp是机器学习经常遇到的运算,尤其是交叉熵的相关实现和推导中都会经常出现,同时它还是max的光滑近似(参考《寻求一个光滑的最大值函数》)。设x=(x1,x2,,xn)logsumexp定义为
logsumexp(x)=logni=1exi
本文来介绍logsumexp的几个在理论推导中可能用得到的不等式。

基本界 #

xmax=max(x1,x2,,xn),那么显然有
exmax<ni=1exini=1exmax=nexmax
各端取对数即得
xmax<logsumexp(x)xmax+logn
这是关于logsumexp上下界的最基本结果,它表明logsumexpmax的近似误差不超过logn。注意这个误差跟x本身无关,于是我们有
xmax/τ<logsumexp(x/τ)xmax/τ+logn
各端乘以τ得到
xmax<τlogsumexp(x/τ)xmax+τlogn
τ0时,误差就趋于0了,这告诉我们可以通过降低温度参数来提高对max的近似程度。

平均界 #

我们知道ex是凸函数,满足詹森不等式E[ex]eE[x],因此
1nni=1exieˉx
这里ˉx=1nni=1xi,两边乘以n后取对数得
logsumexp(x)ˉx+logn
这是关于logsumexp下界的另一个结果。该结果可以进一步推广到加权平均的情形:设有p1,p2,,pn0ni=1pi=1,由柯西不等式得
[ni=1(exi/2)2][ni=1p2i][ni=1piexi/2]2
对右端方括号内的式子应用詹森不等式得到
[ni=1piexi/2]2[e(ni=1pixi/2)]2=e(ni=1pixi)
各式两端取对数,整理得到
logsumexp(x)ni=1pixilogni=1p2i
如果开始不用柯西不等式而是用更一般的Hölder不等式,那么还可以得到
logsumexp(x)ni=1pixi1t1logni=1pti,t>1
特别地,取t1的极限,我们可以得到
logsumexp(x)ni=1pixini=1pilogpi
它可以等价地改写为ni=1pilogpiexi/Z0,其中Z=elogsumexp(x)是归一化因子,所以它实际就是两个分布的KL散度。

L约束 #

在无穷范数下,logsumexp还满足Lipschitz约束,即
|logsumexp(x)logsumexp(y)||xy|
这里的|xy|=maxi|xiyi|(其实记为|xy|max还更直观一些)。证明也不算困难,定义
f(t)=logsumexp(tx+(1t)y),t[0,1]
将它视为关于t的一元函数,由中值定理知存在ε(0,1),使得
f(ε)=f(1)f(0)10=logsumexp(x)logsumexp(y)
不难求出
f(ε)=ni=1eεxi+(1ε)yi(xiyi)ni=1eεxi+(1ε)yi
所以
|logsumexp(x)logsumexp(y)|=|ni=1eεxi+(1ε)yi(xiyi)ni=1eεxi+(1ε)yi|ni=1eεxi+(1ε)yi|xiyi|ni=1eεxi+(1ε)yini=1eεxi+(1ε)yi|xy|ni=1eεxi+(1ε)yi=|xy|

凸函数 #

最后是一个很强的结论:logsumexp还是一个凸函数!这意味着凸函数相关的所有不等式都适用于logsumexp,比如最基本的詹森不等式:
E[logsumexp(x)]logsumexp(E[x])

要证明logsumexp是凸函数,就是要证明对于t[0,1],都成立
tlogsumexp(x)+(1t)logsumexp(y)logsumexp(tx+(1t)y)
证明过程其实就是Hölder不等式的基本应用。具体来说,我们有
tlogsumexp(x)+(1t)logsumexp(y)=log(ni=1exi)t(ni=1eyi)(1t)
现在直接应用Hölder不等式就可以得到
log(ni=1exi)t(ni=1eyi)(1t)logni=1etxi+(1t)yi=logsumexp(tx+(1t)y)
这就证明了logsumexp是凸函数。

文末结 #

主要总结了logsumexp运算的相关不等式,以备不时之需。

转载到请包括本文地址:https://spaces.ac.cn/archives/9070

更详细的转载事宜请参考:《科学空间FAQ》

如果您还有什么疑惑或建议,欢迎在下方评论区继续讨论。

如果您觉得本文还不错,欢迎分享/打赏本文。打赏并非要从中获得收益,而是希望知道科学空间获得了多少读者的真心关注。当然,如果你无视它,也不会影响你的阅读。再次表示欢迎和感谢!

如果您需要引用本文,请参考:

苏剑林. (May. 10, 2022). 《logsumexp运算的几个不等式 》[Blog post]. Retrieved from https://spaces.ac.cn/archives/9070

@online{kexuefm-9070,
        title={logsumexp运算的几个不等式},
        author={苏剑林},
        year={2022},
        month={May},
        url={\url{https://spaces.ac.cn/archives/9070}},
}