概率分布的熵归一化(Entropy Normalization)

e6d2249a2299a4befa437a2143c7da53.gif

©PaperWeekly 原创 · 作者 |苏剑林

单位 |追一科技

研究方向 |NLP、神经网络

在上一篇文章《从熵不变性看 Attention 的 Scale 操作》中,我们从熵不变性的角度推导了一个新的 Attention Scale,并且实验显示具有熵不变性的新 Scale 确实能使得 Attention 的外推性能更好。这时候笔者就有一个很自然的疑问:

有没有类似 L2 Normalization 之类的操作,可以直接对概率分布进行变换,使得保持原始分布主要特性的同时,让它的熵为指定值?

笔者带着疑问搜索了一番,发现没有类似的研究,于是自己尝试推导了一下,算是得到了一个基本满意的结果,暂称为“熵归一化(Entropy Normalization)”,记录在此,供有需要的读者参考。

f3bb9d9b363a6313380d4706a99175bd.png

幂次变换

首先,假设 元分布 ,它的熵定义为:

54028b426347ea95f2bd992e895662f8.png

由于 ,所以 ,因此 ,当某个 为 1、其余 为 0 时(one hot),取得最小值 0;此外,也可以证明当所有 等于 时, 取得最大值 ,所以 的取值范围是 。

所以,我们首先要找一种分布的变换,它能够保持分布的主要信息,并且有能力将分布的熵从 0 到 进行变换。这里选择的是幂次变换:

1e5332cba1862daefc72da1558ad317c.png

选择幂次变换的原因之一,是它保持了分布的单调性,即如果 ,那么也有 ,个人认为这是分布需要保持的重要性质之一。此外,当各个 都非零并且两两不相等时,幂次变化确实有能力将熵从 进行变化。不失一般性,我们假设 ,显然当 时,,此时熵为最大值 ,当 时,有:

38d44521ce7da572be6e7070d609abab.png

也就是此时为 one hot 分布 ,对应的熵为最小值 0。其实还可以进一步求导证明熵关于 是单调递减的,因此当 从 0 到 递增时,熵从 到 0 递减变化。

5583c0b10e51ddf09f943fd6e16506bf.png

迭代求解

确定幂次变换确实是一种可用的变换后,我们就需要进入求解流程了,即对于任意给定的 ,我们需要找到正确的 ,使得对应的熵为指定值 。

首先我们写出:

78543430304855cb6a9119051250dcfe.png

最右端结果的复杂性让我们相信应该不存在解析解,所以只能寻求迭代求解算法了。

我们求它在 处的展开(主要利用 ):

ec240d39d9c1c1ff8520dc2dcd0ee010.png

那么:

1b3dfd8d3ce10f20a70346a26955729c.png

根据该结果,我们从 出发,反复利用上式进行迭代,就可以求出最终的分布:

aa131f1edf7c780b5ad4d61ccdb1e62e.png

这其实就是求解非线性方程的牛顿法了。在实验时发现,迭代 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()

dc56521dac7200cd109fcb16f4ff7fe6.png

应用设想

本文主要是觉得“熵归一化”这个概念比较有意思,所以尝试进行了推导。但具体有什么比较好的应用例子,笔者也还没想清楚。

熵越小,意味着概率越集中在几个位置上,换句话说就是其他位置的概率越接近于零,因此某种程度上来说,熵是概率分布的稀疏程度的一种度量,如果我们希望得到比较稀疏的预测结果,那么就可以通过熵归一化进行控制。另一方面,分布越稀疏,也意味着模型越有可能梯度消失,因此反过来也可以通过熵归一化来控制熵不要那么小,从而缓解梯度消失问题。

说到稀疏性,就不免想起 Sparsemax [1] 以及笔者自己构思的 Sparse Softmax 等工作,其中 Sparsemax 是将熵视为惩罚项来得到的稀疏性,而 Sparse Softmax 则是通过直接截断而引入的稀疏性,两者皆在某些场景下有更好的解释性或者更好的效果,那么直接通过熵归一化带来的稀疏性有没有效果呢?这可能也是一个值得探究的问题。

另外,在自回归模型的随机采样中,我们经常用 top-、top- 截断,这种截断本质上也是在降低分布的熵,所以相应地,我们也可以通过熵归一化来使得每步采样的分布熵一致,用以取代 top-、top- 采样,这也是一种可能的应用。

使用熵归一化的主要问题是“究竟归一化到哪个值”没有明确的标准,笔者目前也没有比较好的思路,暂时只能想到通过观察已有的实验结果来调参,但终归不是一个理想的答案。

7236c507a548cacd86f8854f0f3648bd.png

文末小结

本文引入了熵归一化(Entropy Normalization)的概念,通过直接的变换使得分布的熵可以为指定值,并构思了一些潜在应用。

outside_default.png

参考文献

outside_default.png

[1] https://arxiv.org/abs/1602.02068

更多阅读

2a94f63cc2546d3d22cc6de9d6f1dd69.png

b8a3d560c2600166dc88ec49236734b6.png

102194899ae10a86333fcfc90820068b.png

5032443f0cffb0de89d74d580c60f752.gif

#投 稿 通 道#

 让你的文字被更多人看到 

如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。

总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。 

PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学术热点剖析科研心得竞赛经验讲解等。我们的目的只有一个,让知识真正流动起来。

稿件基本要求:

• 文章确系个人原创作品,未曾在公开渠道发表,如为其他平台已发表或待发表的文章,请明确标注 

• 稿件建议以 markdown 格式撰写,文中配图以附件形式发送,要求图片清晰,无版权问题

• PaperWeekly 尊重原作者署名权,并将为每篇被采纳的原创首发稿件,提供业内具有竞争力稿酬,具体依据文章阅读量和文章质量阶梯制结算

投稿通道:

• 投稿邮箱:hr@paperweekly.site 

• 来稿请备注即时联系方式(微信),以便我们在稿件选用的第一时间联系作者

• 您也可以直接添加小编微信(pwbot02)快速投稿,备注:姓名-投稿

148b7ccc840cea62f7dc63618a54b64d.png

△长按添加PaperWeekly小编

?

现在,在「知乎」也能找到我们了

进入知乎首页搜索「PaperWeekly」

点击「关注」订阅我们的专栏吧

·

66eeb3cfe2f512e77df65b82395949b7.png


版权声明:本文为c9Yv2cf9I06K2A9E原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。