在人工神经网络(ANN)中,Softmax通常被用作输出层的激活函数。这不仅是因为它的效果好,而且因为它使得ANN的输出值更易于理解。同时,softmax配合log似然代价函数,其训练效果也要比采用二次代价函数的方式好。

【转】http://blog.csdn.net/u014313009/article/details/51045303

1. softmax函数及其求导

softmax的函数公式如下:

其中,表示第L层(通常是最后一层)第j个神经元的输入,表示第L层第j个神经元的输出,表示自然常数。注意看,表示了第L层所有神经元的输入之和。

softmax函数最明显的特点在于:它把每个神经元的输入占当前层所有神经元输入之和的比值,当作该神经元的输出。这使得输出更容易被解释:神经元的输出值越大,则该神经元对应的类别是真实类别的可能性更高。

另外,softmax不仅把神经元输出构造成概率分布,而且还起到了归一化的作用,适用于很多需要进行归一化处理的分类问题。

由于softmax在ANN算法中的求导结果比较特别,分为两种情况。希望能帮助到正在学习此类算法的朋友们。求导过程如下所示:

2. softmax配合log似然代价函数训练ANN


在上一篇博文“交叉熵代价函数”中讲到,二次代价函数在训练ANN时可能会导致训练速度变慢的问题。那就是,初始的输出值离真实值越远,训练速度就越慢。这个问题可以通过采用交叉熵代价函数来解决。其实,这个问题也可以采用另外一种方法解决,那就是采用softmax激活函数,并采用log似然代价函数(log-likelihood cost function)来解决。

log似然代价函数的公式为:

其中,表示第k个神经元的输出值,表示第k个神经元对应的真实值,取值为0或1。

我们来简单理解一下这个代价函数的含义。在ANN中输入一个样本,那么只有一个神经元对应了该样本的正确类别;若这个神经元输出的概率值越高,则按照以上的代价函数公式,其产生的代价就越小;反之,则产生的代价就越高。

为了检验softmax和这个代价函数也可以解决上述所说的训练速度变慢问题,接下来的重点就是推导ANN的权重w和偏置b的梯度公式。以偏置b为例:

同理可得:

从上述梯度公式可知,softmax函数配合log似然代价函数可以很好地训练ANN,不存在学习速度变慢的问题。

softmax的log似然代价函数(公式求导)相关推荐

  1. PyTorch学习笔记——softmax和log_softmax的区别、CrossEntropyLoss() 与 NLLLoss() 的区别、log似然代价函数...

    1.softmax 函数 Softmax(x) 也是一个 non-linearity, 但它的特殊之处在于它通常是网络中一次操作. 这是因为它接受了一个实数向量并返回一个概率分布.其定义如下. 定义 ...

  2. 常见的神经网络详细公式求导总结!

    Datawhale干货 作者:Criss,来源:机器学习与生成对抗网络 derivative of softmax 1.1 derivative of softmax 一般来说,分类模型的最后一层都是 ...

  3. 机器学习-算法-有监督学习:EM(最大期望值算法)<=> MLE(最大似然估计法)【关系类似“梯度下降法”<=>“直接求导法”】【EM“梯度下降”:先初始化一个随机值,然后通过迭代不断靠近真实值】

    机器学习-算法-有监督学习:EM(最大期望值算法)<=> MLE(最大似然估计法)[关系类似"梯度下降法"<=>"直接求导法"][EM& ...

  4. 利用MATLAB进行求导

    导数是微积分中的一个重要的概念,又称为导函数值.在数学中,我们经常会利用导数来求切线.极值.拐点.渐近线等.在解决数学问题中,经常需要用到导数.MATLAB中提供了diff函数进行求导.本文对于MAT ...

  5. 吴恩达-深度学习-各个变量的求导

    这是关于损失函数对各变量的求导 是单样本实例的 在这里 是假设样本有两个特征值 那么对应的有两个权重 但是偏差是一样的 所以关于z的函数则如上图所示 关于da/dz的求导 是因为 a = σ(z)= ...

  6. 高数【求导】--猴博士爱讲课

    第三课<求导> 1/5 照公式求导 常见的求导 2/5 隐函数求导 例 1. 若 y = y ( x ) 由 y 3 − x 2 + y = 0 确定,则 y ′ = , y ′ ′ = ...

  7. 看懂SoftMax回归算法之代价函数求偏导的数学推导——机器学习笔记(12)

    1.学习背景 这两天学习softmax逻辑回归算法,然后卡在了其代价函数求偏导处,"百科"中说,softmax的代价函数如下: 经过求导,得到梯度公式如下: 作为一个准数学专业毕业 ...

  8. 交叉熵代价函数(损失函数)及其求导推导

    转自:http://blog.csdn.net/jasonzzj/article/details/52017438 前言 交叉熵损失函数 交叉熵损失函数的求导 前言 说明:本文只讨论Logistic回 ...

  9. Softmax Regression损失函数的求导

    softmax regression 代价函数: J(θ)=−1m[∑i=1m∑j=1k1{y(i)=j}logeθjTX(i)∑l=1keθlTX(i)]J(\theta) = -\frac{1}{ ...

最新文章

  1. 使用Git制作和管理Patch
  2. 数据库oracle 笔试,数据库oracle笔试
  3. oracle vertica性能对比,测试Vertica性能
  4. ROS学习——2编写简单的发布者和订阅者
  5. Kickstart+HTTP+DHCP+TFTP全自动批量安装部署Linux系统
  6. TortoiseSVN and TortoiseGit 版本控制图标不见了
  7. Postfix 电子邮件系统精要
  8. 一年Java的阿里电话面试全纪录
  9. IP数据报之首部长度解析
  10. 现货白银如何计算盈亏
  11. 基于深度相机的下肢外骨骼的自适应梯级步态生成方法
  12. 杂篇:随笔编程杂谈录--《隆中对》
  13. OpenStack newton版安装教程(4)——Neutron部分
  14. 嘉为蓝鲸CPack制品库正式发布,以制品之力打破研运界限
  15. SpringSecurity-12-PasswordEncoder密码加密简介
  16. 洛谷1268树的重量(树)
  17. java中怎么调用对数函数_Java对数函数及其运算方法
  18. tableau中的fixed函数和exclude函数傻傻分不清?
  19. AG7120与AG7220做HDMI信号延长放大器驱动方案讲解|AG7120与AG7220设计HDMI信号延长放大器电路参考
  20. “玻璃大王”曹德旺捐资100亿办大学!幼年失学的他要打造理工科研究型大学...

热门文章

  1. 中小企业适合使用什么企业管理系统?
  2. 华为matebook x pro蓝屏和拆机更换固态硬盘
  3. ctf中MD5绕过详细总结及例题[BJDCTF2020]Easy MD5
  4. 20165217叶佺学习基础和C语言基础调查
  5. squirrel关系库_[ssc] 数据库管理工具——SQuirreL SQL Client使用入门
  6. 加码跨境物流 iPayLinks艾贝盈与乐鱼跨境达成合作
  7. 网络抓包工具wpe,封包助手这两软件都还不错 HTTP Debugger Lite
  8. 【手把手教你】使用Python对股价的Heikin Ashi蜡烛图进行可视化
  9. pandas读取股票CSV文件并用mplfinance绘制蜡烛图
  10. 自考计算机微型计算机阶段储存系统,自考《微型计算机及其接口技术》的学习方法...