信息量和熵

约 825 字大约 3 分钟...

信息量和熵

1. 信息量

任何事件都是概率事件,是概率事件则承载着信息量,概率越小的事件它承载的信息量就越大,因为它越不可能发生,反之如果是既定事实,那么它的信息量就为0。

例如,狗咬人不算信息,人咬狗才算信息嘛。

所以若事件xx发生的概率为p(x)p(x),那么它的信息量为:I(x)=log(p(x))I(x)=-\log(p(x))

2. 熵

熵就是信息量的期望,代表这个事件所有的可能性。

假设事件XX共有n种可能性,发生xix_i的概率为p(xi)p(x_i),那么该事件的熵为:

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

3. KL散度(相对熵)

假设随机变量XX有两个单独的概率分布函数p(x)p(x)q(x)q(x),我们可以使用KL散度来衡量这两个分布的差异。

在机器学习中,p(x)p(x)往往用来表示样本的真实分布,q(x)q(x)用来表示模型所预测的分布,那么KL散度就可以计算两个分布的差异,即Loss损失函数,计算公式如下:

KL(pq)=i=1np(xi)log(p(xi)q(xi)) KL(p \parallel q) = \sum^n_{i=1} p(x_i) \log(\frac{p(x_i)}{q(x_i)})

KL散度具有以下性质:

性质1. KL散度是不对称的。

性质2. KL散度是非负的,即KL(pq)0KL(p \parallel q) \geq 0。且当p=qp=q时,KL(pq)=0KL(p \parallel q) = 0

  • 证明:对KL散度计算公式进行以下变换:

KL(pq)=i=1np(xi)log(p(xi)q(xi))=E(logp(X)q(X))=E(logq(X)p(X)) KL(p \parallel q) = \sum^n_{i=1} p(x_i) \log(\frac{p(x_i)}{q(x_i)})= \mathbb{E}(\log \frac{p(X)}{q(X)}) = \mathbb{E}(-\log \frac{q(X)}{p(X)})

由于对数函数是凹函数,根据 Jensen不等式open in new window,可得:

E(logq(X)p(X))logE(q(X)p(X))=logi=1np(xi)q(xi)p(xi)=logi=1nq(xi)=log1=0 \mathbb{E}(-\log \frac{q(X)}{p(X)}) \geq -\log\mathbb{E}(\frac{q(X)}{p(X)}) = -\log \sum^n_{i=1} p(x_i)\frac{q(x_i)}{p(x_i)} \\= -\log \sum^n_{i=1} q(x_i) = -log 1 = 0

4. 交叉熵

将KL散度公式变形:

KL(pq)=i=1np(xi)log(p(xi)q(xi))=i=1np(xi)log(p(xi))i=1np(xi)log(q(xi))=H(p(X))+[i=1np(xi)log(q(xi))] \begin{aligned} KL(p \parallel q) &= \sum^n_{i=1} p(x_i) \log(\frac{p(x_i)}{q(x_i)}) \\ &= \sum^n_{i=1} p(x_i) \log(p(x_i)) - \sum^n_{i=1} p(x_i) \log(q(x_i)) \\ &= -H(p(X)) + [- \sum^n_{i=1} p(x_i) \log(q(x_i))] \end{aligned}

可见等式的前一部分是分布pp的熵,等式的后一部分就是交叉熵。

在机器学习中,需要构造Loss损失函数去评估真实值和预测值之间的差距,那么使用KL则刚刚好,即KL(yy~)KL(y \parallel \tilde{y})。由于在大部分有监督学习问题中,真实值yy是不变的,即KL散度的前半部分yy的熵H(y)H(y)是不变的,故在优化过程中只需要关注交叉熵就好了,所以一般就直接使用交叉熵函数作为Loss损失函数。

5. JS散度

JS散度也是度量了两个概率分布的相似度,是KL散度的变体,解决了KL散度非对称的问题,其定义如下:

JS(pq)=12KL(pp+q2)+12KL(pp+q2) JS(p \parallel q) = \frac 12 KL(p \parallel \frac{p+q}2) + \frac 12 KL(p \parallel \frac{p+q}2)

JS散度具有以下性质:

性质1. JS散度是对称的。

性质2. JS散度是非负的,散度是非负的,即JS(pq)0JS(p \parallel q) \geq 0。且当p=qp=q时,JS(pq)=0JS(p \parallel q) = 0

  • 证明:由于KL散度大于等于0,易证得JS散度大于等于0。
上次编辑于:
贡献者: lisenjie757
已到达文章底部,欢迎留言、表情互动~
  • 赞一个
    0
    赞一个
  • 支持下
    0
    支持下
  • 有点酷
    0
    有点酷
  • 啥玩意
    0
    啥玩意
  • 看不懂
    0
    看不懂
评论
  • 按正序
  • 按倒序
  • 按热度
Powered by Waline v2.14.9