本文从信息熵和最大似然估计来推导交叉熵作为分类损失的依据。
从熵来看交叉熵损失
信息量
信息量来衡量一个事件的不确定性,一个事件发生的概率越大,不确定性越小,则其携带的信息量就越小。
设 X X X是一个离散型随机变量,其取值为集合 X = x 0 , x 1 , … , x n X = {x_0,x_1,\dots,x_n} X=x0,x1,…,xn ,则其概率分布函数为 p ( x ) = P r ( X = x ) , x ∈ X p(x) = Pr(X = x),x \in X p(x)=Pr(X=x),x∈X,则定义事件 X = x 0 X = x_0 X=x0 的信息量为:
I ( x 0 ) = − log ( p ( x 0 ) ) I(x_0) = -\log(p(x_0)) I(x0)=−log(p(x0))
当 p ( x 0 ) = 1 p(x_0) = 1 p(x0)=1时,该事件必定发生,其信息量为0.
熵
熵用来衡量一个系统的混乱程度,代表系统中信息量的总和;熵值越大,表明这个系统的不确定性就越大。
信息量是衡量某个事件的不确定性,而熵是衡量一个系统(所有事件)的不确定性。
熵的计算公式
H ( x ) = − ∑ i = 1 n p ( x i ) log ( p ( x i ) ) H(x) = -\sum_{i=1}^np(x_i)\log(p(x_i)) H(x)=−i=1∑np(xi)log(p(xi))
其中, p ( x i ) p(x_i) p(xi)为事件 X = x i X=x_i X=xi的概率, − l o g ( p ( x i ) ) -log(p(x_i)) −log(p(xi))为事件 X = x i X=x_i X=xi的信息量。
可以看出,熵是信息量的期望值,是一个随机变量(一个系统,事件所有可能性)不确定性的度量。熵值越大,随机变量的取值就越难确定,系统也就越不稳定;熵值越小,随机变量的取值也就越容易确定,系统越稳定。
相对熵 Relative entropy
相对熵也称为KL散度(Kullback-Leibler divergence),表示同一个随机变量的两个不同分布间的距离。
设 p ( x ) , q ( x ) p(x),q(x) p(x),q(x) 分别是 离散随机变量 X X X的两个概率分布,则 p p p对 q q q的相对熵是:
D K L ( p ∥ q ) = ∑ i p ( x i ) l o g ( p ( x i ) q ( x i ) ) D_{KL}(p \parallel q) = \sum_i p(x_i) log(\frac{p(x_i)}{q(x_i)}) DKL(p∥q)=i∑p(xi)log(q(xi)p(xi))
相对熵具有以下性质:
- 如果 p ( x ) p(x) p(x)和 q ( x ) q(x) q(x)的分布相同,则其相对熵等于0
- D K L ( p ∥ q ) ≠ D K L ( q ∥ p ) D_{KL}(p \parallel q) \neq D_{KL}(q \parallel p) DKL(p∥q)=DKL(q∥p),也就是相对熵不具有对称性。
- D K L ( p ∥ q ) ≥ 0 D_{KL}(p \parallel q) \geq 0 DKL(p∥q)≥0
总的来说,相对熵是用来衡量同一个随机变量的两个不同分布之间的距离。在实际应用中,假如 p ( x ) p(x) p(x)是目标真实的分布,而 q ( x ) q(x) q(x)是预测得来的分布,为了让这两个分布尽可能的相同的,就需要最小化KL散度。
交叉熵 Cross Entropy
设 p ( x ) , q ( x ) p(x),q(x) p(x),q(x) 分别是 离散随机变量 X X X的两个概率分布,其中 p ( x ) p(x) p(x)是目标分布, p p p和 q q q的交叉熵可以看做是,使用分布 q ( x ) q(x) q(x) 表示目标分布 p ( x ) p(x) p(x)的困难程度:
H ( p , q ) = ∑ i p ( x i ) l o g 1 log q ( x i ) = − ∑ i p ( x i ) log q ( x i ) H(p,q) = \sum_ip(x_i)log\frac{1}{\log q(x_i)} = -\sum_ip(x_i)\log q(x_i) H(p,q)=i∑p(xi)loglogq(xi)1=−i∑p(xi)logq(xi)
将熵、相对熵以及交叉熵的公式放到一起,
KaTeX parse error: No such environment: align at position 8: \begin{̲a̲l̲i̲g̲n̲}̲ H(p) &= -\sum_…
通过上面三个公式就可以得到
D K L ( p , q ) = H ( p , q ) − H ( p ) D_{KL}(p,q) = H(p,q)- H(p) DKL(p,q)=H(p,q)−H(p)
在机器学习中,目标的分布 p ( x ) p(x) p(x) 通常是训练数据的分布是固定,即是 H ( p ) H(p) H(p) 是一个常量。这样两个分布的交叉熵 H ( p , q ) H(p,q) H(p,q) 也就等价于最小化这两个分布的相对熵