Softmax的理解与应用
公式:
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值就是
也就是说,是该元素的对数值,与所有元素对数值和的比值
这个定义可以说非常的直观,当然除了直观朴素好理解以外,它还有更多的优点
1.计算与标注样本的差距
在神经网络的计算当中,我们经常需要计算按照神经网络的正向传播计算的分数S1,和按照正确标注计算的分数S2,之间的差距,计算Loss,才能应用反向传播。Loss定义为交叉熵
取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的理解与应用相关推荐
- 深度学习softmax函数理解
文章目录 一,引入 二,softmax是什么? 三,为什么 使用exe^xex 实现 总结 一,引入 我们为什么要引入这个函数,我们知道在机器学习当中,一些问题大概可以分为两种,一种是分类问题,一种是 ...
- softmax函数理解
该节课中提到了一种叫作softmax的函数,因为之前对这个概念不了解,所以本篇就这个函数进行整理,如下: 维基给出的解释:softmax函数,也称指数归一化函数,它是一种logistic函数的归一化形 ...
- 对tf.nn.softmax的理解
Softmax的含义:Softmax简单的说就是把一个N*1的向量归一化为(0,1)之间的值,由于其中采用指数运算,使得向量中数值较大的量特征更加明显. 如图所示,在等号左边部分就是全连接层做的事. ...
- 层次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 ...
- 卷积神经网络中全连接层、softmax与softmax loss理解
1.全连接层 假设全连接层前面连接的是一个卷积层,这个卷积层的num output是100,就是卷积之后输出一百张不同的特征图.每个特征的大小是4X4,那么在将这些特征输入给全连接层之前会将这些特征f ...
- Logistic回归和Softmax回归理解
1. Logistic与Softmax简述 谈到Logistic回归首先谈到便是逻辑思谛分布,其概率分布如下图所示: 可以看出该分布函数是一条S形曲线,曲线以点(0,12)(0,12)作为对称中心,且 ...
- softmax(a,axis=0)的用法理解 总结
对于3维度数组 总结axis=0 , 1 ,2 axis=0 沿着 axis=0方向 (可以认为是时间的方向)取每个单元对应元素进行计算softmax() //通俗理解就是今天8点钟的对应行对应列的 ...
- softmax分类器_Softmax 理解
Softmax深入理解[译] - AIUAIwww.aiuai.cn Pytorch的交叉熵nn.CrossEntropyLoss在训练阶段,里面是内置了softmax操作的,因此只需要喂入原始的数 ...
- Softmax到AMSoftmax(附可视化代码和实现代码)
Softmax 个人理解:在训练的时候,加上角度margin,把预测出来的值减小,往0那里挤压,离标注距离更大,减少训练得分,加大loss,增加训练收敛难度. 不明白的有个问题?减去m后,如果出现负数 ...
最新文章
- [Spring cloud 一步步实现广告系统] 12. 广告索引介绍
- iOS 自带 MD5转化
- 使用Docker搭建Elasticsearch6.8.6集群及设置集群用户密码
- springboot使用HttpSessionListener监听器统计在线用户数
- 全排列—leetcode46
- [湖南师大集训2018 7 26] hunger 解题报告 (SPFA)
- shell执行oracle存储过程,获得存储过程返回值
- 五个案例“熄灭”Nginx漏洞隐患
- 使用EasyRecovery来恢复丢失的视频
- 使用 CleanWipe 解决Symantec Endpoint Protection卸载需要密码问题
- 打开plsqldev报错解决
- php程序员如何转go,写给 PHP 程序员的 Go 入门教程
- Proteus器件查找
- 0x0000006b蓝屏解决方法 - WIN7
- 渗透测试国内外研究_《混凝土与水泥制品》2020第8期——“混凝土研究”栏目...
- Nacos官方Docker版安装
- 两种储能器件 电容和电感 课堂笔记
- bm26 bm27 1
- 分享一个中英双语户外篷房帐篷睡袋网站模板源码带后台程序源码
- Deepin 系统启动kettle(Pentaho )
热门文章
- 形式参数内存在哪java_深入浅出Java中JVM内存管理
- c++ override final关键字
- mysql断网_mysql数据库断网链接
- c语言学生信息系统 完整版,C语言 学生信息管理系统(完整版).docx
- mysql 常用命令集_mysql 常用命令集锦[绝对精华]
- linux绑定盘符吗,Linux盘符绑定实现原理.PDF
- 质数c语言欧拉筛选,Python|欧拉筛法求质数
- oracle设计自增列,oracle中实现自增列
- “裁员” + 滤镜 = “毕业”
- 面试:Java反射到底慢在哪?