本文从信息论和最大似然估计得角度推导交叉熵作为分类损失函数的依据。
从熵来看交叉熵损失
信息量
信息量来衡量一个事件的不确定性,一个事件发生的概率越大,不确定性越小,则其携带的信息量就越小。
设\(X\)是一个离散型随机变量,其取值为集合\(X = {x_0,x_1,\dots,x_n}\) ,则其概率分布函数为\(p(x) = Pr(X = x),x \in X\),则定义事件\(X = x_0\) 的信息量为:
\[I(x_0) = -\log(p(x_0))
\]
当\(p(x_0) = 1\)时,该事件必定发生,其信息量为0.
熵
熵用来衡量一个系统的混乱程度,代表系统中信息量的总和;熵值越大,表明这个系统的不确定性就越大。
信息量是衡量某个事件的不确定性,而熵是衡量一个系统(所有事件)的不确定性。
熵的计算公式
\[H(x) = -\sum_{i=1}^np(x_i)\log(p(x_i))
\]
其中,\(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\)的相对熵是:
\[D_{KL}(p \parallel q) = \sum_i p(x_i) log(\frac{p(x_i)}{q(x_i)})
\]
相对熵具有以下性质:
如果\(p(x)\)和\(q(x)\)的分布相同,则其相对熵等于0
\(D_{KL}(p \parallel q) \neq D_{KL}(q \parallel p)\),也就是相对熵不具有对称性。
$ D_{KL}(p \parallel q) \geq 0$
总的来说,相对熵是用来衡量同一个随机变量的两个不同分布之间的距离。在实际应用中,假如\(p(x)\)是目标真实的分布,而\(q(x)\)是预测得来的分布,为了让这两个分布尽可能的相同的,就需要最小化KL散度。
交叉熵 Cross Entropy
设 \(p(x),q(x)\) 分别是 离散随机变量\(X\)的两个概率分布,其中\(p(x)\)是目标分布,\(p\)和\(q\)的交叉熵可以看做是,使用分布\(q(x)\) 表示目标分布\(p(x)\)的困难程度:
\[H(p,q) = \sum_ip(x_i)log\frac{1}{\log q(x_i)} = -\sum_ip(x_i)\log q(x_i)
\]
将熵、相对熵以及交叉熵的公式放到一起,
\[\begin{align}
H(p) &= -\sum_{i}p(x_i) \log p(x_i) \\
D_{KL}(p \parallel q) &= \sum_{i}p(x_i)\log \frac{p(x_i)}{q(x_i)} = \sum_i (p(x_i)\log p(x_i) - p(x_i) \log q(x_i)) \\
H(p,q) &