损失函数笔记(一)—— 交叉熵损失函数

交叉熵损失函数

(一)什么是熵

在机器学习中所提到的熵通常指信息熵,香农最先提出了信息熵的概念,目的就是为了度量某个随机事件的信息量,即从不确定到确定的难度。信息量不是说对信息的掌握程度,而是信息传递出的确定性的大小。
熵可以用信息量的期望值表示,表示一个随机事件的不确定性,熵越大,随机事件的不确定性越大,反之则越小。
假设离散随机变量为X,H(X)为离散随机变量的熵,离散随机变量的熵可以定义为:
在这里插入图片描述
p(x)表示x的概率,取值范围为[0,1], 对于二元离散随机变量的熵具有以下性质:
(1)确定性:若一个随机事件发生的概率为1或者0,则它是确定的,所以它的不确定性为0,即H=0。
举个例子,太阳从东方升起的概率是1,是一个确定事件,我们不需要任何信息量去推断,因此熵为0;太阳从西方升起的概率是0,也是一个确定事件,也不需要任何信息量去推断,因此熵也为0
(2)非负性:H≥0;
(3)对称性:H的分布对称于P=0.5;
(4)极值性:H为P上的凸函数,在P=0.5处存在极大值,一阶导数为0。
二元离散随机变量和信息量(离散随机变量以2为底数的对数值)之间呈指数关系,比如抛硬币,只有正面和反面两种可能,假设抛了n次,则有2^n种可能,假设有y种结果,来求抛了多少次,则求其可能结果以2为底的对数即可:
n = log ⁡ 2 y n=\log_2y n=log2y
比特为信息量的最小单位,所以熵的单位为比特(bit)。

(二)由相对熵引出交叉熵

相对熵又被成为KL散度,假设有两个概率分布,分别用P和Q表示,P代表真实的概率分布,Q代表预测的概率分布,KL散度就是用来度量这两个概率分布之间的差异,离散随机变量的KL散度定义为:
损失函数笔记(一)—— 交叉熵损失函数_第1张图片
由上式可以看出,减号的右边其实就是P的熵,它是恒定的,而减号的左边就是P的交叉熵。有吉布斯不等式(拿来吧你)可知KL散度是大于等于0的:
损失函数笔记(一)—— 交叉熵损失函数_第2张图片
因此,交叉熵越小,两个概率分布越接近。交叉熵定义为:
在这里插入图片描述
到这里我们就引出了交叉熵的概念,那我们如何将交叉熵运用到神经网络模型中做损失函数呢? 交叉熵损失函数经常用于分类问题。

(1)针对二分类模型
损失函数笔记(一)—— 交叉熵损失函数_第3张图片
x表示样本的标签,正类为1,负类为0;
y表示样本预测为正的概率。

(2)针对多分类模型
在这里插入图片描述
m:类别数量;
xic:样本的真实类别等于c为1,反之为0;
yic:样本预测为c的概率。

你可能感兴趣的:(深度学习,机器学习,python,人工智能,信息熵)