浅析 Softmax 与 LogSumExp

每天给你送来NLP技术干货!


来自:AI算法小喵

写在前面

在神经网络中,假设网络模型的最后一层是使用 softmax 去得到一个概率分布,且损失函数使用的是 cross entropy loss (交叉熵损失),那我们就会遇到 LogSumExp(之后简称 LSE )。本文将对 LSE 的相关知识进行简要介绍。

1. 由来

假设我们有  个值的数据集 ,我们想要求  的值,应该如何计算?看上去这个问题可能比较奇怪,但实际上我们在神经网络中经常能碰到这个问题。

在神经网络中,假设我们的最后一层是使用 softmax 去得到一个概率分布,其中 softmax 的形式为:

这里的  是其中的一个值。最终 loss函数 如果使用 cross entropy,那么就涉及到需要对该式求 log,也就是

等式中减号后面的部分,也就是我们上面所要求的  ,即 LogSumExpLSE)。

2. 特点

我们想要通过 softmax 获得概率分布。假设我们目前有两个数据集:其中一个数据集为 ,另一个数据集为  。

两组数据在理论上应得到的概率分布都应该是 。但实际上如果我们直接按照  去计算时会有:

>>> import math
>>> math.e**1000
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
OverflowError: (34, 'Result too large')
>>> math.e**-1000
0.0

可以发现,对于指数部分,一个计算不出来,另一个结果0,很明显这些结果都是有问题的,LSE 也没法计算。

在 64-bit 系统中,因为 下溢(underflow) 和 上溢(overflow) 的存在,我们没有办法精确计算这些值的结果。那么我们就需要别的方法来解决这个问题,这时候我们就需要对该式进行分析。

由于在 softmax 的时候是针对指数进行操作的,值一定会很大,但是之后在计算 cross-entropy 的时候由于 log 的存在导致值又回到正常范围。因此我们考虑如何去重写这个正常范围内的值。也就是如何去近似LSE

2. 近似

根据指数函数的性质可以得到:

对于log函数而言,

所以我们可以将LSE重写为:

402 Payment Required

将这个带入到 cross-entropy 里,那么

402 Payment Required

此时,对于数据集  来说,LSE就变成可计算的:

在实际应用中,往往会取  ,这样可以保证取指数时的最大值为0。起码不会因为 上溢 而报错,即使其余的 下溢 ,也可以得到一个合理的值。

3. 性质

LSE 函数是 凸函数,且在域内严格单调递增,但是其并非处处严格凸(摘自维基百科[1])。严格凸的LSE应该是:

首先,如果我们使用线性近似[2] 的方法即  ,那么对于  来说,令  ,可得:

402 Payment Required

因此有:

那么有:

402 Payment Required

在维基百科中,该式直接  了。但是由于不清楚这样写的原因,因此在此无法详细描述。

由于 ,且对于正数来说  ,因此有:

402 Payment Required

因此可以说 

402 Payment Required

 。换句话说,它实际上是针对  max函数 的一种 平滑操作。从字面上理解来说, LSE 函数才是真正意义上的  softmax 函数;而我们在神经网络里所说的  softmax 函数其实是近似于  argmax 函数的,也就是我们平时所用的  softmax 应该叫做  softargmax

参考资料

[1]

维基百科: https://link.zhihu.com/?target=https%3A//en.wikipedia.org/wiki/LogSumExp

[2]

线性近似: https://link.zhihu.com/?target=https%3A//en.wikipedia.org/wiki/Linear_approximation

来源:https://zhuanlan.zhihu.com/p/153535799

作者:Hurry Z


📝论文解读投稿,让你的文章被更多不同背景、不同方向的人看到,不被石沉大海,或许还能增加不少引用的呦~ 投稿加下面微信备注“投稿”即可。

最近文章

EMNLP 2022 和 COLING 2022,投哪个会议比较好?

一种全新易用的基于Word-Word关系的NER统一模型

阿里+北大 | 在梯度上做简单mask竟有如此的神奇效果

ACL'22 | 快手+中科院提出一种数据增强方法:Text Smoothing


下载一:中文版!学习TensorFlow、PyTorch、机器学习、深度学习和数据结构五件套!  后台回复【五件套】
下载二:南大模式识别PPT  后台回复【南大模式识别】

投稿或交流学习,备注:昵称-学校(公司)-方向,进入DL&NLP交流群。

方向有很多:机器学习、深度学习,python,情感分析、意见挖掘、句法分析、机器翻译、人机对话、知识图谱、语音识别等。

b0304b175936fb7770d0e95ba5ea38d6.png

记得备注呦

整理不易,还望给个在看!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值