刚看到一个有意思的结论:

对于任意实数x及偶数n,总有nk=0xkk!>0,即exx=0处的偶次泰勒展开式总是正的。

下面我们来看一下这个结论的证明,以及它在寻找softmax替代品中的应用。

证明过程 #

看上去这是一个很强的结果,证明会不会很复杂?其实证明非常简单,记
fn(x)=nk=0xkk!
n是偶数时,我们有lim,即整体是开口向上的,所以我们只需要证明它的最小值大于0就行了,又因为它是一个光滑连续的多项式函数,所以最小值点必然是某个极小值点。那么换个角度想,我们只需要证明它所有的极值点(不管是极大还是极小)所对应的函数值都大于0。

求极值点的方法自然是求导,而f_n(x)的一个美妙之处在于,它的导函数满足
\begin{equation}f_n'(x) = f_{n-1}(x)\end{equation}
极值点满足f_n'(x)=0,那也就是满足f_{n-1}(x)=0,此时有
\begin{equation}f_n(x) = f_{n-1}(x) + \frac{x^n}{n!} = \frac{x^n}{n!} \geq 0 \,\,\,(n\text{为偶数时})\end{equation}
因此我们就证明了f_n(x)的所有极值点对应的函数值都非负了,所以恒有f_n(x)\geq 0,并且还可以检验x=0并不是极值点,所以\geq可以改为 > 。证毕。

应用场景 #

事实上,笔者是在Arxiv的新文章《Exploring Alternatives to Softmax Function》看到这个结论的。原论文给出了一个基于数学归纳法的比较复杂的证明,上述证明则是笔者自己构思的,相对来说更加简单明了一些。

那么原论文为什么要得到这个结论呢?顾名思义,是为了探究softmax的替代品。我们知道,在机器学习中常用的将输出变为概率分布的方法是加上softmax:
\begin{equation}softmax(\boldsymbol{x})_i = \frac{e^{x_i}}{\sum\limits_{k=1}^n e^{x_k}}\end{equation}
而由于n是偶数是f_n(x) > 0,并且f_n(x)在一定范围内还是e^x的近似,所以将e^x换成f_n(x)也可以作为合理的归一化函数:
\begin{equation}taylor\text{-}softmax(\boldsymbol{x}, n)_i = \frac{f_n(x_i)}{\sum\limits_{k=1}^n f_n(x_k)}\end{equation}
原论文做了几个实验,表明taylor\text{-}softmax比常规的softmax有一定的提升:

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

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

稍加评述 #

然而,在笔者看来,这个实验结果很难有什么说服力,毕竟所用的baseline效果太低了(都2020年了,你好歹跑个ResNet吧?)。此外,原论文也没有提供关于这个替代品的一些直观理解,纯粹是做了简单的实验然后说它work了,实在是过于粗糙。

不过,尽管原论文有诸多不足之处,笔者认为其提出的taylor\text{-}softmax倒是真的有可能是有效的。从softmax到taylor\text{-}softmax的过程,实际上是将激活函数从指数函数换成了多项式函数,这两者有什么区别呢?我们知道|x|比较大的时候,e^x会增加/衰减得很快,这直接导致了softmax经常给出的置信度过高的现象(概率值非0即1),而相对来说,多项式函数的增长没有那么猛,不容易出现置信度过高问题,从而没那么容易过拟合。

类似的改动也出现在经典的降维方法t-SNE中,t-SNE的前身是SNE,SNE就是构造了类似softmax的指数形式的概率分布,然后被发现有“Crowding问题”(参考《最小熵原理(四):“物以类聚”之从图书馆到词向量》),最后t-SNE将指数换成二次函数就好很多了,感觉taylor\text{-}softmax跟t-SNE的思想有一定的相通之处。

保持单调 #

事实上,还可以证明f_n(x)全局只有一个极小值点,所以它的图像都是呈“U”字型的,如下图:

f_n(x)的图像

f_n(x)的图像

某些有强迫症的读者可能会纠结f_n(x)的非单调性问题,觉得f_n(x)不是一个单调函数可能会隐藏某些问题。事实上,当前没有什么明确的证据表明转换为概率分布的变换必须是单调的。当然,如果你依然担心,那其实也可以截断一下。刚才说了f_n(x)只有一个极小值点x_n^*,大于极小值点的部分就是单调递增的,小于极小值点的部分直接让它等于极小值点就好了,即定义
\begin{equation}\tilde{f}_{n}(x)=\left\{\begin{aligned}&f_n(x),\quad x > x_n^*\\ &f_n(x_n^*),\quad x\leq x_n^*\end{aligned}\right.\end{equation}
然后用\tilde{f}_{n}(x)代替f_{n}(x)完成归一化就行。对于固定的nx_n^*f_n(x_n^*)都可以事先用数值方法算出来:
\begin{array}{c|cc} \hline n & x_n^* & f(x_n^*) \\ \hline 2 & -1 & 0.5 \\ 4 & -1.59607 & 0.270395 \\ 6 & -2.18061 & 0.149325 \\ 8 & -2.759 & 0.0832715 \\ 10 & -3.33355 & 0.0466991 \\ \hline \end{array}

文章小结 #

文本的主要目的是介绍“e^x的偶次泰勒展开式总是正的”这个颇有意思的结论,并且顺带介绍了它在寻找softmax替代品中的应用。

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

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

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

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

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

苏剑林. (Nov. 24, 2020). 《exp(x)在x=0处的偶次泰勒展开式总是正的 》[Blog post]. Retrieved from https://spaces.ac.cn/archives/7919

@online{kexuefm-7919,
        title={exp(x)在x=0处的偶次泰勒展开式总是正的},
        author={苏剑林},
        year={2020},
        month={Nov},
        url={\url{https://spaces.ac.cn/archives/7919}},
}