公式:

https://www.jianshu.com/p/695136c5647b

softmx 值越大,分数越高,不是正比例关系

两组值是不一样的:

import numpy as np
z = np.array([1.0, 2.0])
print(np.exp(z)/sum(np.exp(z)))
 
z = np.array([0.1, 0.2])
print(np.exp(z)/sum(np.exp(z)))
————————————————
版权声明:本文为CSDN博主「ShellCollector」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/jacke121/article/details/104666276/

softmax VS k个二元分类器
如果你在开发一个音乐分类的应用,需要对k种类型的音乐进行识别,那么是选择使用 softmax 分类器呢,还是使用 logistic 回归算法建立 k 个独立的二元分类器呢? 
这一选择取决于你的类别之间是否互斥,例如,如果你有四个类别的音乐,分别为:古典音乐、乡村音乐、摇滚乐和爵士乐,那么你可以假设每个训练样本只会被打上一个标签(即:一首歌只能属于这四种音乐类型的其中一种),此时你应该使用类别数 k = 4 的softmax回归。(如果在你的数据集中,有的歌曲不属于以上四类的其中任何一类,那么你可以添加一个“其他类”,并将类别数 k 设为5。) 
如果你的四个类别如下:人声音乐、舞曲、影视原声、流行歌曲,那么这些类别之间并不是互斥的。例如:一首歌曲可以来源于影视原声,同时也包含人声 。这种情况下,使用4个二分类的 logistic 回归分类器更为合适。这样,对于每个新的音乐作品 ,我们的算法可以分别判断它是否属于各个类别。 
现在我们来看一个计算视觉领域的例子,你的任务是将图像分到三个不同类别中。(i) 假设这三个类别分别是:室内场景、户外城区场景、户外荒野场景。你会使用sofmax回归还是 3个logistic 回归分类器呢? (ii) 现在假设这三个类别分别是室内场景、黑白图片、包含人物的图片,你又会选择 softmax 回归还是多个 logistic 回归分类器呢? 
在第一个例子中,三个类别是互斥的,因此更适于选择softmax回归分类器 。而在第二个例子中,建立三个独立的 logistic回归分类器更加合适。

我们知道max,假如说我有两个数,a和b,并且a>b,如果取max,那么就直接取a,没有第二种可能

但有的时候我不想这样,因为这样会造成分值小的那个饥饿。所以我希望分值大的那一项经常取到,分值小的那一项也偶尔可以取到,那么我用softmax就可以了 
现在还是a和b,a>b,如果我们取按照softmax来计算取a和b的概率,那a的softmax值大于b的,所以a会经常取到,而b也会偶尔取到,概率跟它们本来的大小有关。所以说不是max,而是 Soft max 
那各自的概率究竟是多少呢,我们下面就来具体看一下

定义

假设我们有一个数组,V,Vi表示V中的第i个元素,那么这个元素的Softmax值就是

Si=ei∑jej

也就是说,是该元素的对数值,与所有元素对数值和的比值

这个定义可以说非常的直观,当然除了直观朴素好理解以外,它还有更多的优点

1.计算与标注样本的差距

在神经网络的计算当中,我们经常需要计算按照神经网络的正向传播计算的分数S1,和按照正确标注计算的分数S2,之间的差距,计算Loss,才能应用反向传播。Loss定义为交叉熵

Li=−log(efyi∑jej)

取log里面的值就是这组数据正确分类的Softmax值,它占的比重越大,这个样本的Loss也就越小,这种定义符合我们的要求

2.计算上非常非常的方便

当我们对分类的Loss进行改进的时候,我们要通过梯度下降,每次优化一个step大小的梯度,这个时候我们就要求Loss对每个权重矩阵的偏导,然后应用链式法则。那么这个过程的第一步,就是求Loss对score的偏导 (下面公式推导部分对于求偏导符号就用求导符号代替)

我们首先定义

Pyi=efyi∑jej 是选到yi的概率

Li=−log(efyi∑jej)是我们之前提到的交叉熵 
那么我们求Loss对score的偏导就是

∂Li∂fyi=−ln(efyi∑jej)′ 
=−1∗∑jejefyi∗(efyi∑jej)′=−1∗∑jejefyi∗(1−∑j≠fyiej∑jej)′

=−1∗∑jejefyi∗(−1)∗∑j≠fyiej∗(−1)∗1(∑jej)2∗(∑jej)′

=−1∗∑jejefyi∗(−1)∗∑j≠fyiej∗(−1)∗1(∑jej)2∗efyi 
=−∑j≠fyiej∑jej 
=−(1−Pfyi)=Pfyi−1

最后结果的形式非常的简单,只要将算出来的概率的向量对应的真正结果的那一维减1,就可以了

举个例子,通过若干层的计算,最后得到的某个训练样本的向量的分数是[ 1, 5, 3 ], 
那么概率分别就是[e1e1+e3+e5,e5e1+e3+e5,e3e1+e3+e5]=[0.015,0.866,0.117],如果这个样本正确的分类是第二个的话,那么计算出来的偏导就是[0.015,0.866−1,0.117]=[0.015,−0.134,0.117],是不是很简单!!然后再根据这个进行back propagation就可以了

Softmax的理解与应用相关推荐

  1. 深度学习softmax函数理解

    文章目录 一,引入 二,softmax是什么? 三,为什么 使用exe^xex 实现 总结 一,引入 我们为什么要引入这个函数,我们知道在机器学习当中,一些问题大概可以分为两种,一种是分类问题,一种是 ...

  2. softmax函数理解

    该节课中提到了一种叫作softmax的函数,因为之前对这个概念不了解,所以本篇就这个函数进行整理,如下: 维基给出的解释:softmax函数,也称指数归一化函数,它是一种logistic函数的归一化形 ...

  3. 对tf.nn.softmax的理解

    Softmax的含义:Softmax简单的说就是把一个N*1的向量归一化为(0,1)之间的值,由于其中采用指数运算,使得向量中数值较大的量特征更加明显. 如图所示,在等号左边部分就是全连接层做的事. ...

  4. 层次softmax (hierarchical softmax)理解

    目录 1 前言 2 CBOW(Continuous Bag-of-Word) 2.1 One-word context 2.2 Multi-word context 3 Skip-gram 4 hie ...

  5. 卷积神经网络中全连接层、softmax与softmax loss理解

    1.全连接层 假设全连接层前面连接的是一个卷积层,这个卷积层的num output是100,就是卷积之后输出一百张不同的特征图.每个特征的大小是4X4,那么在将这些特征输入给全连接层之前会将这些特征f ...

  6. Logistic回归和Softmax回归理解

    1. Logistic与Softmax简述 谈到Logistic回归首先谈到便是逻辑思谛分布,其概率分布如下图所示: 可以看出该分布函数是一条S形曲线,曲线以点(0,12)(0,12)作为对称中心,且 ...

  7. softmax(a,axis=0)的用法理解 总结

    对于3维度数组 总结axis=0 , 1 ,2 axis=0 沿着 axis=0方向 (可以认为是时间的方向)取每个单元对应元素进行计算softmax()  //通俗理解就是今天8点钟的对应行对应列的 ...

  8. softmax分类器_Softmax 理解

    Softmax深入理解[译] - AIUAI​www.aiuai.cn Pytorch的交叉熵nn.CrossEntropyLoss在训练阶段,里面是内置了softmax操作的,因此只需要喂入原始的数 ...

  9. Softmax到AMSoftmax(附可视化代码和实现代码)

    Softmax 个人理解:在训练的时候,加上角度margin,把预测出来的值减小,往0那里挤压,离标注距离更大,减少训练得分,加大loss,增加训练收敛难度. 不明白的有个问题?减去m后,如果出现负数 ...

最新文章

  1. [Spring cloud 一步步实现广告系统] 12. 广告索引介绍
  2. iOS 自带 MD5转化
  3. 使用Docker搭建Elasticsearch6.8.6集群及设置集群用户密码
  4. springboot使用HttpSessionListener监听器统计在线用户数
  5. 全排列—leetcode46
  6. [湖南师大集训2018 7 26] hunger 解题报告 (SPFA)
  7. shell执行oracle存储过程,获得存储过程返回值
  8. 五个案例“熄灭”Nginx漏洞隐患
  9. 使用EasyRecovery来恢复丢失的视频
  10. 使用 CleanWipe 解决Symantec Endpoint Protection卸载需要密码问题
  11. 打开plsqldev报错解决
  12. php程序员如何转go,写给 PHP 程序员的 Go 入门教程
  13. Proteus器件查找
  14. 0x0000006b蓝屏解决方法 - WIN7
  15. 渗透测试国内外研究_《混凝土与水泥制品》2020第8期——“混凝土研究”栏目...
  16. Nacos官方Docker版安装
  17. 两种储能器件 电容和电感 课堂笔记
  18. bm26 bm27 1
  19. 分享一个中英双语户外篷房帐篷睡袋网站模板源码带后台程序源码
  20. Deepin 系统启动kettle(Pentaho )

热门文章

  1. 形式参数内存在哪java_深入浅出Java中JVM内存管理
  2. c++ override final关键字
  3. mysql断网_mysql数据库断网链接
  4. c语言学生信息系统 完整版,C语言 学生信息管理系统(完整版).docx
  5. mysql 常用命令集_mysql 常用命令集锦[绝对精华]
  6. linux绑定盘符吗,Linux盘符绑定实现原理.PDF
  7. 质数c语言欧拉筛选,Python|欧拉筛法求质数
  8. oracle设计自增列,oracle中实现自增列
  9. “裁员” + 滤镜 = “毕业”
  10. 面试:Java反射到底慢在哪?