该节课中提到了一种叫作softmax的函数,因为之前对这个概念不了解,所以本篇就这个函数进行整理,如下:

维基给出的解释:softmax函数,也称指数归一化函数,它是一种logistic函数的归一化形式,可以将K维实数向量压缩成范围[0-1]的新的K维实数向量。函数形式为:

  (1)

其中,分母部分起到归一化的作用。至于取指数的原因,第一是要模拟max的行为,即使得大的数值更大;第二是方便求导运算。

在概率论中,softmax函数输出可以代表一个类别分布--有k个可能结果的概率分布。

从定义中也可以看出,softmax函数与logistic函数有着紧密的的联系,对于logistic函数,定义如下:

最显著的区别:logistic 回归是针对二分类问题,softmax则是针对多分类问题,logistic可看成softmax的特例。

二分类器(two-class classifier)要最大化数据集的似然值等价于将每个数据点的线性回归输出推向正无穷(类1)和负无穷(类2)。逻辑回归的损失方程(Loss Function):

对于给定的测试输入 ,假如想用假设函数针对每一个类别j估算出概率值 。即估计  的每一种分类结果出现的概率。因此,假设函数将要输出一个  维的向量(向量元素的和为1)来表示这  个估计的概率值。 假设函数  形式如下:

其中  是模型的参数。请注意 这一项对概率分布进行归一化,使得所有概率之和为 1 。

其代价函数可以写为:

其中,1{真}=1,1{假}=0.

12.23补充:

关于代价函数,softmax用的是cross-entropy loss,信息论中有个重要的概念叫做交叉熵cross-entropy, 公式是:

香农熵的公式:


交叉熵与 loss的联系,设p(x)代表的是真实的概率分布,那么可以看出上式是概率分布为的相对熵公式,是对第i个类别概率的估计。使用损失函数可以描述真实分布于估计分布的交叉熵。交叉熵可以看做熵与相对熵之和:,这里的相对熵也叫作kl距离,在信息论中,D(P||Q)表示当用概率分布Q来拟合真实分布P时,产生的信息损耗,其中P表示真实分布,Q表示P的拟合分布。又因为真实值的熵是不变的,交叉熵也描述预测结果与真实结果的相似性,用来做损失函数可保证预测值符合真实值。

softmax的应用:

在人工神经网络(ANN)中,Softmax常被用作输出层的激活函数。其中,表示第L层(通常是最后一层)第j个神经元的输入,表示第L层第j个神经元的输出,表示自然常数。注意看,表示了第L层所有神经元的输入之和。

不仅是因为它的效果好,而且它使得ANN的输出值更易于理解,即神经元的输出值越大,则该神经元对应的类别是真实类别的可能性更高。

12.17补充:softmax求导

由公式(1)可知,softmax函数仅与分类有关:

其负对数似然函数为:

对该似然函数求导,得:

注:参考博客里上面求导公式有误,已更正。

对于①条件:先Copy一下Softmax的结果(即prob_data)到bottom_diff,再对k位置的unit减去1
对于②条件:直接Copy一下Softmax的结果(即prob_data)到bottom_diff
对于③条件:找到ignore位置的unit,强行置为0。

softmax函数理解相关推荐

  1. 深度学习softmax函数理解

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

  2. 一分钟理解softmax函数(超简单)

    做过多分类任务的同学一定都知道softmax函数.softmax函数,又称归一化指数函数.它是二分类函数sigmoid在多分类上的推广,目的是将多分类的结果以概率的形式展现出来.下图展示了softma ...

  3. 通俗理解归一化指数函数—Softmax函数

    在数学,尤其是概率论和相关领域中,归一化指数函数,或称Softmax函数,是逻辑函数的一种推广.它能将一个含任意实数的K维向量z"压缩"到另一个K维实向量σ(z)中,使得每一个元素 ...

  4. 对Softmax函数的理解

    目录 1.名字理解 2.优点 3.缺点 4.应用 5.总结 1.名字理解 1)软最大,相较于硬最大来说.硬最大非黑即白,只能输出一个最大值:软最大输出的是--每个类别最大的概率分布. 2)eg就像一篇 ...

  5. softmax函数上溢出和下溢出(转载+自己理解)

    <Deep Learning>(Ian Goodfellow & Yoshua Bengio & Aaron Courville)第四章「数值计算」中,谈到了上溢出(ove ...

  6. 干货 | 浅谈 Softmax 函数

    点击上方"视学算法",马上关注 真爱,请设置"星标"或点个"在看" 来自 | 知乎   作者 | LinT 链接丨https://zhuan ...

  7. Softmax函数详解与推导

    原文:https://www.cnblogs.com/zongfa/p/8971213.html Softmax函数详解与推导 一.softmax函数 softmax用于多分类过程中,它将多个神经元的 ...

  8. softmax函数为什么叫softmax?

    之前一直很奇怪这个名字,本身是做一个类似归一化的动作,把整体一个vector"压缩"成一个符合概率分布的样子,为什么叫softmax呢? 今天查了下,看了下部分答案,大概写一下理解 ...

  9. [Machine Learning] logistic函数和softmax函数

    简单总结一下机器学习最常见的两个函数,一个是logistic函数,另一个是softmax函数,若有不足之处,希望大家可以帮忙指正.本文首先分别介绍logistic函数和softmax函数的定义和应用, ...

最新文章

  1. 第32章:MongoDB-索引--Capped固定集合
  2. linux常用命令记录
  3. 云炬随笔20161012
  4. sqldeveloper mysql迁移_通过SQL Developer工具将MySQL数据库内容迁移至Oracle的步骤
  5. #并行优化# 容错算法 (Fault Tolerant)
  6. flask response Content-Type
  7. MySQL的replace方法
  8. 在 Mac OS X 下启用超级帐户(root)
  9. Servlet面试题汇总
  10. java——编程案例
  11. 时域采样定理和频域采样定理
  12. 微信订阅号之——网页授权
  13. vmware下ubuntu从图形界面切换到控制台的快捷键
  14. 实验室主机Ubuntu远程控制+自动开关机
  15. 树莓派使用pip安装cython
  16. 青山绿水一枝花...
  17. 局部钩子能防全局钩子吗_这个英雄还值得我们去练吗?百里玄策打法难点解析...
  18. 英特尔 QSV 在 FFMPEG 中的使用(Linux)
  19. 一个成功的BI项目实施需要注意哪些? 1
  20. 高级数据结构1—初识树状数组—快速求得前缀和和修改某一元素值

热门文章

  1. Spring Boot中使用RabbitMQ
  2. 基于Fixed定位的框选功能
  3. Android数据存储之SQLite的操作
  4. 在虚拟机安装OpenSuse Tumbleweed
  5. VC++ AfxBeginThread 与 CreateThread 的区别
  6. 常用API-String、包装类、System
  7. PHP二分法查找,MYSQL索引即为用了此查找
  8. Azure Backup和Azure Site Recovery的区别是什么
  9. 系统时间大全,待整理
  10. 看oracle 的数据库位数