©PaperWeekly 原创 · 作者 |苏剑林
单位 |追一科技
研究方向 |NLP、神经网络
在上一篇文章《从熵不变性看 Attention 的 Scale 操作》中,我们从熵不变性的角度推导了一个新的 Attention Scale,并且实验显示具有熵不变性的新 Scale 确实能使得 Attention 的外推性能更好。这时候笔者就有一个很自然的疑问:
有没有类似 L2 Normalization 之类的操作,可以直接对概率分布进行变换,使得保持原始分布主要特性的同时,让它的熵为指定值?
笔者带着疑问搜索了一番,发现没有类似的研究,于是自己尝试推导了一下,算是得到了一个基本满意的结果,暂称为“熵归一化(Entropy Normalization)”,记录在此,供有需要的读者参考。
幂次变换
首先,假设 元分布 ,它的熵定义为:
由于 ,所以 ,因此 ,当某个 为 1、其余 为 0 时(one hot),取得最小值 0;此外,也可以证明当所有 等于 时, 取得最大值 ,所以 的取值范围是 。
所以,我们首先要找一种分布的变换,它能够保持分布的主要信息,并且有能力将分布的熵从 0 到 进行变换。这里选择的是幂次变换:
选择幂次变换的原因之一,是它保持了分布的单调性,即如果 ,那么也有 ,个人认为这是分布需要保持的重要性质之一。此外,当各个 都非零并且两两不相等时,幂次变化确实有能力将熵从 进行变化。不失一般性,我们假设 ,显然当 时,,此时熵为最大值 ,当 时,有:
也就是此时为 one hot 分布 ,对应的熵为最小值 0。其实还可以进一步求导证明熵关于 是单调递减的,因此当 从 0 到 递增时,熵从 到 0 递减变化。
迭代求解
确定幂次变换确实是一种可用的变换后,我们就需要进入求解流程了,即对于任意给定的 ,我们需要找到正确的 ,使得对应的熵为指定值 。
首先我们写出:
最右端结果的复杂性让我们相信应该不存在解析解,所以只能寻求迭代求解算法了。
我们求它在 处的展开(主要利用 ):
那么:
根据该结果,我们从 出发,反复利用上式进行迭代,就可以求出最终的分布:
这其实就是求解非线性方程的牛顿法了。在实验时发现,迭代 3~4 次,就可以取得不错的收敛效果,如果实际使用时只是为了大致地控制一下熵的范围,那么迭代 1~2 次即可。
Numpy 的参考代码:
1p = np.random.random(100)
2p /= p.sum() # 模拟分布
3gamma = 1
4H_f = np.log(30) # 希望达到的熵
5
6for i in range(10):
7 H = -(p * np.log(p)).sum()
8 gamma = 1 + (H_f - H) / (H**2 - (p * np.log(p)**2).sum())
9 p = p**gamma
10 p /= p.sum()
应用设想
本文主要是觉得“熵归一化”这个概念比较有意思,所以尝试进行了推导。但具体有什么比较好的应用例子,笔者也还没想清楚。
熵越小,意味着概率越集中在几个位置上,换句话说就是其他位置的概率越接近于零,因此某种程度上来说,熵是概率分布的稀疏程度的一种度量,如果我们希望得到比较稀疏的预测结果,那么就可以通过熵归一化进行控制。另一方面,分布越稀疏,也意味着模型越有可能梯度消失,因此反过来也可以通过熵归一化来控制熵不要那么小,从而缓解梯度消失问题。
说到稀疏性,就不免想起 Sparsemax [1] 以及笔者自己构思的 Sparse Softmax 等工作,其中 Sparsemax 是将熵视为惩罚项来得到的稀疏性,而 Sparse Softmax 则是通过直接截断而引入的稀疏性,两者皆在某些场景下有更好的解释性或者更好的效果,那么直接通过熵归一化带来的稀疏性有没有效果呢?这可能也是一个值得探究的问题。
另外,在自回归模型的随机采样中,我们经常用 top-、top- 截断,这种截断本质上也是在降低分布的熵,所以相应地,我们也可以通过熵归一化来使得每步采样的分布熵一致,用以取代 top-、top- 采样,这也是一种可能的应用。
使用熵归一化的主要问题是“究竟归一化到哪个值”没有明确的标准,笔者目前也没有比较好的思路,暂时只能想到通过观察已有的实验结果来调参,但终归不是一个理想的答案。
文末小结
本文引入了熵归一化(Entropy Normalization)的概念,通过直接的变换使得分布的熵可以为指定值,并构思了一些潜在应用。
参考文献
[1] https://arxiv.org/abs/1602.02068
更多阅读
#投 稿 通 道#
让你的文字被更多人看到
如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。
总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。
PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学术热点剖析、科研心得或竞赛经验讲解等。我们的目的只有一个,让知识真正流动起来。
? 稿件基本要求:
• 文章确系个人原创作品,未曾在公开渠道发表,如为其他平台已发表或待发表的文章,请明确标注
• 稿件建议以 markdown 格式撰写,文中配图以附件形式发送,要求图片清晰,无版权问题
• PaperWeekly 尊重原作者署名权,并将为每篇被采纳的原创首发稿件,提供业内具有竞争力稿酬,具体依据文章阅读量和文章质量阶梯制结算
? 投稿通道:
• 投稿邮箱:hr@paperweekly.site
• 来稿请备注即时联系方式(微信),以便我们在稿件选用的第一时间联系作者
• 您也可以直接添加小编微信(pwbot02)快速投稿,备注:姓名-投稿
△长按添加PaperWeekly小编
?
现在,在「知乎」也能找到我们了
进入知乎首页搜索「PaperWeekly」
点击「关注」订阅我们的专栏吧
·