MENU

一个分布在多次Softmax后,会趋于相同

July 15, 2021 • Read: 3023 • 数学阅读设置

本文其实是我在知乎上无意中翻到的一条提问:softmax到底有哪些作用?,其中苏剑林大佬关于第四个问题的回复,给我产生了一些思考。为什么一个分布在多次Softmax之后,每个值会趋于相同?例如[1,100]在大约10次Softmax操作后会变成[0.5,0.5];[1,2,3,4]大约5次Softmax操作后会变成[0.25,0.25,0.25,0.25]

苏剑林大佬的原话是:“这其实是一个没什么实用价值的结果,因为对Softmax的结果再次进行Softmax没有什么物理意义”。不过我还是本着好奇的心态看完了他对于这个问题的证明,感兴趣的同学直接看原回答即可。实际上由于篇幅限制,苏剑林大佬的证明过程省略了不少步骤,因此这里我给出完整的证明流程

设第$i$次迭代后的向量为$(p_1^{(i)},p_2^{(i)},...,p_n^{(i)})$,我们先证明$n\ge 3$的情形。不妨设其中最大值、最小值为$p_{\text{max}}^{(i)},p_{\text{min}}^{(i)}$,则$\text{Softmax}(p_1^{(i)},p_2^{(i)},...,p_n^{(i)})$的最大值为

$$ p_{\text{max}}^{(i+1)}=\frac{e^{p_{\text{max}}^{(i)}}}{\sum_{j=1}^ne^{p_j^{(i)}}}\leq \frac{e^{p_{\text{max}}^{(i)}}}{ne^{p_{\text{min}}^{(i)}}}=\frac{e^{p_{\text{max}}^{(i)}-p_{\text{min}}^{(i)}}}{n} $$

同理,最小值为

$$ p_{\text{min}}^{(i+1)}=\frac{e^{p_{\text{min}}^{(i)}}}{\sum_{j=1}^ne^{p_j^{(i)}}}\ge \frac{e^{p_{\text{min}}^{(i)}}}{ne^{p_{\text{max}}^{(i)}}}=\frac{e^{p_{\text{min}}^{(i)}-p_{\text{max}}^{(i)}}}{n} $$

$$ p_{\text{max}}^{(i+1)} - p_{\text{min}}^{(i+1)} \leq \frac{e^{p_{\text{max}}^{(i)}-p_{\text{min}}^{(i)}} - e^{p_{\text{min}}^{(i)}-p_{\text{max}}^{(i)}}}{n} $$

设$a_{i}=p^{(i)}_{\text{max}} -p^{(i)}_{\text{min}}$,则$0\leq a_{i+1}\leq \frac{e^{a_i}-e^{-a_i}}{n}$,所以现在问题转化为证明$\lim\limits_{i\to \infty}a_{i+1}=0$成立

由$a_{i+1}$的定义,即$p_{\text{max}}^{(i+1)}-p_{\text{min}}^{(i+1)}$(概率的差),所以$0\leq a_{i+1}$很容易想到。接下来如果我们能够证明$\frac{e^{a_i}-e^{-a_i}}{n}$收敛到0,那么通过夹逼定理就可以证得$\lim\limits_{i\to \infty}a_{i+1}=0$

因为$f(x) = \frac{e^x - e^{-x}}{n}$是单调递增的,它只有一个不动点,只要初始值不大于0,那么迭代$x_{i+1}=f(x_i)$必然收敛到0。所以$\{a_i\}_{i=1}^\infty$也必然收敛到0

当$n=2$时,上述放缩太宽了,也就是从1出发,迭代$x_{i+1}=f(x_i)$不收敛。我们可以直接考虑

$$ p_{\text{min}}^{(i+1)}\ge \frac{e^{p_{\text{min}}^{(i)}-p_{\text{max}}^{(i)}}}{2}=\frac{e^{p_{\text{min}}^{(i)}-(1-p_{\text{min}}^{(i)})}}{2}=\frac{e^{2p_{\text{min}}^{(i)}-1}}{2} $$

基于类似的过程,$g(x)=\frac{e^{2x-1}}{2}$单调递增并且只有一个不动点$x=\frac{1}{2}$,所以从0出发,$p_{\text{min}}^{(i)}$会收敛到$\frac{1}{2}$

Reference

Last Modified: September 4, 2021
Archives Tip
QR Code for this page
Tipping QR Code