[ch03-02] 交叉熵损失函数

简介: [ch03-02] 交叉熵损失函数

3.2 交叉熵损失函数


image.png

交叉熵函数常用于逻辑回归(logistic regression),也就是分类(classification)。

3.2.1 交叉熵的由来

信息量

信息论中,信息量的表示方式:


image.png

假设对于学习神经网络原理课程,我们有三种可能的情况发生,如表3-2所示。

表3-2 三种事件的概论和信息量

事件编号 事件 概率 p 信息量 I
x1 优秀 p=0.7 I=ln(0.7)=0.36
x2 及格 p=0.2 I=ln(0.2)=1.61
x3 不及格 p=0.1 I=ln(0.1)=2.30

WoW,某某同学不及格!好大的信息量!相比较来说,“优秀”事件的信息量反而小了很多。


image.png

则上面的问题的熵是:


image.png

相对熵(KL散度)


image.png

交叉熵

把上述公式变形:


image.png

image.png

3.2.2 二分类问题交叉熵


image.png

3.2.3 多分类问题交叉熵

当标签值不是非0即1的情况时,就是多分类了。假设期末考试有三种情况:

  1. 优秀,标签值OneHot编码为[1,0,0][1,0,0]
  2. 及格,标签值OneHot编码为[0,1,0][0,1,0]
  3. 不及格,标签值OneHot编码为[0,0,1][0,0,1]


image.png

可以看到,0.51比1.2的损失值小很多,这说明预测值越接近真实标签值(0.6 vs 0.3),交叉熵损失函数值越小,反向传播的力度越小。

3.2.4 为什么不能使用均方差做为分类问题的损失函数?

  1. 回归问题通常用均方差损失函数,可以保证损失函数是个凸函数,即可以得到最优解。而分类问题如果用均方差的话,损失函数的表现不是凸函数,就很难得到最优解。而交叉熵函数可以保证区间内单调。
  2. 分类问题的最后一层网络,需要分类函数,Sigmoid或者Softmax,如果再接均方差函数的话,其求导结果复杂,运算量比较大。用交叉熵函数的话,可以得到比较简单的计算结果,一个简单的减法就可以得到反向误差。



相关文章
|
1月前
|
机器学习/深度学习
为什么在二分类问题中使用交叉熵函数作为损失函数
为什么在二分类问题中使用交叉熵函数作为损失函数
60 2
|
1月前
|
机器学习/深度学习 JavaScript Python
熵、联合熵、相对熵、交叉熵、JS散度、互信息、条件熵
熵、联合熵、相对熵、交叉熵、JS散度、互信息、条件熵
14 1
|
9月前
|
机器学习/深度学习
信息熵、KL散度、交叉熵、softmax函数学习小记
信息熵、KL散度、交叉熵、softmax函数学习小记
62 0
|
机器学习/深度学习 算法
Lesson 4.2 逻辑回归参数估计:极大似然估计、相对熵与交叉熵损失函数-1
Lesson 4.2 逻辑回归参数估计:极大似然估计、相对熵与交叉熵损失函数-1
|
机器学习/深度学习
Lesson 4.2 逻辑回归参数估计:极大似然估计、相对熵与交叉熵损失函数-2
Lesson 4.2 逻辑回归参数估计:极大似然估计、相对熵与交叉熵损失函数-2
|
机器学习/深度学习 人工智能 JavaScript
【Pytorch神经网络理论篇】 21 信息熵与互信息:联合熵+条件熵+交叉熵+相对熵/KL散度/信息散度+JS散度
对抗神经网络(如DIM模型)及图神经网络(如DGI模型)中,使用互信息来作为无监督方式提取特征的方法。
642 0
|
机器学习/深度学习 数据挖掘
KL散度和交叉熵的对比介绍
KL散度(Kullback-Leibler Divergence)和交叉熵(Cross Entropy)是在机器学习中广泛使用的概念。这两者都用于比较两个概率分布之间的相似性,但在一些方面,它们也有所不同。本文将对KL散度和交叉熵的详细解释和比较。
538 0
|
机器学习/深度学习
损失函数:均方误和交叉熵,激活函数的作用
损失函数(loss function)或代价函数(cost function)是将随机事件或其有关随机变量的取值映射为非负实数以表示该随机事件的“风险”或“损失”的函数。
160 1
损失函数:均方误和交叉熵,激活函数的作用
|
机器学习/深度学习