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

2021-07-19 10:58:17 浏览数 (1)

本文其实是我在知乎上无意中翻到的一条提问: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)}),我们先证明nge 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}},则0leq a_{i 1}leq frac{e^{a_i}-e^{-a_i}}{n},所以现在问题转化为证明limlimits_{ito infty}a_{i 1}=0成立

a_{i 1}的定义,即p_{text{max}}^{(i 1)}-p_{text{min}}^{(i 1)}(概率的差),所以0leq a_{i 1}很容易想到。接下来如果我们能够证明a_{i 1}= frac{e^{a_i}-e^{-a_i}}{n}收敛到0,那么通过夹逼定理,就可以证得limlimits_{ito 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
  • softmax到底有哪些作用?

0 人点赞