一个分布在多次Softmax后,会趋于相同
创始人
2024-03-07 06:57:27
0

本文其实是我在知乎上无意中翻到的一条提问: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没有什么物理意义”。不过我还是本着好奇的心态看完了他对于这个问题的证明,感兴趣的同学直接看原回答即可。实际上由于篇幅限制,苏剑林大佬的证明过程省略了不少步骤,因此这里我给出完整的证明流程

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

pmax(i+1)=epmax(i)∑j=1nepj(i)≤epmax(i)nepmin(i)=epmax(i)−pmin(i)np_{\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} pmax(i+1)​=∑j=1n​epj(i)​epmax(i)​​≤nepmin(i)​epmax(i)​​=nepmax(i)​−pmin(i)​​

同理,最小值为

pmin(i+1)=epmin(i)∑j=1nepj(i)≥epmin(i)nepmax(i)=epmin(i)−pmax(i)np_{\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} pmin(i+1)​=∑j=1n​epj(i)​epmin(i)​​≥nepmax(i)​epmin(i)​​=nepmin(i)​−pmax(i)​​

pmax(i+1)−pmin(i+1)≤epmax(i)−pmin(i)−epmin(i)−pmax(i)np_{\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} pmax(i+1)​−pmin(i+1)​≤nepmax(i)​−pmin(i)​−epmin(i)​−pmax(i)​​

设ai=pmax(i)−pmin(i)a_{i}=p^{(i)}_{\text{max}} -p^{(i)}_{\text{min}}ai​=pmax(i)​−pmin(i)​,则0≤ai+1≤eai−e−ain0\leq a_{i+1}\leq \frac{e^{a_i}-e^{-a_i}}{n}0≤ai+1​≤neai​−e−ai​​,所以现在问题转化为证明lim⁡i→∞ai+1=0\lim\limits_{i\to \infty}a_{i+1}=0i→∞lim​ai+1​=0成立

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

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

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

pmin(i+1)≥epmin(i)−pmax(i)2=epmin(i)−(1−pmin(i))2=e2pmin(i)−12p_{\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} pmin(i+1)​≥2epmin(i)​−pmax(i)​​=2epmin(i)​−(1−pmin(i)​)​=2e2pmin(i)​−1​

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

Reference

  • softmax到底有哪些作用?

相关内容

热门资讯

AWSECS:访问外部网络时出... 如果您在AWS ECS中部署了应用程序,并且该应用程序需要访问外部网络,但是无法正常访问,可能是因为...
AWSElasticBeans... 在Dockerfile中手动配置nginx反向代理。例如,在Dockerfile中添加以下代码:FR...
银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...
北信源内网安全管理卸载 北信源内网安全管理是一款网络安全管理软件,主要用于保护内网安全。在日常使用过程中,卸载该软件是一种常...
AWR报告解读 WORKLOAD REPOSITORY PDB report (PDB snapshots) AW...
AWS管理控制台菜单和权限 要在AWS管理控制台中创建菜单和权限,您可以使用AWS Identity and Access Ma...
​ToDesk 远程工具安装及... 目录 前言 ToDesk 优势 ToDesk 下载安装 ToDesk 功能展示 文件传输 设备链接 ...
群晖外网访问终极解决方法:IP... 写在前面的话 受够了群晖的quickconnet的小水管了,急需一个新的解决方法&#x...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
Azure构建流程(Power... 这可能是由于配置错误导致的问题。请检查构建流程任务中的“发布构建制品”步骤,确保正确配置了“Arti...