深度学习:用于multinoulli输出分布的softmax单元
首先说明Bernoulli分布对应sigmoid单元,Multinoulli分布对应softmax单元。了解multinoulli分布请看:机器学习:Multinoulli分布与多项式分布。
softmax函数可以看作sigmoid函数的扩展,其中sigmoid函数用来表示二值型变量的分布。为了推广得到具有n个值的离散型变量的情况,现在需要创造一个向量,它的每个元素是。我们不仅要求每个元素介于0和1之间,还要使得整个向量的和为1,使得它表示一个有效的概率分布。首先线性层预测了为归一化的对数概率:
其中.softmax函数然后可以对z指数化和归一化来获得需要的。得到softmax函数的形式为
但是用最大化对数似然训练softmax来输出目标值y时,使用指数函数工作的非常好。我们想要最大化
。
将softmax定义成指数的形式是很自然的,因为对数似然中的log可以抵消softmax中的exp:
。
当最大化对数似然时,第一项鼓励被推高,而第二项则鼓励所有的被压低。第二项可以大致近似为。
,
这种近似基于对于任何明显小于的,都是不重要的。负对数似然代价函数总是强烈的惩罚最活跃的不正确预测。如果正确答案已经具有了softmax最大输入,那么项和项将大致抵消。这个样本对于整体训练代价价贡献很小,这个代价主要由其他未被正确分类的样本产生。
像sigmoid一样,softmax激活函数可能会饱和。对于softmax函数,它有多个输出值,当输出值之间的差异变的极端时,这些输出值可能饱和。softmax函数当所有输入都加上一个相同的常数时softmax的输出不变:
,
使用这个性质,我们导出一个数值方法稳定的softmax函数的变体:
,
当其中一个输入是最大并且远大于其他的输入时,响应的输出会饱和到1,当不是最大值并且最大值非常大时,相应的输出也会饱和到0。
softmax函数更接近于argmax函数而不是max函数。“soft”这个术语来源于softmax函数是连续可微的。“argmax”函数的结果表示为一个one-hot向量,不是连续可微的。softmax函数因此提供了argmax的“软化版本”。可能最好是把softmax函数称为“softargmax”,但当前名称已经是一个根深蒂固的习惯了。
深度学习:用于multinoulli输出分布的softmax单元相关推荐
- 【深度学习】详解Resampling和softmax模型集成
[深度学习]详解Resampling和softmax模型集成 文章目录 1 图像重采样1.1 次级采样(sub-sampling)1.2 高斯金字塔(Gaussian pyramids)1.3 上采样 ...
- 深度学习用于视频检测_视频如何用于检测您的个性?
深度学习用于视频检测 视频是新的第一印象! (Videos are the New First Impressions!) Think about the approximate number of ...
- 花书+吴恩达深度学习(四)多分类 softmax
目录 0. 前言 1. 二分类 sigmoid 2. 多分类 softmax 3. 多分类 softmax 梯度下降推导 如果这篇文章对你有一点小小的帮助,请给个关注,点个赞喔~我会非常开心的~ 花书 ...
- Python深度学习篇六《深度学习用于文本和序列》
前言 前期回顾: Python深度学习篇五<深度学习用于计算机视觉> 上面这篇里面写了计算机视觉相关. 卷积神经网络是解决视觉分类问题的最佳工具. 卷积神经网络通过学习模块化模式和概念的层 ...
- 《Deep Learning Techniques for Music Generation – A Survey》深度学习用于音乐生成——书籍阅读笔记(一)Chapter 1
<Deep Learning Techniques for Music Generation – A Survey>深度学习用于音乐生成--书籍阅读笔记(一)Chapter 1 关于这本书 ...
- softmax激活函数_深度学习中的激活函数,从softmax到sparsemax数学证明
softmax激活函数 The objective of this post is three-fold. The first part discusses the motivation behind ...
- Python深度学习篇五《深度学习用于计算机视觉》
前言 前期回顾:Python深度学习篇四<机器学习基础> 上面这篇里面写了关于向量数据最常见的机器学习任务. 好,接下来切入正题. 本章包括以下内容: 理解卷积神经网络(convnet) ...
- 深度学习用于交通标志识别
前言 在上两期的<无人驾驶技术入门>中,我以车道线检测为例,介绍了计算机视觉领域一些基本的算法.应用图像处理算法和调试算法阈值,就能实现车道线的检测和跟踪. 车道线检测.跟踪的项目,主要是 ...
- lisp提取长方形坐标_语义SLAM | 深度学习用于特征提取 : SuperPoint(一)
0. 写在前面 SuperPoint 是基于自监督训练的特征点检测和描述符提取方法,是2018年MagicLeap发表的一篇文章中提出的.MagicLeap是一个备受争议的做VR的公司,大家如果对他的 ...
最新文章
- 图解:消息传输的架构模式
- kafka传递文件_从面试角度一文学完 Kafka
- #打开cmd指定路径_CMD
- CVE-2019-14287(sudo提权)
- linux s t i a权限,关于Linux下s、t、i、a权限
- html java简单示例,HtmlUnit的简单例子
- XBMC源代码分析 7:视频播放器(dvdplayer)-输入流(以libRTMP为例)
- 计算机主机系统构成,一个完整的计算机系统通常是由()构成。A.硬件B.主机C.软件D.操作系统...
- linux 创建文件夹快捷方式
- Fiddler抓包7-post请求(json)
- set python_set在python里的含义和用法
- VUE 代码压缩优化
- 解决Jenkins一直用户名或密码错误
- 项目实施中的风险控制与管理
- 【32】FPGA和ASIC:计算机体系结构的黄金时代
- 某电商网站销售python图书_手把手教你写电商爬虫-第三课 实战尚妆网AJAX请求处理和内容提取...
- 将文本中的各个单词的字母顺序翻转(Java)
- OPPO系统推送SDK集成踩坑思路
- 在STM32Cube中使用FreeRTOS:入门体验
- python字符串查找位置_python中怎么返回指定查找字符的位置
热门文章
- h5网页在移动端(安卓)head里的title为空,默认显示url地址。js代码将head的title设置为空
- arm-linux-ld: cannot find -lgcc,/arm-linux-gnueabi/bin/ld: cannot find crt1.o
- python多线程并行编程,Python并行编程(二):基于线程的并行
- KnowIME: A System to Construct a Knowledge Graph for Intelligent Manufacturing Equipment-学习笔记
- 分享到JavaScript实现
- ionic4集成高德地图
- 解决JavaOpenCV的内存问题
- JVM运行时对它所管理的内存划分区域(为面试准备)
- Maven_在Eclipse中执行Maven命令
- RPC(Remote Procedure Calls)远程过程调用