美文网首页
信息熵,条件熵,相对熵,交叉熵

信息熵,条件熵,相对熵,交叉熵

作者: ltochange | 来源:发表于2021-07-10 23:29 被阅读0次

    转自详解机器学习中的熵、条件熵、相对熵和交叉熵

    信息是一个很抽象的概念,百度百科中的定义:

    信息是指音讯、消息、通讯系统传输和处理的对象,泛指人类社会传播的一切内容
    

    那信息可以被量化么?可以的!香农提出的信息熵解决了这一问题。

    当我们需要搞清楚一件非常不确定的事,或者一无所知的事,就需要了解大量的信息。相反,如果我们对某件事已经有了较多的了解,我们就不需要太多的信息就能把它搞清楚。

    信息量的度量等于不确定性的多少,不确定性越大,信息量越大。而不确定性的多少与概率有关

    自信息

    考虑一个离散的随机变量X,随机变量的某个取值为xI(x) 被称为x 的自信息 (selfinformation), 描述的是随机变量的某个事件发生所带来的信息量

    I(x)=-\log p(x)

    其中,负号是用来保证信息量是正数或者零。\log 函数基的选择是任意的,信息论中基常常选择为 2,因此信息的单位为比特bits; 而机器学习中基常常选择为自然常数, 因此单位常常被称为奈特nats。

    图像如图:

    在这里插入图片描述

    信息熵

    定义

    现在假设想传送一个随机变量的值给接收者,传输的平均信息量可以通过求 I(x)=-\log p(x) 关于概率分布p(x) 的期望得到,即:
    H(X)=-\sum_{x} p(x) \log p(x)=-\sum_{i=1}^{n} p\left(x_{i}\right) \log p\left(x_{i}\right)

    H(X) 就被称为随机变量X的信息熵,它是表示随机变量不确定的度量,是对所有可能发生的事件产生的信息量的期望。

    注意:熵只依赖于随机变量的分布,与随机变量取值无关,所以也可以将X的熵记作 H(p)

    性质

    (1)非均匀分布比均匀分布的熵要小

    考虑一个随机变量X,这个随机变量有4种可能的状态\{a, b, c, d\},每个状态都是等可能的。为了把X传给接收者,需要传输2比特的消息。

    H(X)=-4 \times \frac{1}{4} \log _{2} \frac{1}{4}=2\text{bits}

    \{a, b, c, d\}四种状态的概率为 \left(\frac{1}{2}, \frac{1}{4}, \frac{1}{8}, \frac{1}{8}\right)

    H(X)=-\frac{1}{2} \log _{2} \frac{1}{2}-\frac{1}{4} \log _{2} \frac{1}{4}-\frac{1}{8} \log _{2} \frac{1}{8}-\frac{1}{8} \log _{2} \frac{1}{8}=1.75 \mathrm{bits}

    对比可以看出,非均匀分布比均匀分布的熵要小。

    (2)随机变量的熵和最短编码长度相等

    \{a, b, c, d\}四种状态的概率为 \left(\frac{1}{2}, \frac{1}{4}, \frac{1}{8}, \frac{1}{8}\right)

    为了用更短的编码来传递信息,可以使用下面的编码串 (哈夫曼编码) : 0、10、110、111来表示状态 \{a, b, c, d\} 。传输的编码的平均长度就是:

    \text{average code length}=\frac{1}{2} \times 1+\frac{1}{4} \times 2+2 \times \frac{1}{8} \times 3=1.75\text{bits}

    这个值与上方的随机变量的熵相等。熵和最短编码长度相等是一种普遍的情形。

    条件熵

    条件熵H(Y|X)表示在已知随机变量X的条件下随机变量 Y 的不确定性。

    \begin{aligned}H(Y|X) &=\sum_{x} p(x) H(Y|X=x) \\ &=-\sum_{x} p(x) \sum_{y} p(y|x) \operatorname{logp}(y|x) \\ &=-\sum_{x} \sum_{y} p(x, y) \log p(y|x) \\ &=-\sum_{x, y} p(x, y) \log p(y \mid x)\end{aligned}

    当已知H(X)这个信息量的时候, H(X,Y) 剩下的信息量就是条件熵:H(Y \mid X)=H(X, Y)-H(X)。证明如下:

    \begin{aligned} H(X, Y) &=-\sum_{x, y} p(x, y) \log p(x, y) \\ &=-\sum_{x, y} p(x, y) \log (p(y | x) p(x)) \\ &=-\sum_{x, y} p(x, y) \log p(y|x)-\sum_{x, y} p(x, y) \log p(x) \\ &=H(Y|X)-\sum_{x, y} p(x, y) \log p(x) \\ &=H(Y|X)-\sum_{x} \sum_{y} p(x, y) \log p(x) \\ &=H(Y|X)-\sum_{x} \log p(x) \sum_{y} p(x, y) \\ &=H(Y|X)-\sum_{x} p(x) \log p(x) \\ &=H(Y|X)+H(X) \end{aligned}

    相对熵

    又称KL散度,可以用来衡量两个概率分布之间的差异, 下面公式的意义就是求pq之间的对数差在p上的期望值。

    p(x), q(x) 是离散随机变量X中取值的两个概率分布, 则 pq 的相对熵是:

    D_{K L}(p \| q)=\sum_{x} p(x) \log \frac{p(x)}{q(x)}=E_{p(x)} \log \frac{p(x)}{q(x)}

    性质:
    1、如果 p(x)q(x) 两个分布相同, 那么相对熵等于0

    1. D_{K L}(p \| q) \neq D_{K L}(q \| p) ,相对熵不具有对称性。
    2. D_{K L}(p \| q) \geq 0

    证明如下 (利用Jensen不等式) :

    \begin{aligned}D_{K L}(p \| q) &=\sum_{x} p(x) \log \frac{p(x)}{q(x)} \\ &=-\sum_{x} p(x) \log \frac{q(x)}{p(x)} \\ &=-E_{p(x)}\left(\log \frac{q(x)}{p(x)}\right) \\ & \geq-\log E_{p(x)}\left(\frac{q(x)}{p(x)}\right) \\ &=-\log \sum_{x} p(x) \frac{q(x)}{p(x)} \\ &=-\log \sum_{x} q(x) \end{aligned}

    因为,\sum_{x} p(x)=1,所以,D_{K L}(p \| q) \geq 0

    交叉熵

    随机变量X的两个概率分布,p(x)为真实分布, q(x)非真实分布。

    真实分布p(x)的信息熵(平均编码长度):

    H(p)=\sum_{x} p(x) \log \frac{1}{p(x)}

    若用非真实分布q(x)来表示真实分布 p(x) 的信息熵(平均编码长度),则是:

    H(p, q)=\sum_{x} p(x) \log \frac{1}{q(x)}

    因为q(x)编码的样本来自于分布p(x), 所以H(p, q)中的概率是p(x)H(p, q) 称为交叉熵.

    简化一下相对熵的公式:

    D_{K L}(p \| q)=\sum_{x} p(x) \log \frac{p(x)}{q(x)}=\sum_{x} p(x) \log p(x)-p(x) \log q(x)

    即是:
    D_{K L}(p \| q)=H(p, q)-H(p)
    相对熵 = 交叉熵 - 真实分布的信息熵

    用非真实分布q(x)得到的平均码长比真实分布p(x)得到的平均码长多出的比特数就是相对熵

    (1)因为D_{K L}(p \| q) \geq 0,所以H(p, q) \geq H(p),当p(x)=q(x) 时取等号, 此时交叉熵等于信息熵
    (2)当 H(p) 为常量时 (机器学习中训练数据分布是固定的,H(p)为常量),最小化相对熵D_{K L}(p \| q) 等价于最小化交叉熵 H(p, q),也等价于最大化似然估计。

    总结

    (1)信息熵是传输一个随机变量状态值所需的比特位下界(最短平均编码长度)
    (2)相对熵是指用分布q来表示分布p额外需要的编码长度
    (3)交叉熵是指用分布q 来表示分布p 的平均编码长度

    相关文章

      网友评论

          本文标题:信息熵,条件熵,相对熵,交叉熵

          本文链接:https://www.haomeiwen.com/subject/nsbhpltx.html