专栏名称: 算法与数学之美
从生活中挖掘数学之美,在实践中体验算法之奇,魅力旅程,从此开始!
目录
相关文章推荐
九章算法  ·  印度人赢了,“病毒式”入侵北美中产阶级 ·  2 天前  
程序员鱼皮  ·  应届生炒到66.5w年薪,真心建议冲冲这个新 ... ·  3 天前  
程序员鱼皮  ·  应届生炒到66.5w年薪,真心建议冲冲这个新 ... ·  3 天前  
九章算法  ·  MIT CS毕业生,突然不吃香了… ·  6 天前  
九章算法  ·  准备迎接L5大通胀时代 ·  1 周前  
51好读  ›  专栏  ›  算法与数学之美

从数学分析的角度来看SOFTMAX

算法与数学之美  · 公众号  · 算法  · 2017-06-27 22:18

正文

从数学分析的角度来看SOFTMAX

来源:36大数据

编辑:Gemini




Softmax是机器学习中最常用的输出函数之一,网上有很多资料介绍它是什么以及它的用法(http://ufldl.stanford.edu/wiki/index.php/Softmax回归),但却没有资料来介绍它背后的原理。本文首先简单地介绍一下Softmax,然后着重从数学分析的角度来分析一下它背后的原理。

 分类问题是监督学习中最重要的问题之一,它试图根据输入 

x">x 来预测对应标签 y">y 的概率。Softmax便是计算标签概率的重要工具之一:

p=softmax(a)pi=exp(ai)jexp(aj)">

其中 ai">ai 是模型对于第 i">i 个分类的输出。接下来简单地证明一下:通过对数最大似然以及梯度下降方法可以使 pi">pi 逼近第 i">i 个分类的真实概率。对数最大似然中的损失函数为 LNLL(p,y)=logpy"> ,对它关于 a">a 求导得:

akLNLL(p,y)=ak(logpy)=ak(ay+logjeaj)">

=1y=k+eakjeaj=pk1y=k">

即 aLNLL(p,y)=(pey)">

 

从收敛速度方面,对数最大似然与梯度下降在Softmax身上简直是绝配。对于一个输入为 x">x 的样本,假设它的真实分类是 i">i ,对于模型的第 j(ji)">j(ji) 个输出有 ajLNLL(p,y)=pj">

当然也有人在Softmax上尝试其他损失函数,比如最有名的最小二乘。结果是两者并不搭,因为在最小二乘下模型如果预测完全错误时修正也会非常小。设 y=ei">y=ei (注意这里的 y">y 是黑体),对最小二乘 L2(p(a),y)=||p(a)y||2">L2(p(a),y)=||p(a)y||2 关于 ai">ai (假设 i">i 是正确类别)求导得

aiL2(p(a),y)=L2(p(a),y)p(a)p(a)ai">

=ji2(pjyj)pj(0pi)+2(piyi)pi(1pi)">=ji2(pjyj)pj(0pi)+2(piyi)pi(1pi)

如果对于正确类别 i">i 模型的预测是 pi0">pi0 (与实际强烈不符),显然有 aiL2(p(a),y)0">

 

PS:Softmax还有一个重要性质是平移不变性,即 softmax(a)=softmax(a+b)">softmax(a)=softmax(a+b) ,因为 exp(aj+b)kexp(ak+b)=exp(aj)kexp(ak)">

 

综上所述,首先,Softmax的确可以表示概率,且随着样本的增多通过对数最大似然与梯度下降可以无限逼近真实概率值;其次,Softmax与对数最大似然这一组合在梯度下降中有很好的修正速度;最后,因为平移不变性,我们只需要关心模型不同类别输出间的相对大小,不需要关心绝对大小。


长按图片识别二维码

欢迎大家把独特见解分享出来,投稿邮箱:

[email protected]