信息量

与事件发生概率大小相关,发生概率越大,信息量越大。

设事件 xx 发生的概率为 p(x)p(x) ,那么该事件的信息量为:I(x)=log(p(x))I(x) = -log(p(x))

在信息论和概率统计中,熵表示随机变量不确定性的度量。设随机变量为 XX ,即事件 XX 发生的可能性共有 nn 个,每个可能 xix_i 发生的概率为 p(xi)p(x_i) ,那么所有信息量的期望就是熵,计算公式为:

H(X)=i=1np(xi)log(p(xi))H(X) = - \sum_{i=1}^{n} p(x_i) log (p(x_i))

若事件只有两个可能性,比如投掷硬币出现正反面,熵为:

H(X)=p(x)log(p(x))(1p(x))log(1p(x))H(X) = -p(x) log (p(x)) - (1-p(x)) log(1-p(x))

相对熵 (KL散度)

假设事件 XX 有两个分布 P(x)P(x)Q(x)Q(x) ,比如真实分布和模型训练出来的分布,可以用 KL散度衡量两个分布之间的差异,即模型损失函数:

DKL(pq)=i=1np(xi)logp(xi)q(xi)D_{KL}(p||q) = \sum_{i=1}^{n} p(x_i) log \frac{p(x_i)}{q(x_i)}

可以看出,当真实分布和模型训练出来的分布越接近时,相对熵越小,损失值越小。

交叉熵

化简一下相对熵:

DKL(pq)=i=1np(xi)logp(xi)q(xi)=i=1np(xi)log p(xi)i=1np(xi)log q(xi)=H(X)i=1np(xi)log q(xi)\begin{aligned}D_{KL}(p||q) &= \sum_{i=1}^{n} p(x_i) log \frac{p(x_i)}{q(x_i)} \\&= \sum_{i=1}^{n} p(x_i) log \ p(x_i) - \sum_{i=1}^{n} p(x_i) log \ q(x_i) \\&= -H(X) - \sum_{i=1}^{n} p(x_i) log \ q(x_i)\end{aligned}

可以看出相对熵恰好是由熵减去一部分组成,后面那部分就是交叉熵,

H(p,q)=i=1np(xi)log q(xi)H(p, q) = - \sum_{i=1}^{n} p(x_i) log \ q(x_i)

因为 $H(X) $ 是不变的,所以在衡量真实标签与预测值时,可以直接使用交叉熵作为损失函数。

二分类情况下,给定真实标签 yiy_i 和预测标签 pip_i ,交叉熵损失函数为:

loss=[ylogp+(1y)log(1p)]loss = -[ylogp + (1-y)log(1-p)]