该节课中提到了一种叫作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。

转自:https://blog.csdn.net/liusandian/article/details/80370214

deep_learning_Softmax()的更多相关文章

随机推荐

  1. list中包含多个相同值时,List中的indexOf(Object o)方法的返回值

    查一下Java API,List下的indexOf(Object o)方法的返回值为list列表中首个元素出现位置的索引,找不到时返回-1

  2. Swift3.0添加桥接文件

    注意是在target下不是project !!!纠结了好久表示...... 都这里一直编译错误,找不到该桥接文件,这里也是纠结了好久......最后原因是不能使用下划线就可以了....<表示这是 ...

  3. php获取服务器ip方法

    public static function getServerIp() { if(!empty($_SERVER['SERVER_ADDR'])) { return $_SERVER['SERVER ...

  4. go http server 编程

    第一种:最简单的 package main import ( "fmt" "log" "net/http" ) func myHandler ...

  5. C#中的索引器(Indexers)

    前两天刚刚学习完了属性,这两天又搂完了索引器,发现两者非常的相似,但是相似之外还有一些不同之处.今天就来总结一下索引器--Indexers 索引器的作用及格式 索引器的作用就是能够使类或者结构体的实例 ...

  6. 数据结构与算法-stack

    栈的本质是一种线性表,特殊的一种线性表 基本概念 概念 栈是一种特殊的线性表 栈仅能在线性表的一端进行操作 栈顶(Top):允许操作的一端 栈底(Bottom):不允许操作的一端 stack是一种线性 ...

  7. 查看vue-cli3的webpack的配置信息

    参考链接:https://www.cnblogs.com/cag2050/p/10523096.html

  8. TS问题:属性'filter'在类型'Vue'上不存在

    在编译时候报‘Property 'filter' does not exist on type 'Element'.’的错,但是在浏览器中运行正常.如下图: 经过不懈的努力,终于找到了原因.是因为ts ...

  9. [转帖]Linux 下实践 VxLAN:虚拟机和 Docker 场景

    Linux 下实践 VxLAN:虚拟机和 Docker 场景 https://www.cnblogs.com/bakari/p/11264520.html 实践了下 没问题 作者写的很perfect ...

  10. 查找担保圈-step7-提取未被包含过组的成员,得出结论

    USE [test] GO /****** Object: StoredProcedure [dbo].[p05_get_group_member_cleared] Script Date: 2019 ...