交叉熵损失函数

交叉熵损失是分类任务中的常用损失函数,但是是否注意到二分类与多分类情况下的交叉熵形式上的不同呢?

两种形式

这两个都是交叉熵损失函数,但是看起来长的却有天壤之别。为什么同是交叉熵损失函数,长的却不一样?

因为这两个交叉熵损失函数对应不同的最后一层的输出:
第一个对应的最后一层是softmax,第二个对应的最后一层是sigmoid

先来看下信息论中交叉熵的形式

交叉熵是用来描述两个分布的距离的,神经网络训练的目的就是使 g(x) 逼近 p(x)。

softmax层的交叉熵

(x)是什么呢?就是最后一层的输出 y 。
p(x)是什么呢?就是我们的one-hot标签。我们带入交叉熵的定义中算一下,就会得到第一个式子:

其中 j 代表样本 x 属于第 j 类。

sigmoid作为输出的交叉熵

sigmoid作为最后一层输出的话,那就不能吧最后一层的输出看作成一个分布了,因为加起来不为1。

现在应该将最后一层的每个神经元看作一个分布,对应的 target 属于二项分布(target的值代表是这个类的概率),那么第 i 个神经元交叉熵为:

所以最后一层总的交叉熵损失函数是:

但是在二分类中,逻辑回归的交叉熵损失函数同样具有两种形式,其原因是由类别取值所导致的。

  1. 类别取值为0和1

    1. 逻辑回归中我们给定的假设函数(目标函数)是给定x的条件下,预测其属于类别1的概率,线性回归中的目标函数是:

      其中z是一个实数值,显然不能直接作为逻辑分类的预测值,因此想办法将其映射为概率值,引入了sigmoid函数,那么逻辑回归的假设函数就是:

    2. 有了假设函数,我们先尝试借鉴线性回归的方式定义损失函数:

      但是发现这样的损失函数并不是一个严格的凸函数,容易陷入局部最优解,因此摒弃该损失函数。

      由于我们引入的sigmoid可视作是类别为1的后验概率(说白了,就是给一个x,那么可以通过sigmoid算出来该样本点属于类别1的概率),所以可以得到类别为1以及类别为0时的条件概率为:

      上面两式合并在一起:

    3. MLE

      ok,现在我们得到了逻辑回归的分布函数(即最终的目标函数),那么我们现在为了唯一确定最优的模型,需要对模型中的参数进行估计。引入极大似然估计法,回忆一下MLE的目标,就是通过极大化已出现样本的联合概率来求解出我们认为最优的参数。

      根据极大似然法以及联合概率求解,得到:

      为了简化运算,我们对上面这个等式的两边取对数:

      目标就是找到使得上式最大的参数w,没错,对上式加上负号,就得到了逻辑回归的代价函数:

    类别为 1 和 -1 的情况

    首先回忆sigmoid的特殊性质:

    如果 y = +1 时

    如果 y = -1 时:

    因为 y 取值为 +1 或 -1,可以把 y 值带入,将上面两个式子整合到一起:

    引入MLE:

    将sigmoid形式代入:

    那么就推导出该情况下的交叉熵的损失函数形式了。

    如果有N个样本,那么:

原文地址:https://www.cnblogs.com/lijie-blog/p/10166002.html

时间: 2024-11-08 07:58:22

交叉熵损失函数的相关文章

谈谈交叉熵损失函数

一.交叉熵损失函数形式 现在给出三种交叉熵损失函数的形式,来思考下分别表示的的什么含义. --式子1 --式子2 --式子3 解释下符号,m为样本的个数,C为类别个数.上面三个式子都可以作为神经网络的损失函数作为训练,那么区别是什么? ■1>式子1,用于那些类别之间互斥(如:一张图片中只能保护猫或者狗的其中一个)的单任务分类中.连接的 softmax层之后的概率分布. tensorflow中的函数为:  tf.nn.softmax_cross_entropy_with_logits ■2>式子

均方误差和交叉熵损失函数比较

一.前言 在做神经网络的训练学习过程中,一开始,经常是喜欢用二次代价函数来做损失函数,因为比较通俗易懂,后面在大部分的项目实践中却很少用到二次代价函数作为损失函数,而是用交叉熵作为损失函数.为什么?一直在思考这个问题,这两者有什么区别,那个更好?下面通过数学的角度来解释下. 思考:我们希望我们损失函数能够做到,当我们预测的值跟目标值越远时,在修改参数时候,减去一个更大的值,做到更加快速的下降. 二.两种代价函数的表达式 二次代价损失函数: 交叉熵损失函数: 针对二分类来说,其中: ai第Xi个样

大白话5分钟带你走进人工智能-第十八节逻辑回归之交叉熵损失函数梯度求解过程(3)

                                               第十八节逻辑回归之交叉熵损失函数梯度求解过程(3) 上一节中,我们讲解了交叉熵损失函数的概念,目标是要找到使得损失函数最小的那组θ,也就是l(θ)最大,即预测出来的结果在训练集上全部正确的概率最大.那我们怎么样找到我们的最优解呢?上节中提出用梯度下降法求解,本节的话我们对其具体细节展开. 先来看下我们用梯度下降求解最优解,想要通过梯度下降优化L(θ)到最小值需要几步? 第一步,随机产生w,随机到0附近会

softmax交叉熵损失函数求导

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

吴裕雄--天生自然 pythonTensorFlow自然语言处理:交叉熵损失函数

import tensorflow as tf # 1. sparse_softmax_cross_entropy_with_logits样例. # 假设词汇表的大小为3, 语料包含两个单词"2 0" word_labels = tf.constant([2, 0]) # 假设模型对两个单词预测时,产生的logit分别是[2.0, -1.0, 3.0]和[1.0, 0.0, -0.5] predict_logits = tf.constant([[2.0, -1.0, 3.0], [1

交叉熵损失函数来源及求导推导

记录一下,方便复习 总结: 原文地址:https://www.cnblogs.com/zhibei/p/12334238.html

交叉熵

http://www.cnblogs.com/ljy2013/p/6432269.html 作者:Noriko Oshima链接:https://www.zhihu.com/question/41252833/answer/108777563来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 熵的本质是香农信息量()的期望. 现有关于样本集的2个概率分布p和q,其中p为真实分布,q非真实分布.按照真实分布p来衡量识别一个样本的所需要的编码长度的期望(即平均编码长度)为

如何通俗的解释交叉熵与相对熵

[From] https://www.zhihu.com/question/41252833/answer/108777563 熵的本质是香农信息量()的期望. 现有关于样本集的2个概率分布p和q,其中p为真实分布,q非真实分布.按照真实分布p来衡量识别一个样本的所需要的编码长度的期望(即平均编码长度)为:H(p)=.如果使用错误分布q来表示来自真实分布p的平均编码长度,则应该是:H(p,q)=.因为用q来编码的样本来自分布p,所以期望H(p,q)中概率是p(i).H(p,q)我们称之为"交叉熵

交叉熵 相关链接

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