首先说明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单元相关推荐

  1. 【深度学习】详解Resampling和softmax模型集成

    [深度学习]详解Resampling和softmax模型集成 文章目录 1 图像重采样1.1 次级采样(sub-sampling)1.2 高斯金字塔(Gaussian pyramids)1.3 上采样 ...

  2. 深度学习用于视频检测_视频如何用于检测您的个性?

    深度学习用于视频检测 视频是新的第一印象! (Videos are the New First Impressions!) Think about the approximate number of ...

  3. 花书+吴恩达深度学习(四)多分类 softmax

    目录 0. 前言 1. 二分类 sigmoid 2. 多分类 softmax 3. 多分类 softmax 梯度下降推导 如果这篇文章对你有一点小小的帮助,请给个关注,点个赞喔~我会非常开心的~ 花书 ...

  4. Python深度学习篇六《深度学习用于文本和序列》

    前言 前期回顾: Python深度学习篇五<深度学习用于计算机视觉> 上面这篇里面写了计算机视觉相关. 卷积神经网络是解决视觉分类问题的最佳工具. 卷积神经网络通过学习模块化模式和概念的层 ...

  5. 《Deep Learning Techniques for Music Generation – A Survey》深度学习用于音乐生成——书籍阅读笔记(一)Chapter 1

    <Deep Learning Techniques for Music Generation – A Survey>深度学习用于音乐生成--书籍阅读笔记(一)Chapter 1 关于这本书 ...

  6. softmax激活函数_深度学习中的激活函数,从softmax到sparsemax数学证明

    softmax激活函数 The objective of this post is three-fold. The first part discusses the motivation behind ...

  7. Python深度学习篇五《深度学习用于计算机视觉》

    前言 前期回顾:Python深度学习篇四<机器学习基础> 上面这篇里面写了关于向量数据最常见的机器学习任务. 好,接下来切入正题. 本章包括以下内容: 理解卷积神经网络(convnet) ...

  8. 深度学习用于交通标志识别

    前言 在上两期的<无人驾驶技术入门>中,我以车道线检测为例,介绍了计算机视觉领域一些基本的算法.应用图像处理算法和调试算法阈值,就能实现车道线的检测和跟踪. 车道线检测.跟踪的项目,主要是 ...

  9. lisp提取长方形坐标_语义SLAM | 深度学习用于特征提取 : SuperPoint(一)

    0. 写在前面 SuperPoint 是基于自监督训练的特征点检测和描述符提取方法,是2018年MagicLeap发表的一篇文章中提出的.MagicLeap是一个备受争议的做VR的公司,大家如果对他的 ...

最新文章

  1. 图解:消息传输的架构模式
  2. kafka传递文件_从面试角度一文学完 Kafka
  3. #打开cmd指定路径_CMD
  4. CVE-2019-14287(sudo提权)
  5. linux s t i a权限,关于Linux下s、t、i、a权限
  6. html java简单示例,HtmlUnit的简单例子
  7. XBMC源代码分析 7:视频播放器(dvdplayer)-输入流(以libRTMP为例)
  8. 计算机主机系统构成,一个完整的计算机系统通常是由()构成。A.硬件B.主机C.软件D.操作系统...
  9. linux 创建文件夹快捷方式
  10. Fiddler抓包7-post请求(json)
  11. set python_set在python里的含义和用法
  12. VUE 代码压缩优化
  13. 解决Jenkins一直用户名或密码错误
  14. 项目实施中的风险控制与管理
  15. 【32】FPGA和ASIC:计算机体系结构的黄金时代
  16. 某电商网站销售python图书_手把手教你写电商爬虫-第三课 实战尚妆网AJAX请求处理和内容提取...
  17. 将文本中的各个单词的字母顺序翻转(Java)
  18. OPPO系统推送SDK集成踩坑思路
  19. 在STM32Cube中使用FreeRTOS:入门体验
  20. python字符串查找位置_python中怎么返回指定查找字符的位置

热门文章

  1. h5网页在移动端(安卓)head里的title为空,默认显示url地址。js代码将head的title设置为空
  2. arm-linux-ld: cannot find -lgcc,/arm-linux-gnueabi/bin/ld: cannot find crt1.o
  3. python多线程并行编程,Python并行编程(二):基于线程的并行
  4. KnowIME: A System to Construct a Knowledge Graph for Intelligent Manufacturing Equipment-学习笔记
  5. 分享到JavaScript实现
  6. ionic4集成高德地图
  7. 解决JavaOpenCV的内存问题
  8. JVM运行时对它所管理的内存划分区域(为面试准备)
  9. Maven_在Eclipse中执行Maven命令
  10. RPC(Remote Procedure Calls)远程过程调用