Softmax函数与交叉熵

在Logistic regression二分类问题中,我们可以使用sigmoid函数将输入Wx+b映射到(0,1)区间中,从而得到属于某个类别的概率。将这个问题进行泛化,推广到多分类问题中,我们可以使用softmax函数,对输出的值归一化为概率值

这里假设在进入softmax函数之前,已经有模型输出C值,其中C是要预测的类别数,模型可以是全连接网络的输出aa,其输出个数为C,即输出为:

所以对每个样本,它属于类别i的概率为:

通过上式可以保证 ,即属于各个类别的概率和为1

softmax函数进行求导,即求: ,第i项的输出对第j项输入的偏导。代入softmax函数表达式,可以得到:

求导规则:对于  ,导数为:

所以在我们这个例子中,

上面两个式子只是代表直接进行替换,而非真的等式。 ,(即g(x)= 进行求导),要分情况讨论:

  1. 如果i=j,则求导结果为
  2. 如果i≠j,则求导结果为0

再来看 求导,结果为

所以,当i=j时:(其中,为了方便,令 )

当i≠j时:

标红下,这俩公式很重要:

原文地址:https://www.cnblogs.com/wqbin/p/11070647.html

时间: 2024-10-06 04:02:49

Softmax函数与交叉熵的相关文章

交叉熵损失函数

交叉熵损失是分类任务中的常用损失函数,但是是否注意到二分类与多分类情况下的交叉熵形式上的不同呢? 两种形式 这两个都是交叉熵损失函数,但是看起来长的却有天壤之别.为什么同是交叉熵损失函数,长的却不一样? 因为这两个交叉熵损失函数对应不同的最后一层的输出:第一个对应的最后一层是softmax,第二个对应的最后一层是sigmoid 先来看下信息论中交叉熵的形式 交叉熵是用来描述两个分布的距离的,神经网络训练的目的就是使 g(x) 逼近 p(x). softmax层的交叉熵 (x)是什么呢?就是最后一

神经网络代价函数与交叉熵

在此我们以MSE作为代价函数: 其中, C表示代价 函数 ,x表示样本, y表示实际值, 表示实际值, 表示实际值, a表示输出值, 表示输出值, n表示样本的总数.为简单起见 表示样本的总数.为简单起见 表示样本的总数. a=σ(z), z=∑W j*X j+bσ() 是激活函数 使用梯度下降法(Gradient descent)来调整权值参数的大小,权值w和偏置b的梯度推导如下: 其中,z表示神经元的输入,σ表示激活函数.w和b的梯度跟激活函数的梯度成正比,激活函数的梯度越大,w和b的大小调

Sigmoid函数与Softmax函数的理解

1. Sigmod 函数 1.1 函数性质以及优点 其实logistic函数也就是经常说的sigmoid函数,它的几何形状也就是一条sigmoid曲线(S型曲线). 其中z是一个线性组合,比如z可以等于:b + w1*x1 + w2*x2.通过代入很大的正数或很小的负数到g(z)函数中可知,其结果趋近于0或1 A logistic function or logistic curve is a common “S” shape (sigmoid curve). 也就是说,sigmoid函数的功能

softmax交叉熵损失函数求导

来源:https://www.jianshu.com/p/c02a1fbffad6 简单易懂的softmax交叉熵损失函数求导 来写一个softmax求导的推导过程,不仅可以给自己理清思路,还可以造福大众,岂不美哉~ softmax经常被添加在分类任务的神经网络中的输出层,神经网络的反向传播中关键的步骤就是求导,从这个过程也可以更深刻地理解反向传播的过程,还可以对梯度传播的问题有更多的思考. softmax 函数 softmax(柔性最大值)函数,一般在神经网络中, softmax可以作为分类任

softmax、交叉熵

Softmax是用于分类过程,用来实现多分类的 它把一些输出的神经元映射到(0-1)之间的实数,并且归一化保证和为1,从而使得多分类的概率之和也刚好为1. Softmax可以分为soft和max,max也就是最大值,假设有两个变量a,b.如果a>b,则max为a,反之为b.那么在分类问题里面,如果只有max, 输出的分类结果只有a或者b,是个非黑即白的结果.但是在现实情况下,我们希望输出的是取到某个分类的概率,或者说, 我们希望分值大的那一项被经常取到,而分值较小的那一项也有一定的概率偶尔被取到

2016.3.24 交叉熵

交叉熵 俗话说,千里之行,始于足下,在我踢球的时候,教练总是让我们练习基本功,其实感觉基本功才是重点,如果基本功不好,那么再怎么厉害的战术都不能够执行出来,基本功是发挥的基本和关键,对于网络来说,基本的感觉或者说基本的对于网络的数学感觉也是基本功. 那么对于一个简单的feedforward的普通的全链接的神经网络什么是基本功呢?我认为首先需要对激活函数有一个感觉,尤其是对于sigmoid,这是非线性的一个里程碑式的函数.对于这个重要问题,一定要深入理解各项基本特性.简单描述一下,这个函数再0附近

交叉熵代价函数

本文是<Neural networks and deep learning>概览 中第三章的一部分,讲machine learning算法中用得很多的交叉熵代价函数. 1.从方差代价函数说起 代价函数经常用方差代价函数(即采用均方误差MSE),比如对于一个神经元(单输入单输出,sigmoid函数),定义其代价函数为: 其中y是我们期望的输出,a为神经元的实际输出[ a=σ(z), where z=wx+b ]. 在训练神经网络过程中,我们通过梯度下降算法来更新w和b,因此需要计算代价函数对w和

最大似然估计 (Maximum Likelihood Estimation), 交叉熵 (Cross Entropy) 与深度神经网络

最近在看深度学习的"花书" (也就是Ian Goodfellow那本了),第五章机器学习基础部分的解释很精华,对比PRML少了很多复杂的推理,比较适合闲暇的时候翻开看看.今天准备写一写很多童鞋们w未必完全理解的最大似然估计的部分. 单纯从原理上来说,最大似然估计并不是一个非常难以理解的东西.最大似然估计不过就是评估模型好坏的方式,它是很多种不同评估方式中的一种.未来准备写一写最大似然估计与它的好朋友们,比如说贝叶斯估计 (Beyasian Estimation), 最大后验估计(Max

交叉熵 相关链接

TensorFlow四种Cross Entropy算法实现和应用 对比两个函数tf.nn.softmax_cross_entropy_with_logits和tf.nn.sparse_softmax_cross_entropy_with_logits 从神经网络视角看均方误差与交叉熵作为损失函数时的共同点 交叉熵代价函数 交叉熵代价函数(损失函数)及其求导推导 简单易懂的softmax交叉熵损失函数求导 如何通俗的解释交叉熵与相对熵? https://www.cnblogs.com/virede