交叉熵(cross entropy)是深度学习中常用的一个概念,一般用来求目标与预测值之间的差距。
交叉熵是信息论中的一个概念
1. 信息论
1.1. 信息量
- 两件事,发生概率越小的,信息量越大,比如下面的事件B
(1)事件A:巴西队进决赛了
(2)事件B:中国队进决赛了 - 信息量定义:概率越小,信息量越大
1.2 熵
- 对于某个事件,有n种可能性,每一种可能性都有一个概率p(xi) 包含的信息量总和为:
- 熵就是所有信息量的期望值
- 0-1分布问题(二项分布的特例)的熵可以简化为
1.3 相对熵(KL散度)
- 衡量两个分布P(x)和Q(x)的差异,即如果用P来描述目标问题,而不是用Q来描述目标问题,得到的信息增量。
- 机器学习中,P是真实分布[0,1,0],Q是模型预测输出[0.1,0.4,0.5],直观的理解是P是完美描述,Q是估计描述,信息量不足,需要额外的信息增量才能逼近P,所以可以反复训练Q
- KL散度公式:
1.4 交叉熵
- 相对熵可以变形得到 P的熵+交叉熵:
- 所以交叉熵是
- 机器学习中,可以用KL散度评估P和Q之间的距离,作为loss来优化下降,但是因为前一部分P的熵不变,所以loss只需要关注 交叉熵 就可以了。
2. 什么时候用交叉熵
- 线性回归问题:用MSE作为loss的
- 逻辑分类问题:用交叉熵
(1)单标签多分类:每一张图像样本只能有一个类别,比如只能是狗或只能是猫。[0,0,0,1,0]
(2)多标签二分类:每一张图像样本可以有多个类别,比如同时包含一只猫和一只狗。[0,1,0,0,1]
网友评论