Softmax 是神经网络中另一种输出层函数,计算输出层的值。主要用于神经网络最后一层,作为输出层进行多分类,是Logistic二分类的推广。两者各有特点,也有联系。本文主要介绍Softmax函数,然后与sigmoid做比较。这里笔者就偷个小赖,大部分的内容请参阅大牛的总结:Softmax回归内容。在Softmax回归内容中详细介绍了Softmax和sigmoid函数,本文在此基础上,加上一点解释,用另一种方式来介绍Softmax,虽没有大牛们总结的好,但所谓条条大路通罗马,也有异曲同工之处。下面开始分析,请先阅读Softmax回归内容。

1 Softmax

在Softmax回归内容中,logistic回归代价函数为:
Softmax代价函数与logistic 代价函数在形式上非常类似,只是在Softmax损失函数中对类标记的   个可能值进行了累加。注意在Softmax回归中将   分类为类别   的概率为:
.
对于   的最小化问题,目前还没有闭式解法。因此,我们使用迭代的优化算法(例如梯度下降法,或 L-BFGS)。经过求导,我们得到梯度公式如下:
 【注:这里解释一下,上面梯度公式的推导过程:对logP关于θj求导,这里的P为:.
下面将.即为p:
(1)式中将log看为ln函数;(2)的求导利用分数求导法则求导在将p换入,将1换为,因为当y=j时,即为1。】

2 本文讲解Softmax

(1)Softmax

第一步:与sigmoid函数相同的是,
第二步:
其中k表示L层的神经元个数,整个式子可以理解为某个神经元的函数值占该层神经元总函数值得比例,类似于概率。
这与sigmoid中不同,sigmoid中激活函数a=可以看出:
即Softmax的输出的每个值都是>=0,并且其总和为1,所以可以认为其为概率分布,这与sigmoid也是不同的,这就是Softmax回归内容中是选取Softmax还是选取sigmoid的区别的原因。

(2)Softmax学习慢与否?

要知道Softmax是否存在学习慢的问题,首先先定义Softmax的cost函数:
若a趋于1时,C为0,反之,若a小,则C会大,所以该函数能作为代价函数。
看学习是否快慢,就要看偏导数:
是否小。【注:这在博客神经网络三:浅析神经网络backpropagation算法中的代价函数中有解释,不清楚的可参阅】。求得偏导为:
这里就不仔细介绍其求解过程了,与 1 Softmax 中的求解相似,以w的求解为例,简单解释其过程:C对w求导,(1)C对a求,a对w求;(2)a对w求导,先对z求,z对w求。
求得的偏导对比于cross-entropy中的导数【注:参阅神经网络三:浅析神经网络backpropagation算法中的代价函数】:
基本上是一样的,所以Softmax具有和cross-entropy相同的优点,就是不会出现学习慢的问题。

神经网络四:Softmax以及与Sigmoid的关系相关推荐

  1. 简单探究神经网络中权重、偏置维度的关系

    利用PyTorch的tensor和autograd实现一个简单的神经网络,探究神经网络中权重.偏置维度的关系 简单神经网络的分析和实现 本次目标 项目环境 神经网络手绘图 代码实现 简单神经网络的分析 ...

  2. 卷积神经网络四种卷积类型

    卷积神经网络四种卷积类型 https://www.toutiao.com/a6631333810287936013/ 一般卷积 首先,我们需要就定义卷积层的一些参数达成一致. 卷积核大小(Kernel ...

  3. 【Python-ML】神经网络激励函数-Softmax

    # -*- coding: utf-8 -*- ''' Created on 2018年1月27日 @author: Jason.F @summary: 前馈神经网络激励函数-softmax函数,评估 ...

  4. c语言两点间距离_数字图像处理|P5第二章 数字图像基础第四节像素间的基本关系...

    第四节 像素间的基本关系 图像由像素组成,像素在图像空间上按规律排列,相互之间有一定的联系. 一.像素的邻域与邻接    1.邻域 在一定意义下,与某一像素相邻的像素的集合. 反映像素间的空间关系. ...

  5. 【神经网络量化】——非线性激活函数sigmoid,tanh的量化推理

    sigmoid, tanh, 量化推理 简介 在嵌入式设备,ARM的M系列,或者存硬件实现网络的推理,这时就需要所有的运算都需要用int型(int8,int15)或者自定义的数据类型.这里包括常见的c ...

  6. 机器学习、人工智能、深度神经网络和神经网络,四个概念之间有什么关系?

    这些概念大家经常碰到,可能会有一些混淆,我这里解释下. 人工智能,顾名思义ArtificialIntelligence,缩写是大家熟知的AI.是让计算机具备人类拥有的能力--感知.学习.记忆.推理.决 ...

  7. 使用python构建三层神经网络、softmax函数

    [机器学习]使用python手写三层神经网络 输入层到第一层的传递表示 第一层到第二层的传递表示 第二层到第三层的传递表示 全过程传递表示代码 输入层到第一层的传递表示 首先看输入层到第一层的第一个神 ...

  8. 卷积神经网络四:人脸识别和风格变迁

    1 什么是人脸识别 现在的人脸识别包含两个部分,人脸识别和活体检测.后一项技术确认你是一个活人.事实上,活体检测可以使用监督学习来实现,去预测是不是一个真人,这个方面我就不多说了.我主要想讲的是,如何 ...

  9. Softmax和Cross-entropy是什么关系?

    公众号关注 "视学算法" 设为 "星标",DLCV消息即可送达! 来自 | 知乎   作者 | 董鑫 https://www.zhihu.com/questio ...

最新文章

  1. Leetcode - 144. Binary Tree Preorder Traversal (层次遍历)
  2. LeetCode 391. 完美矩形(set检查顶点+面积检查)
  3. 华为 招聘 状态 查看_英特尔放弃5G芯片研发:三星受益;爱立信2019年Q1净利润约2.51亿美元;华为也将要与高通和解;天津首个5G电话成功打通...
  4. 建筑公司木地板WordPress企业网站模板
  5. 如何用tf2.0训练中文聊天机器人chatbot
  6. python反转一个三位数_反转Python整数的位
  7. 华为手机USB调试与Log
  8. 随机森林+python代码实现
  9. 失意不灰心得意莫忘形
  10. maven的pom文件引入依赖报错:提示无法处理 Cannot resolve...
  11. spring源码构建时缺失spring-cglib-repack-3.2.4.jar和spring-objenesis-repack-2.4.jar
  12. 深入探索正交投影变换
  13. html网页设计期末大作业_网页设计平时作业(诗词网页 4页)
  14. autocad中的diesel语言详解
  15. 记录第一次出差的经历
  16. 趋易避难,人之本性!
  17. 重启windows资源管理器
  18. oracle+xquery函数,oracle_xquery介绍.doc
  19. 案例解析 | 广东自由流收费稽核方案,AI稽核新模式
  20. 如何查看python源代码_查看“使用python制造渗流模型”的源代码

热门文章

  1. 产品使用说明书小程序开发制作说明
  2. js对json、xml字符串格式化(美化增强可读性)
  3. python idle快捷键
  4. springboot毕设项目交通违章管理系统58ig4(java+VUE+Mybatis+Maven+Mysql)
  5. png图片损坏打不开如何修复?
  6. 【项目总结】基于SpringBoot+Ansj分词+正倒排索引的Java文档搜索引擎项目总结
  7. 基于java的中文分词工具ANSJ
  8. 让div在body中居中显示
  9. 程序员必备5个编程自学网站,你都用到过吗?
  10. carla学习笔记(八)