在文章《从熵不变性看Attention的Scale操作》中,我们推导了一版具有熵不变性质的注意力机制:
Attention(Q,K,V)=softmax(κlogndQK)V
可以观察到,它主要是往Softmax里边引入了长度相关的缩放因子logn来实现的。原来的推导比较繁琐,并且做了较多的假设,不利于直观理解,本文为其补充一个相对简明快速的推导。

推导过程 #

我们可以抛开注意力机制的背景,直接设有s1,s2,,snR,定义
pi=eλsini=1eλsi
显然这就是s1,s2,,sn同时乘上缩放因子λ后做Softmax的结果。现在我们算它的熵
H=ni=1pilogpi=logni=1eλsiλni=1pisi=logn+log1nni=1eλsiλni=1pisi
第一项的log里边是“先指数后平均”,我们用“先平均后指数”(平均场)来近似它:
log1nni=1eλsilogexp(1nni=1λsi)=λˉs
然后我们知道Softmax是会侧重于max的那个(参考《函数光滑化杂谈:不可导函数的可导逼近》),所以有近似
λni=1pisiλsmax
所以
Hlognλ(smaxˉs)
所谓熵不变性,就是希望尽可能地消除长度n的影响,所以根据上式我们需要有λlogn。如果放到注意力机制中,那么s的形式为\langle \boldsymbol{q}, \boldsymbol{k}\rangle\propto dd是向量维度),所以需要有\lambda\propto \frac{1}{d},综合起来就是
\begin{equation}\lambda\propto \frac{\log n}{d}\end{equation}
这就是文章开头式\eqref{eq:a}的结果。

文章小结 #

为之前提出的“熵不变性Softmax”构思了一个简单明快的推导。

转载到请包括本文地址:https://spaces.ac.cn/archives/9034

更详细的转载事宜请参考:《科学空间FAQ》

如果您还有什么疑惑或建议,欢迎在下方评论区继续讨论。

如果您觉得本文还不错,欢迎分享/打赏本文。打赏并非要从中获得收益,而是希望知道科学空间获得了多少读者的真心关注。当然,如果你无视它,也不会影响你的阅读。再次表示欢迎和感谢!

如果您需要引用本文,请参考:

苏剑林. (Apr. 11, 2022). 《熵不变性Softmax的一个快速推导 》[Blog post]. Retrieved from https://spaces.ac.cn/archives/9034

@online{kexuefm-9034,
        title={熵不变性Softmax的一个快速推导},
        author={苏剑林},
        year={2022},
        month={Apr},
        url={\url{https://spaces.ac.cn/archives/9034}},
}