LogSumExp(LSE,也称RealSoftMax或多变量softplus)函数是一个平滑最大值——一个对极值函数的光滑近似,主要用在机器学习算法中。 其定义为参数的指数的和的对数:
:\mathrm{LSE}(x_1, \dots, x_n) = \log\left( \exp(x_1) + \cdots + \exp(x_n) \right).
性质
LogSumExp函数的定义域为\R^n(),共域是\R(实数线)。
它是对极值函数\max_i x_i的近似,同时有如下的界限:
:\max{\{x_1, \dots, x_n\}} \leq \mathrm{LSE}(x_1, \dots, x_n) \leq \max{\{x_1, \dots, x_n\}} + \log(n).
第一个不等式在n = 1以外的情况是严格成立的,第二个不等式仅在所有元素相等时取等号。
(证明:令m = \max_i x_i,则\exp(m) \leq \sum_{i=1}^n \exp(x_i) \leq n \exp(m)。将不等式取对数即可。)
另外,我们可以将不等式缩放到更紧的界限。考虑函数\frac 1 t \mathrm{LSE}(tx)。然后,
: \max{\{x_1, \dots, x_n\}}
(证明:将上式x_i用t>0的tx_i替换,得到
:\max{\{tx_1, \dots, tx_n\}}
由于t>0,
:t \max{\{x_1, \dots, x_n\}}
最后,同除t得到结果。)
此外,如果我们乘上一个负数,可以得到一个与 \min 有关的不等式:
: \min{\{x_1, \dots, x_n\}} - \frac{\log(n)}{t} \leq \frac 1 {-t} \mathrm{LSE}(-tx)
LogSumExp函数是凸函数,因此在定义域上严格递增。 (但并非处处都是严格凸的。)
令\mathbf{x} = (x_1, \dots, x_n),偏导数为:
:\frac{\partial}{\partial x_i}{\mathrm{LSE}(\mathbf{x})} =
\frac{\exp x_i}{\sum_j \exp {x_j}},
表明LogSumExp的梯度是softmax函数。
LogSumExp的凸共轭是。
对数域中的log-sum-exp计算技巧
当通常的算术计算在对数尺度上进行时,经常会遇到LSE函数,例如对数概率。
类似于线性尺度中的乘法运算变成对数尺度中的简单加法,线性尺度中的加法运算变成对数尺度中的LSE:
:\mathrm{LSE}(\log(x_1), ..., \log(x_n)) = \log(x_1 + \dots + x_n)
使用对数域计算的一个常见目的是在使用有限精度浮点数直接表示(在线性域中)非常小或非常大的数字时提高精度并避免溢出问题.
不幸的是,在一些情况下直接使用 LSE 依然会导致上溢/下溢问题,必须改用以下等效公式(尤其是当上述“最大”近似值的准确性不够时)。 因此,IT++等很多数学库都提供了LSE的默认例程,并在内部使用了这个公式。
:\mathrm{LSE}(x_1, \dots, x_n) = x^ + \log\left( \exp(x_1-x^)+ \cdots + \exp(x_n-x^*) \right)
其中x^* = \max{\{x_1, \dots, x_n\}}
一个严格凸的log-sum-exp型函数
LSE是凸的,但不是严格凸的。我们可以通过增加一项为零的额外参数来定义一个严格凸的log-sum-exp型函数:
:\mathrm{LSE}_0^+(x_1,...,x_n) = \mathrm{LSE}(0,x_1,...,x_n)
This function is a proper Bregman generator (strictly convex and differentiable).
It is encountered in machine learning, for example, as the cumulant of the multinomial/binomial family.
在中,这是的和。
参见
- 對數平均
- Log semiring
- 平滑最大值
- Softmax函数
参考资料
评论 (0)