1.从两个角度理解

(1)信息论中交叉熵

H(p,q)=−∑xp(x)log(q(x))=H(p)+DKL(p∣∣q)H(p,q)=-\sum_xp(x)log(q(x))=H(p)+D_{KL}(p||q)H(p,q)=−x∑​p(x)log(q(x))=H(p)+DKL​(p∣∣q)
p是指真实的分布,q是估计的分布。式中H(p)H(p)H(p)是真实分布的熵,当给定分布,熵就确定;DKL(p∣∣q)D_{KL}(p||q)DKL​(p∣∣q)是相对熵。
softmax分类器就是要最小化估计分类概率和真实分布之间的交叉熵。
交叉熵用于评估两个分布的相似度。

(2)概率的角度

softmax函数P(yi∣xi,w)=efyi∑jefjP(y_i|x_i,w)=\frac{e^{f_{y_i}}}{\sum_je^{f_j}}P(yi​∣xi​,w)=∑j​efj​efyi​​​
给定输入xi{x_i}xi​和参数w,分配给正确分类标签的归一化概率。

2. softmax在实际应用中的问题

softmax函数中分子和分母都做指数运算,当数值很大的时候,会出现指数爆炸等问题。
常用的处理方法是分子分母同时乘以一个常数C,
efyi∑jefj=CefyiC∑jefj=efyi+logC∑jefj+logC\frac{e^{f_{y_i}}}{\sum_je^{f_j}}=\frac{Ce^{f_{y_i}}}{C\sum_je^{f_j}} = \frac{e^{f_{y_i}+logC}}{\sum_je^{f_j+logC}}∑j​efj​efyi​​​=C∑j​efj​Cefyi​​​=∑j​efj​+logCefyi​​+logC​
C通常取值为−max(fj)-max(f_j)−max(fj​),使最大的值为0.

# python实现f -= np.max(f)p = np.exp(f)/np.sum(np.exp(f))

3. 一个简单的示例

这里需要强调的是:最后的输出直接由权重上一层的输出+偏置求得,并没有经过sigmoid函数,所以上图输出结果是[−2.85,0.86,0.28][-2.85,0.86,0.28][−2.85,0.86,0.28]。
(1) 先求efje^{f_j}efj​,
[e−0.285,e0.86,e0.28]=[0.058,2.36,1.32][e^{-0.285},e^{0.86},e^{0.28}] = [0.058, 2.36, 1.32][e−0.285,e0.86,e0.28]=[0.058,2.36,1.32]
(2) 求∑jefj\sum_je^{f_j}∑j​efj​
e−0.285+e0.86+e0.28=0.058+2.36+1.32=3.738e^{-0.285}+e^{0.86}+e^{0.28} = 0.058+2.36+1.32=3.738e−0.285+e0.86+e0.28=0.058+2.36+1.32=3.738
(3) 求输出概率
P(y1∣x1,w)=efy1∑jefj=0.0583.738=0.016P(y_1|x_1,w)=\frac{e^{f_{y_1}}}{\sum_je^{f_j}}=\frac{0.058}{3.738}=0.016P(y1​∣x1​,w)=∑j​efj​efy1​​​=3.7380.058​=0.016
P(y2∣x1,w)=efy2∑jefj=2.363.738=0.631P(y_2|x_1,w)=\frac{e^{f_{y_2}}}{\sum_je^{f_j}}=\frac{2.36}{3.738}=0.631P(y2​∣x1​,w)=∑j​efj​efy2​​​=3.7382.36​=0.631
P(y3∣x1,w)=efy3∑jefj=1.323.738=0.0353P(y_3|x_1,w)=\frac{e^{f_{y_3}}}{\sum_je^{f_j}}=\frac{1.32}{3.738}=0.0353P(y3​∣x1​,w)=∑j​efj​efy3​​​=3.7381.32​=0.0353

给一个类别的打分为[1,−2,0][1,-2,0][1,−2,0],softmax通过上述的计算,得到概率输出[0.7,0.04,0.26][0.7,0.04,0.26][0.7,0.04,0.26]。
进一步考虑正则项的影响,假设惩罚使得得分的输出变为原来的12\frac{1}{2}21​,即[1,−2,0][1,-2,0][1,−2,0]=>[0.5,−1,0][0.5,-1,0][0.5,−1,0]时,最终得到的输出为[0.55,0.12,0.33][0.55,0.12,0.33][0.55,0.12,0.33]。
softmax分类器会使正确的分类获得更大的概率,使错误的分类得到更小的概率。

(1)CS231n课程笔记翻译:线性分类笔记(下)
https://zhuanlan.zhihu.com/p/21102293?refer=intelligentunit
(2)cs231n-assignment1-SVM/Softmax/two-layer-nets梯度求解
https://blog.csdn.net/pjia_1008/article/details/66972060
(3)CS231n课程学习笔记(三)——Softmax分类器的实现
https://blog.csdn.net/stalbo/article/details/79379078
(4)斯坦福大学深度学习公开课cs231n学习笔记(9)softmax分类和神经网络分类代码实现
https://blog.csdn.net/piaoxuezhong/article/details/78818572

softmax 分类器相关推荐

  1. 3.9 训练一个 Softmax 分类器-深度学习第二课《改善深层神经网络》-Stanford吴恩达教授

    ←上一篇 ↓↑ 下一篇→ 3.8 Softmax 回归 回到目录 3.10 深度学习框架 训练一个 Softmax 分类器 (Training a Softmax Classifier) 上一个视频中 ...

  2. 训练softmax分类器实例_CS224N NLP with Deep Learning(四):Window分类器与神经网络

    Softmax分类器 我们来回顾一下机器学习中的分类问题.首先定义一些符号,假设我们有训练集 ,其中 为输入, 为标签,共包括 个样本: 表示第 个样本,是一个 维的向量: 表示第 个样本的标签,它的 ...

  3. SVM与SoftMax分类器

    出处:http://blog.csdn.net/han_xiaoyang/article/details/49999299  声明:版权所有,转载请注明出处,谢谢. 转给自己 1. 线性分类器 在深度 ...

  4. 深度学习与计算机视觉(二)线性SVM与Softmax分类器

    2.线性SVM与Softmax分类器 2.1 得分函数(score function) 2.1.1 线性分类器 2.1.2 理解线性分类器 2.2 损失函数 2.2.1 多类别支持向量机损失(Mult ...

  5. 深度学习与计算机视觉系列(3)_线性SVM与SoftMax分类器--在深度学习的视觉分类中的,这两个分类器的原理和比较

    作者: 寒小阳  时间:2015年11月.  出处:http://blog.csdn.net/han_xiaoyang/article/details/49999299  声明:版权所有,转载请注明出 ...

  6. 深度学习系列--1.入坑模型: 线性回归,logistic 回归,softmax分类器

    惭愧啊,读研的时候学得正是模式识别:当看着书本上都是公式推导.博士师兄们也都在公式推导研究新算法的时候,排斥心理到了顶点,从此弃疗. 工作三年,重新捡起,因为更关注实际操作,所以选择了<pyth ...

  7. 训练softmax分类器实例_一个值得深思的问题?为什么验证集的loss会小于训练集的loss...

    编辑:zero 关注 搜罗最好玩的计算机视觉论文和应用,AI算法与图像处理 微信公众号,获得第一手计算机视觉相关信息 在本教程中,您将学习在训练自己的自定义深度神经网络时,验证损失可能低于训练损失的三 ...

  8. 04 Softmax分类器

    Softmax分类器   我们处理多分类问题时,使用 SVM 输出的是一个得分值,但是得分值最后比来比去不是很直观.那么我们能不能将得分值进行转换,转换成一个概率值,如果一个新数据样本到达,如果属于某 ...

  9. 训练softmax分类器实例_作业:softmax.ipynb

    这个作业与svm.ipynb类似,要求: 为类Softmax分类器实现一个全向量化运算的损失函数 .类Softmax分类器定义在linear_classifier.py中,而损失函数实现在 softm ...

最新文章

  1. 可以作为python字符串常量的是_Python 复习
  2. boost::regex
  3. php命令执行无法重定向输出,php – CodeIgniter 3重定向功能无法正常工作
  4. POJ.2774.Long Long Message/SPOJ.1811.LCS(后缀数组 倍增)
  5. HTML语义化的理解
  6. hdu 2255 奔小康赚大钱 KM算法
  7. 科技爱好者周刊(第 167 期):广告拦截器太过分了
  8. 旅行商问题与蚁群算法
  9. Rest Stops
  10. linux 查看已安装软件
  11. 智慧停车APP小程序开发前景及开发方案
  12. 【STM32】继电器的使用
  13. 001] 智能手机操作系统介绍
  14. LED背光源运用在温控设备上
  15. 易风神通代理服务器 v2.5 绿色
  16. matlab求同构数
  17. 用C#代码实现记事本
  18. 在HTML中将垂直转换为平行,大物实验答案解析.doc
  19. POJ No.2386【B007】
  20. Ubuntu - usb转串口设备的访问权限设置

热门文章

  1. [Unity3D学习]3D数学基础之向量
  2. \\ip 映射 指定的网络名不再可用
  3. OSS中Bucket绑定域名并配置SSL证书
  4. 02 java语言基础
  5. JAVA中JButton常用设置
  6. 【java】课程介绍
  7. asp.net笔试题
  8. Windows配置环境变量的作用和方法
  9. linux中强行执行root权限
  10. ubuntu修改属组时chown: 无法访问‘bangbang‘: 没有那个文件或目录