logsumexp运算的几个不等式
By 苏剑林 | 2022-05-10 | 27115位读者 |logsumexp是机器学习经常遇到的运算,尤其是交叉熵的相关实现和推导中都会经常出现,同时它还是max的光滑近似(参考《寻求一个光滑的最大值函数》)。设x=(x1,x2,⋯,xn),logsumexp定义为
logsumexp(x)=logn∑i=1exi
本文来介绍logsumexp的几个在理论推导中可能用得到的不等式。
基本界 #
记xmax=max(x1,x2,⋯,xn),那么显然有
exmax<n∑i=1exi≤n∑i=1exmax=nexmax
各端取对数即得
xmax<logsumexp(x)≤xmax+logn
这是关于logsumexp上下界的最基本结果,它表明logsumexp对max的近似误差不超过logn。注意这个误差跟x本身无关,于是我们有
xmax/τ<logsumexp(x/τ)≤xmax/τ+logn
各端乘以τ得到
xmax<τlogsumexp(x/τ)≤xmax+τlogn
当τ→0时,误差就趋于0了,这告诉我们可以通过降低温度参数来提高对max的近似程度。
平均界 #
我们知道ex是凸函数,满足詹森不等式E[ex]≥eE[x],因此
1nn∑i=1exi≥eˉx
这里ˉx=1nn∑i=1xi,两边乘以n后取对数得
logsumexp(x)≥ˉx+logn
这是关于logsumexp下界的另一个结果。该结果可以进一步推广到加权平均的情形:设有p1,p2,⋯,pn≥0且n∑i=1pi=1,由柯西不等式得
[n∑i=1(exi/2)2][n∑i=1p2i]≥[n∑i=1piexi/2]2
对右端方括号内的式子应用詹森不等式得到
[n∑i=1piexi/2]2≥[e(n∑i=1pixi/2)]2=e(n∑i=1pixi)
各式两端取对数,整理得到
logsumexp(x)≥n∑i=1pixi−logn∑i=1p2i
如果开始不用柯西不等式而是用更一般的Hölder不等式,那么还可以得到
logsumexp(x)≥n∑i=1pixi−1t−1logn∑i=1pti,∀t>1
特别地,取t→1的极限,我们可以得到
logsumexp(x)≥n∑i=1pixi−n∑i=1pilogpi
它可以等价地改写为n∑i=1pilogpiexi/Z≥0,其中Z=elogsumexp(x)是归一化因子,所以它实际就是两个分布的KL散度。
L约束 #
在无穷范数下,logsumexp还满足Lipschitz约束,即
|logsumexp(x)−logsumexp(y)|≤|x−y|∞
这里的|x−y|∞=maxi|xi−yi|(其实记为|x−y|max还更直观一些)。证明也不算困难,定义
f(t)=logsumexp(tx+(1−t)y),t∈[0,1]
将它视为关于t的一元函数,由中值定理知存在ε∈(0,1),使得
f′(ε)=f(1)−f(0)1−0=logsumexp(x)−logsumexp(y)
不难求出
f′(ε)=n∑i=1eεxi+(1−ε)yi(xi−yi)n∑i=1eεxi+(1−ε)yi
所以
|logsumexp(x)−logsumexp(y)|=|n∑i=1eεxi+(1−ε)yi(xi−yi)n∑i=1eεxi+(1−ε)yi|≤n∑i=1eεxi+(1−ε)yi|xi−yi|n∑i=1eεxi+(1−ε)yi≤n∑i=1eεxi+(1−ε)yi|x−y|∞n∑i=1eεxi+(1−ε)yi=|x−y|∞
凸函数 #
最后是一个很强的结论:logsumexp还是一个凸函数!这意味着凸函数相关的所有不等式都适用于logsumexp,比如最基本的詹森不等式:
E[logsumexp(x)]≥logsumexp(E[x])
要证明logsumexp是凸函数,就是要证明对于∀t∈[0,1],都成立
tlogsumexp(x)+(1−t)logsumexp(y)≥logsumexp(tx+(1−t)y)
证明过程其实就是Hölder不等式的基本应用。具体来说,我们有
tlogsumexp(x)+(1−t)logsumexp(y)=log(n∑i=1exi)t(n∑i=1eyi)(1−t)
现在直接应用Hölder不等式就可以得到
log(n∑i=1exi)t(n∑i=1eyi)(1−t)≥logn∑i=1etxi+(1−t)yi=logsumexp(tx+(1−t)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}},
}
May 13th, 2022
麻烦问下,从(12)到(13)是怎么推导的,我试了用Jensen不等式,得到的结果不行呀。
1t−1logn∑i=1pti=1t−1logn∑i=1pipt−1i≥1t−1n∑i=1pilogpt−1i=n∑i=1pilogpi
这样并不能退出(13)式呀,苏神是怎么做的呢,能稍微具体些么?
你是问(11)推(12)还是(12)推(13)?如果是后者,(12)推不出(13);如果是前者,是直接用洛必达法则取t→1的极限就行了。
问的是11怎么到12的,赞!
November 10th, 2023
您好, 请问
|logsumexp(x)−logsumexp(y)|
这个绝对值有更强的约束吗? 通过实验发现这个约束不是很强.
暂时没深入研究了。但极端情况下这个界能取到,所以很难得到更好的界了。