KL散度交叉熵与极大似然 的友谊
Posted jenny1000000
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了KL散度交叉熵与极大似然 的友谊相关的知识,希望对你有一定的参考价值。
一. 信息论背景
信息论的研究内容,是对一个信号包含信息的多少进行量化。所采用的量化指标最好满足两个条件:
(1)越不可能发生的事件包含的信息量越大;
(2)独立事件有增量的信息(就是几个独立事件同时发生的信息量等于每一个信息量的和)。
遵循以上原则,定义一个事件$\mathsf{x}=x$的自信息为:$$I(x)=-\log p(x)$$log底为e时,单位为nats;底为2时,单位为比特或香农。
用香农熵(Shannon Entropy)对一个变量在整个概率分布中的不确定性进行量化:$$H(\mathsf{x})=E_{\mathsf{x} \sim P}[I(x)]=-E_{\mathsf{x}\sim P}[\log P(x)]$$香农熵的意义,就是满足$p$分布的事件所产生的期望信息总量。
二. KL散度(Kullback-Leibler Divergence)
若一个随机变量$\mathsf{x}$有两种可能的分布$P(\mathsf{x})$和$Q(\mathsf{x})$,则可以用KL散度衡量两个分布之间的差异:$$\begin{align*} D_{KL}(P||Q)&=E_{\mathsf{x}\sim P}\left[ \log \frac{P(x)}{Q(x)}\right]\\&=E_{\mathsf{x}\sim P} \left[ \log P(x)-\log Q(x)\right]\end{align*}$$ KL散度为非负,当且仅当P与Q为相同分布时,KL散度为零。所以假设有一个分布$p(x)$,想用另一个分布$q(x)$近似,可以选择最小化二者之间的KL散度。
但是需注意$D_{KL}(p||q)\neq D_{KL}(q||p)$,前者表示选择一个q,使得它在p具有高概率的地方具有高概率;后者表示选择一个q,使得它在具有低概率的地方具有低概率。
三. 交叉熵(Cross-Entropy)
交叉熵定义为:$$\begin{align*}H(P,Q)&=H(P)+D_{KL}(P||Q) \\&=-E_{\mathsf{x}\sim P}\log Q(x)\end{align*}$$针对Q最小化交叉熵等价于最小化KL散度,因为$H(P)$与Q无关。
四. 极大似然估计
假设有m个样本的数据集,由未知的真实数据分布$p_{data}(x)$独立生成。令$p_{model}(x;\theta )$为由$\theta$确定的概率分布,$p_{model}(x;\theta )$将任意输入$x$映射到实数来估计真实概率$p_{data}(x)$。
也就是说,给定一个$\theta$,就得到了一个完整的数据概率分布,我们就可以计算the probability of observing out sample data,即sample likelihood $L(\theta)$。如果一组$\theta$计算出来的sample likelihood太低,则需要换一组$\theta$。极大似然估计就是要选择一组$\theta$使得sample likelihood越高越好。$$\begin{align*}\theta_{ML}&=\mathop{\arg\min}_{\theta}p_{model}(x;\theta) \\&=\mathop{\arg\min}_{\theta} \prod_{i=1}^{m}p_{model}(x^{(j)};\theta)\end{align*}$$
多个概率的乘积可能导致数值下溢,所以通常会采用对数转换成求和的形式: $$\begin{equation}\theta_{ML}=\mathop{\arg\min}_{\theta}\sum_{i=1}^m \log p_{model}(x^{(i)};\theta)\end{equation}$$
五. MLE-->KL-->CE
由于$$E_{\mathsf{x}\sim p_{data}}[\log p_{model}(x)]=\sum_{i=1}^{m}p_{data}\cdot \log p_{model}(x;\theta)$$极大似然估计可以经过缩放,用与训练数据经验分布$p_{data}$相关的期望来表示:$$\begin{equation}
\theta_{ML}=\mathop{\arg\min}_{\theta}E_{\mathsf{x}\sim p_{data}} \log p_{model}(x^{(i)};\theta)
\end{equation}$$ 极大似然估计可以看作最小化训练集熵的经验分布$p_{data}$和模型分布之间的差异,即二者之间的KL散度:$$D_{KL}(p_{data}||p_{model})=E_{\mathsf{x}\sim p_{data}}\left[ \log p_{data}-\log p_{model}(x) \right]$$而最小化KL散度又等价于最小化分布之间的交叉熵$$-E_{\mathsf{x}\sim p_{data}}[\log p_{model}(x)]$$
以上是关于KL散度交叉熵与极大似然 的友谊的主要内容,如果未能解决你的问题,请参考以下文章