熵、相对熵、交叉熵等理解
**
信息量
假设我们听到了两件事,请问分别如下:
第一件事:巴西队进入了2018年世界杯决赛圈;
第二件事:中国队也进入了2018年世界杯决赛圈。
从直观上看,请问第二件事携带的信息量比第一件事要多得多?这是因为第一件事发生的机会非常大,请问而第二件事发生的机会则非常渺茫。因此当某件事情发生的可能性很低时,请问所获得的信息量就越多;相反地,则会得到较少的信息量。由此可见,请问信息传递强度与事情发生的不确定性之间存在密切关系:具体来说,请问一个事情发生可能性越高,则其不确定性就越低;反之亦然,则其不确定性越高、携带的信息也就越多。
令X是一个离散型随机变量,并且其取值属于集合{x₀, x₁, ..., xₙ}。则称其概率质量函数为p(x) = Pr(X = x),其中x ∈ X。进一步地,在此框架下,我们定义事件「X等于x₀」所携带的信息量为

当p(x0)=1时,该事件必定发生,其信息量为0.
由于是概率所以p(x0)的取值范围是[0,1],绘制为图形如下:

熵
熵用于表征一个系统的无序状态;它代表系统中信息量的总和。其数值越大,则表示该系统的不确定性程度越高。
信息度作为表征某种事件不确定性的指标;而熵则用于表征整个系统的各种可能结果所包含的信息不确定性。
熵的计算公式:

其中,p(xi)为事件X=xi的概率,−log(p(xi))为事件X=xi的信息量。
可以看出,熵是信息量的期望值 。
相对熵(KL散度)
对于同一随机变量x来说,在其概率空间中存在两个独立的概率分布p(x)和q(x),我们可以通过计算Kullback-Leibler (KL) divergence来比较这两个分布之间的差异。
设 p(x),q(x) 分别是离散随机变量X的两个概率分布,则p对q的相对熵是:

当使用p而非q对目标问题进行描述时所获得的信息增量。累加共有n个项分别代表事件的所有可能性其值越小则表明两个概率分布之间的差异越小即q分布与真实分布之间的差异较小意味着两者的接近程度较高。在机器学习领域通常将真实数据集的概率分布记为向量形式例如[1 0 0]这表明当前样本属于第一类类别而预测模型生成的概率分布则可以用向量形式如[0.7 0.2 0.1]来进行表征。直观而言在使用真实分布p时能够完美地表征数据特征而在使用模型预测概率分布q的情况下虽然能够大致表征数据特征但相较于真实情况仍然存在一定的差距即缺少足够的"信息增量"以达到与真实情况相同的表征效果因此在经过充分训练使预测模型能够准确地还原出真实的概率分布情况下此时生成的预测概率分布与真实概率分布在各个维度上的表现将会更加接近从而使得两者之间无需再引入额外的信息增量即可实现高度一致的状态
相对熵具有以下性质:
(1)当p(x)与q(x)的分布相同时,则其相对熵值为零。
(2)由此可知,在计算DKL(p||q)时所得结果与计算DKL(q||p)时所得结果不同;这表明相对熵运算不具备交换律。
(3)显然地,在所有情况下,DKL(p||q)的结果始终是非负数。
交叉熵
定义离散随机变量X的概率分布函数分别为p(x)和q(x),其中称p(x)为该随机变量的目标概率分布函数;而交叉熵可被理解为当使用q(x)去表示p(x)时所面临的困难程度

将熵、相对熵以及交叉熵的公式放到一起:

通过上面三个公式就可以得到:

相对熵=交叉熵-熵。
在机器学习领域中,默认假设目标的概率密度函数p(x)通常被视为基于固定假设的情况下的统计模型。因此,在优化过程中我们通常旨在通过最小化DKL散度来实现两个概率模型之间的最优匹配
我们设定p(x)为目标分布(即训练数据的分布),我们的目标是使训练得到的分布q(x)尽可能接近p(x),这相当于最小化KL散度D_{KL}(p||q),即最小化交叉熵损失H(p,q)。
从最大似然看交叉熵
考虑一个训练集 X = {x₁, x₂,…, xₘ} 其概率分布由 p(x) 描述。假设我们采用参数化的形式 θ 来构建 q(x;θ),进而利用该模型推导出相应的似然函数

最大似然估计就是求得θ 使得L(θ) 的值最大,也就是

对上式的两边同时取log ,等价优化log 的最大似然估计:

将上式右侧进行归一化处理后不影响argmax 的解;归一化处理后得到的结果等于上式右侧除以样本数量m。

和相对熵等价。
注意上式的

等同于计算随机变量X的对数函数log(X;θ)的平均值。按照大数定律,在样本数量不断增长时, 样本数据集的算术平均将趋近于该随机变量的真实期望值。换句话说,

其中E_{X\sim P}代表基于样本分布P计算出的期望值,从而使得最大似然估计得以基于真实样本的统计特性进行表达

对右边取负号,将最大化变成最小化运算。

因为E_{x \sim p}(\log p(x))代表了训练数据集的平均信息量,在求解最优解的过程中这一项被视为常数项而不参与优化过程。因此,在最小化KL散度的过程中我们可以将其转化为只需要最小化-E_{x \sim p}(\log q(x))这一目标函数的形式;这个目标函数与最大似然估计方法具有完全相同的优化效果。
最大似然估计、相对熵、交叉熵的公式如下

由此可见,在最小化交叉熵的过程中,即通过最小化KL散度(DKL),使得预测分布q(x)与训练样本的真实分布p(x)最为接近。这表明,在KL散度(DKL)与最大似然估计之间存在等价关系。
定义为p(ci),其中ci代表类别,则其间的交叉熵即为

每一个训练样本所属的类别都是明确知道并唯一确定的(概率值达到1),而对其他可能的类别则完全没有归属(概率值为0)。具体来说,在一个三分类任务中(即涉及三个不同类别的分类问题),这三个类别分别对应的是:小猫、宠物猪以及大狗。如果当前有一个训练样本被归类于小猫,则有:

基于预测模型所得出的三个类别分别对应着概率值:其中q(cat)为0.6、而q(pig)与q(dog)则均为0.2;同时我们计算得到p和q之间的交叉熵值为

借助这一特征, 通过将样本类别重新编码, 可以从而简化交叉熵的计算, 这种编码方式被称为one-hot 编码。如前所述的例子所示

该编码方案被设计为在交叉熵的计算过程中主要关注于与训练样本相关的类别预测概率值的估算,并且其余项的结果则为零。
具体的,交叉熵计算公式变成如下:

其中ci表示训练样本对应的类别 ci ,该公式也被称作负对数似然(NLL, negative log-likelihood)。
总结
相对熵可被视为衡量两个概率分布间相似程度的一种指标,在机器学习领域中尤其常用于评估模型预测结果与真实数据之间的差异程度。在分类任务中,默认将数据集划分为训练集和测试集两部分,在这种设定下,默认将数据集划分为训练集和测试集两部分,在这种设定下,默认将数据集划分为训练集和测试集两部分,在这种设定下,默认将数据集划分为训练集和测试集两部分

在本问题中,H§代表训练样本集的熵值,它是一个固定数值.也就是说,最小化相对熵的过程等价于最小化交叉熵.
从最大似然估计转化为最小化负对数似然

也等价于最小化相对熵。
参考
