熵的概念起源于热力学,是一种分子混乱程度的度量:如果分子保持静止和良序,则熵接近零。后来这个概念被传播到各个领域。在机器学习中,它也经常被当做不纯度的测量方式:如果数据集中仅包含一个类别的实例,则熵为零。

机器学习的本质是信息论。在信息论中,首先我们引入了信息熵的概念。认为一切信息都是一个概率分布。所谓信息熵,就是这段信息的不确定性,即是信息量。

对于某个事件,有n种可能性,每一种可能性都有一个概率P(xi) ,这样就可以计算出某一种可能性的信息量。举一个例子,假设你拿出了你的电脑,按下开关,会有三种可能性,下表列出了每一种可能的概率及其对应的信息量:

computer.png

H(X)
=−[p(A)log(p(A))+p(B)log(p(B))+p(C))log(p(C))]
=0.7×0.36+0.2×1.61+0.1×2.30
=0.804

交叉熵的意义在于,用这样一套模型来表示,预测的概率分布与实际的概率分布相差有多远。交叉熵来定义预估事情的错误程度(loss)。它的定义为:

cross.png

其中y'是真实概率。y是我们计算的概率。

在多元分类问题中,交叉熵常被用作,损失函数。比如在mnist问题中,我们的真实概率其实只有0和1。假设,手写的数字为1。那么我们的真实概率分布应为[0, 1, 0, 0, 0, 0, 0, 0, 0, 0],而我们的预测概率分布可能为[0.05, 0.55, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05],此时,交叉熵即为:-1 * log(0.55)

如果我们的预测概率分布与真实概率分布一致,那么交叉熵应为:1 * log(1) = 0。符合预期。

因此,我们用交叉熵的大小来估评我们预测的不准确度。