为什么使用交叉熵代替二次代价函数_Softmax回归与交叉熵损失的理解

0、sigmoid、softmax和交叉熵损失函数的概念理解

sigmoid、softmax和交叉熵损失函数

1、使用场景

在二分类问题中,神经网络输出层只有一个神经元,表示预测输出

是正类
的概率
,
:目标值
预测值

2、Softmax 回归

2.1 什么是 Softmax?

  • softmax 的作用是把 一个序列,变成概率。

为什么使用交叉熵代替二次代价函数_Softmax回归与交叉熵损失的理解_第1张图片

它能够保证:

  • 1、所有的值都是
    之间的(因为概率必须是
  • 2、所有的值加起来等于
  • 3、从概率的角度解释 softmax 的话,就是

2.2 在多分类中的应用

对于多分类问题,用 N表示种类个数,那么神经网络的输出层的神经元个数必须为

, 每个神经元的输出依次对应属于N个类别当中某个具体类别的概率,即
图示理解

为什么使用交叉熵代替二次代价函数_Softmax回归与交叉熵损失的理解_第2张图片

输出层即:

​​,Z的输出值个数为类别个数

需要对所有的输出结果进行一下softmax公式计算:

,我们来看一下计算案例:

为什么使用交叉熵代替二次代价函数_Softmax回归与交叉熵损失的理解_第3张图片
图示理解

为什么使用交叉熵代替二次代价函数_Softmax回归与交叉熵损失的理解_第4张图片

3、交叉熵(Cross-Entropy)损失

对于softmax回归(逻辑回归代价函数的推广,都可称之为交叉熵损失,只是一个用于二分类一个同于多分类),它的代价函数公式为:

(一个样本)

总损失函数可以记为

(多个样本)

逻辑回归的损失也可以这样表示,

示意图

为什么使用交叉熵代替二次代价函数_Softmax回归与交叉熵损失的理解_第5张图片

所以与softmax是一样的,一个二分类一个多分类衡量。

对于真实值会进行一个one-hot编码,每一个样本的所属类别都会在某个类别位置上标记。

为什么使用交叉熵代替二次代价函数_Softmax回归与交叉熵损失的理解_第6张图片

上图改样本的损失值为:

注:关于one_hot编码

为什么使用交叉熵代替二次代价函数_Softmax回归与交叉熵损失的理解_第7张图片

3、Softmax 和 Cross-Entropy(交叉熵) 的关系

  • 先说结论: softmax 和 cross-entropy 本来太大的关系,只是把两个放在一起实现的话,算起来更快,也更数值稳定。
  • cross-entropy 不是机器学习独有的概念,本质上是用来衡量两个概率分布的相似性的。简单理解(只是简单理解!)就是这样: 如果有两组变量:

1ac4b18a74606517c300eea6e03a6ec5.png
  • 如果你直接求 L2 距离,两个距离就很大了,但是你对这俩做 cross entropy,那么距离就是0。所以 cross-entropy 其实是更“灵活”一些。

那么我们知道了,cross entropy 是用来衡量两个概率分布之间的距离的,softmax能把一切转换成概率分布,那么自然二者经常在一起使用。但是你只需要简单推导一下,就会发现,softmax + cross entropy 就好像“往东走五米,再往西走十米”,我们为什么不直接“往西走五米”呢?cross entropy 的公式是

4、循环神经网络中的交叉熵损失

总损失定义:

  • 一整个序列(一个句子)作为一个训练实例,总误差就是各个时刻词的误差之和。

在这里,

是时刻
上正确的词,
是预测出来的词

为什么使用交叉熵代替二次代价函数_Softmax回归与交叉熵损失的理解_第8张图片
图示

为什么使用交叉熵代替二次代价函数_Softmax回归与交叉熵损失的理解_第9张图片

你可能感兴趣的:(交叉熵损失函数和focal,loss)