交叉熵(Cross Entropy)
本文介绍交叉熵的概念,涉及到信息量、熵、相对熵、交叉熵;
信息量
信息量是用来衡量一个事件发生的不确定性,一个事件发生的概率越大,不确定性越小,则信息携带的信息量则越小;
假设\(X\)是一个离散随机变量,其取值为集合\(X=x_0, x_1, \cdots,x_n\),其概率分布函数为:
则定义事件\(X=x_0\)的信息量为:
当\(p(x_0) = 1\)时,该事件必定发生,其信息量就为0;
下面详细说明为什么选择\(log\)用于计算信息量:
单调递减:
首先,事件的概率越大,不确定性越小,则携带的信息量越小;所以是一个单调递减的函数;
随机变量独立性:
假设\(x_1, x_2\)是两个独立的随机变量,则其联合概率有:
那么,对于两个独立的事件\(X=x_1\)与\(X=x_2\),其联合后的信息量就有:
因此,考虑随机变量的独立性,概率的乘法能转换到信息量的加法,可以使用\(log\)方法,同时为了满足单调递减的性质,再取负;
就有了:
其中\(p(x)\)的取值为\([0, 1]\);
如下图所示,横轴表示事件发生的概率,纵轴表示其携带的信息量;
熵
熵是用来衡量一个系统的混乱程度,代表系统中信息量的总和;
熵值越大,则表明这个系统越不稳定;
信息量是衡量一个事件的不确定性,而熵是衡量一个系统(所有事件)的不确定性;
熵的计算公式如下:
其中,\(p(x_i)\)表示事件\(X=x_i\)发生的概率,\(-log(p(x_i))\)表示事件\(X=x_i\)的信息量;
可以看出,熵是信息量的期望值,是一个随机变量不确定性的度量;
熵值越大,随机变量的取值就越难确定,系统就越不稳定;
熵值越低,随机变量的取值就越容易确定,系统就越稳定;
相对熵(Relative Entropy)
相对熵也称为KL散度(Kullback-Leibler divergence),表示同一个随机变量的两个不同分布间的距离;
假设,\(p(x), q(x)\)分别是 离散随机变量\(X\)的两个概率分布,则\(p\)对\(q\)的相对熵是:
具有以下性质:
- 如果\(p(x)\)与\(q(x)\)的分布相同,则相对熵为0;
- 相对熵不具有对称性,即\(D_{KL}(p||q) \not = D_{KL}(q||p)\),即KL散度也不是一种度量方式;
- \(D_{KL}(p||q) \ge 0\);
总的来说,相对熵是用来衡量同一个随机变量的两个不同分布之间的距离;在实际应用中,\(p(x)\)表示目标分布,\(q(x)\)表示预测得到的分布,任务的目标就是让两个分布尽可能的相似,这就需要最小化KL散度;
交叉熵(Cross Entropy)
对相对熵的计算公式做一步拆分:
在机器学习中,假设\(p\)是目标分布,则分布\(p\)的熵就是一个固定的值,其计算方式就是上式的第一项;
那么,上式的第二项,即
称为交叉熵;
设\(p(x)\)是目标分布,我们的目标就是让训练得到的分布\(q(x)\)尽可能地接近\(p(x)\),这时候就可以最小化\(D_{KL}(p||q)\),等价于最小化交叉熵\(H(p, q)\);
因此,交叉熵衡量的是两个部分之间的差异,所以在用于分类任务的深度卷积神经网络中,常在最后一层中加上Softmax层;
Reference: