关于熵、相对熵以及交叉熵的部分理解

熵 (entropy) 这一表述最先由热力学主要奠定人、德国物理学家克劳修斯 (Rudolf Julius Emanuel Clausius) 提出,定义为可逆过程当中输入热量相对于温度的变化率,即
$$dS = \frac {dQ}{T}$$
上述表示形式与现在咱们所熟知的信息熵存在着较大差别,由于香农 (Claude E.Shannon) 在信息论中所定义的熵引自玻尔兹曼 (Ludwig E.Boltzmann) 所提出的熵的统计物理学解释。玻尔兹曼创建了熵 S 和系统宏观态所对应的可能的微观态数目 W 的联系,即 $S\propto lnW$。然后普朗克 (Max Karl Ernst Ludwig Planck) 引入比例系数 $k_{B}$,获得普朗克-玻尔兹曼公式
$$S = k_{B}\cdot lnW$$
上述公式的等价表述形式为
$$S=k_{B}\sum_{i}p_{i}ln{\frac{1}{p_{i}}}$$
其中 i 标记了全部可能出现的微观态,$p_{i}$ 表示可能微观态出现的几率。从上述公式能够看出,此处用几率的倒数,即 $\frac{1}{p_{i}}$,表示对应的可能的微观态数目。一种不太严谨可是直观的解释是对于一个出现几率为$p_{i}$的微观态,能够认为其包含的微观态数目是$\frac{1}{p_{i}}$。由此咱们能够引出信息论当中的香农熵
$$S=k\cdot\sum_{i=1}^{n}p_{i}log_{2}\frac{1}{p_{i}}$$算法

至于此处为什么对数底数从 e 变成了 2,从数学角度来看区别甚微,但香农是基于另外一种视角在这里定义了一种度量,用掷硬币来类比即微观态数目 $\frac{1}{p_{i}}$ 所对应的硬币的数量。具体地,若微观态数量为 $2^{3}$, 则对应 3 枚硬币(每一枚硬币都有正反两种可能,共可有序给出 8 种组合),所对应硬币数量越多,则熵越大,所以能够理解为将“硬币”做为熵的度量。事实上,这枚“硬币”的单位被称比特 (bit),而之因此取以 2 为底的对数,是由于计算机当中的信息存储方式是“0”和“1”,3 bit的信息意味着须要 3 位二进制数才能彻底肯定。以汉字为例,整个汉语体系共包含经常使用字7000字左右,若全部经常使用字的使用是等几率的,则 $s=log_{2}7000\approx 13$,这意味着整个汉字体系包含约 13 bits的信息量。但7000字等频率出现是假设中的状况,生活中高频使用的汉字仅占百分之十左右,所以汉字的比特数通常只有 5 bits左右。即一部十万字的小说,包含信息约 500000 bits,也就是 0.0625 MB。(可是文件的实际大小视具体压缩算法而定,差别可能很大)。网络

对于带约束函数 $y=\sum_{i=1}^{n}p_{i}log_{2}\frac{1}{p_{i}},s.t. \sum_{i=1}^{n}p_{i}=1$,构造拉格朗日函数 $L(p_{1},p_{2},...,p_{n},\lambda)=\sum_{i=1}^{n}p_{i}log_{2}\frac{1}{p_{i}}-\lambda(\sum_{i=1}^{n}p_{i}-1)$ 并求其知足 KKT 条件的解
$$\left\{\begin{matrix} \frac{\partial L}{\partial p_{i}}=log_{2}\frac{1}{p_{i}}-\frac{1}{ln2}-\lambda=0 (i=1,2...,n) \\\frac{\partial L}{\partial \lambda}=\sum_{i=1}^{n}p_{i}-1=0 \end{matrix} \right.$$
由上述方程组易知 $p_{1}=p_{2}=...=p_{n}=\frac{1}{n}$ 是其中的一组解,进一步,根据二阶条件 $d^{T}\triangledown_{x}^{2}Ld\leq 0$ 对于全部可行方向 d 均成立知上述解是带约束函数极大值。app

所以,当全部样本等几率出现时,系统的熵达到最大值;同时在全部样本等几率出现的状况下,样本数越多熵越大 ($S=k\cdot log_{2}n$)。这意味着,一个系统越有序,其熵越低,若系统变量时彻底肯定的,即 $p=1$ 时,S=0,此时熵值达到最小值;一个系统不肯定性越高,则熵值越高。机器学习

回到最本质的问题上,到底什么是信息熵 (香农熵),或者信息熵这样一个概念有什么感性的解释?咱们能够狭义的认为信息熵是一个事件信息量的度量。当一个事件的不肯定性越大,咱们想要获得确切的答案所须要的信息越多,即该事件的信息量与其不肯定性直接相关。信息熵和信息量在数值上一致,获取信息的目的在于下降不肯定性,即下降事件的熵,事件自己的信息熵越大,下降不肯定性所须要的信息就越多。函数

相对熵学习

由熵的基本概念,在此引出相对熵。相对熵 (Relative Entropy) 也叫KL散度 (Kullback-Leibler divergence),用以衡量两分布间的差别。字体

设$p(x)$和$q(x)$是离散随机变量$X$的两个几率分布,则p对q的相对熵为
$$D_{KL}(p||q)=\sum_{x}p(x)log_2\frac{p(x)}{q(x)}=\mathbb{E}_{x\sim p}(log_2p(x)-log_2q(x))$$事件

值得注意的是相对熵并不具备对称性,即通常状况下 $D_{KL}(p||q)=D_{KL}(q||p)$ 并不成立。深度学习

交叉熵数学

交叉熵旨在衡量真实分布和模拟分布的近似程度,经常使用做机器学习、深度学习中做为分割等任务的损失函数。设 $p(x)$ 是真实数据分布,$q(x)$ 是模拟数据分布,则交叉熵为
$$S_{CE}=\sum_{x}p(x)log_2\frac{1}{q(x)}$$

当模拟数据分布愈来愈近似真实分布时,交叉熵数值将逐渐减少,当$q(x)=p(x)$时取得最小值。具体到深度学习中的多类别语义分割应用时,对于某像素,设置其真实类别为标签值为 1,其余类别为0;网络在输出结果时经 softmax 归一化输出 N 张结果图,当标签对应 map 相同位置处为 1 时交叉熵损失取得最小值为 0,即 $Loss=-log\frac{e^{x_{label}}}{\sum_{i=1}^{N}e^{x_{i}}}=0$。

同时咱们注意到,熵 $S$、相对熵 $D_{KL}$ 以及交叉熵 $S_{CE}$ 间存在关系 $$D_{KL}=S_{CE}-S$$ 所以咱们能够看到在深度学习相关任务中使用相对熵 $D_{KL}$ 和交叉熵 $S_{CE}$ 作损失函数没有本质区别。

相关文章
相关标签/搜索