证明过程
看上去这是一个很强的结果,证明会不会很复杂?其实证明非常简单,记: 当 n 是偶数时,我们有 ,即整体是开口向上的,所以我们只需要证明它的最小值大于 0 就行了,又因为它是一个光滑连续的多项式函数,所以最小值点必然是某个极小值点。那么换个角度想,我们只需要证明它所有的极值点(不管是极大还是极小)所对应的函数值都大于 0。 求极值点的方法自然是求导,而 的一个美妙之处在于,它的导函数满足: 极值点满足 ,那也就是满足 ,此时有: 因此我们就证明了 的所有极值点对应的函数值都非负了,所以恒有 ,并且还可以检验 并不是极值点,所以 可以改为 >。证毕。应用场景
事实上,笔者是在 Arxiv 的新文章 Exploring Alternatives to Softmax Function [1] 看到这个结论的。原论文给出了一个基于数学归纳法的比较复杂的证明,上述证明则是笔者自己构思的,相对来说更加简单明了一些。
那么原论文为什么要得到这个结论呢?顾名思义,是为了探究 softmax 的替代品。我们知道,在机器学习中常用的将输出变为概率分布的方法是加上 softmax: 而由于 n 是偶数是 ,并且 在一定范围内还是 的近似,所以将 换成 也可以作为合理的归一化函数: 原论文做了几个实验,表明 比常规的 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
下载1:四件套
在机器学习算法与自然语言处理公众号后台回复“四件套”,
即可获取学习TensorFlow,Pytorch,机器学习,深度学习四件套!
下载2:仓库地址共享
在机器学习算法与自然语言处理公众号后台回复“代码”,
即可获取195篇NAACL+295篇ACL2019有代码开源的论文。开源地址如下:https://github.com/yizhen20133868/NLP-Conferences-Code
重磅!机器学习算法与自然语言处理交流群已正式成立!
群内有大量资源,欢迎大家进群学习!
额外赠送福利资源!深度学习与神经网络,pytorch官方中文教程,利用Python进行数据分析,机器学习学习笔记,pandas官方文档中文版,effective java(中文版)等20项福利资源
获取方式:进入群后点开群公告即可领取下载链接
注意:请大家添加时修改备注为 [学校/公司 + 姓名 + 方向]
例如 —— 哈工大+张三+对话系统。
号主,微商请自觉绕道。谢谢!
推荐阅读:
工业界求解NER问题的12条黄金法则
三步搞定机器学习核心:矩阵求导
神经网络中的蒸馏技术,从Softmax开始说起