对于任意实数 x 及偶数 n,总有 ,即 的偶次泰勒展开式总是正的。下面我们来看一下这个结论的证明,以及它在寻找 softmax 替代品中的应用。

证明过程
看上去这是一个很强的结果,证明会不会很复杂?其实证明非常简单,记:
当 n 是偶数时,我们有 ,即整体是开口向上的,所以我们只需要证明它的最小值大于 0 就行了,又因为它是一个光滑连续的多项式函数,所以最小值点必然是某个极小值点。那么换个角度想,我们只需要证明它所有的极值点(不管是极大还是极小)所对应的函数值都大于 0。求极值点的方法自然是求导,而 的一个美妙之处在于,它的导函数满足:

极值点满足 ,那也就是满足 ,此时有:

因此我们就证明了 的所有极值点对应的函数值都非负了,所以恒有 ,并且还可以检验 并不是极值点,所以 可以改为 >。证毕。应用场景
事实上,笔者是在 Arxiv 的新文章 Exploring Alternatives to Softmax Function
[1] 看到这个结论的。原论文给出了一个基于数学归纳法的比较复杂的证明,上述证明则是笔者自己构思的,相对来说更加简单明了一些。
那么原论文为什么要得到这个结论呢?顾名思义,是为了探究 softmax 的替代品。我们知道,在机器学习中常用的将输出变为概率分布的方法是加上 softmax:
而由于 n 是偶数是 ,并且 在一定范围内还是 的近似,所以将 换成 也可以作为合理的归一化函数:

原论文做了几个实验,表明 比常规的 softmax 有一定的提升:

▲ softmax与其泰勒展开近似的效果比较

稍加评述
然而,在笔者看来,这个实验结果很难有什么说服力,毕竟所用的 baseline 效果太低了(都 2020 年了,你好歹跑个 ResNet 吧?)。此外,原论文也没有提供关于这个替代品的一些直观理解,纯粹是做了简单的实验然后说它 work 了,实在是过于粗糙。
不过,尽管原论文有诸多不足之处,笔者认为其提出的 倒是真的有可能是有效的。从 softmax 到 的过程,实际上是将激活函数从指数函数换成了多项式函数,这两者有什么区别呢?我们知道 |x| 比较大的时候, 会增加/衰减得很快,这直接导致了 softmax 经常给出的置信度过高的现象(概率值非 0 即 1),而相对来说,多项式函数的增长没有那么猛,不容易出现置信度过高问题,从而没那么容易过拟合。类似的改动也出现在经典的降维方法 t-SNE 中,t-SNE 的前身是 SNE,SNE 就是构造了类似 softmax 的指数形式的概率分布,然后被发现有“Crowding 问题”(参考最小熵原理:“物以类聚”之从图书馆到词向量),最后 t-SNE 将指数换成二次函数就好很多了,感觉 跟 t-SNE 的思想有一定的相通之处。

文章小结
本文的主要目的是介绍“ 的偶次泰勒展开式总是正的”这个颇有意思的结论,并且顺带介绍了它在寻找 softmax 替代品中的应用[1] https://arxiv.org/abs/2011.11538