手机网站微信代码,运营推广计划怎么写,企业网站推广的重要性,免费做什么代理最赚钱从不确定性减少视角理解KL散度
【 Transformer 系列#xff0c;故事从 d k \sqrt{d_k} dk 说起】 LLM这么火#xff0c;Transformer厥功甚伟#xff0c;某天心血来潮~#xff0c;再去看看#xff01; 它长这个样子#xff1a; 深入浅出 Transformer 看完后#xff…
从不确定性减少视角理解KL散度
【 Transformer 系列故事从 d k \sqrt{d_k} dk 说起】 LLM这么火Transformer厥功甚伟某天心血来潮~再去看看 它长这个样子 深入浅出 Transformer 看完后想起了老生常谈 d k \sqrt{d_k} dk 问题必须一探究竟Transformer 中缩放点积注意力机制探讨除以根号 dk 理由及其影响 感觉不够清楚还是再Review下考研概率论有了基于考研概率论知识解读 Transformer为何自注意力机制要除以根号 dk中间会涉及初始化、标准化、Sofrmax函数于是继续 【初始化相关】深度学习中的常见初始化方法原理、应用与比较 【标准化系列】 数据为什么要进行标准化Z-标准化的神奇蜕变带出了关联知识点: 深度 “炼丹” 术之 Batch Normalization 与 Z - 标准化开启数据的神秘转换 【Softmax复习】Softmax 层反向传播梯度计算实例解析中间想到了经常配套使用的交叉熵于是梳理了交叉熵的前世今生 KL 散度多维度解读概率分布间的隐秘 “距离” 熵与交叉熵从不确定性角度理解 KL 散度 机器学习、深度学习关于熵你所需要知道的一切 本文核心
由于熵表征不确定性大小且基于真实分布 P P P 本身编码是最“有效”的方式即不确定性最小所以当使用其他分布 Q Q Q 来近似 P P P 进行编码时必然会引入更多的不确定性也就意味着交叉熵 H ( P , Q ) H(P, Q) H(P,Q) 肯定会比熵 H ( P ) H(P) H(P) 大。 D K L ( P ∣ ∣ Q ) H ( P , Q ) − H ( P ) D_{KL}(P||Q)H(P, Q)-H(P) DKL(P∣∣Q)H(P,Q)−H(P)即KL散度 交叉熵[H(P, Q)]-熵[H(Q)]鉴于交叉熵 H ( P , Q ) H(P, Q) H(P,Q) 大于等于熵 H ( P ) H(P) H(P)KL散度 D K L ( P ∣ ∣ Q ) D_{KL}(P||Q) DKL(P∣∣Q) 必然是非负的。由于真实分布 其熵 H ( P ) H(P) H(P) 是一个固定值所以最小化 KL 散度等价于最小化交叉熵 H ( P , Q ) H(P, Q) H(P,Q)即 min Q D K L ( P ∣ ∣ Q ) min Q ( H ( P , Q ) − H ( P ) ) min Q H ( P , Q ) \min_{Q} D_{KL}(P||Q)\min_{Q}(H(P, Q)-H(P))\min_{Q} H(P, Q) QminDKL(P∣∣Q)Qmin(H(P,Q)−H(P))QminH(P,Q)这就解释了为何机器/深度学习领域将交叉熵作为损失函数。
引言
在信息论与概率统计的交融领域KL散度Kullback - Leibler Divergence扮演着举足轻重的角色。从不确定性减少的独特视角深入探究KL散度不仅能揭示其本质内涵还能为诸多实际应用提供清晰的理论支撑。而在这个过程中理解熵、交叉熵以及它们之间的关系至关重要尤其要明确熵是表达不确定性大小的量并且交叉熵 H ( P , Q ) H(P, Q) H(P,Q) 必然大于等于熵 H ( P ) H(P) H(P)。 一、信息熵不确定性的精准度量
一信息熵的定义与本质
信息熵 H ( P ) H(P) H(P) 作为衡量概率分布 P P P 不确定性程度的核心指标其数学表达式为 H ( P ) − ∑ i P ( x i ) log P ( x i ) H(P)-\sum_{i}P(x_i)\log P(x_i) H(P)−i∑P(xi)logP(xi)其中 x i x_i xi 涵盖了随机变量所有可能的取值 P ( x i ) P(x_i) P(xi) 则代表取值 x i x_i xi 出现的概率。信息熵本质上量化了从分布 P P P 中随机抽取一个事件时平均所蕴含的信息量。由于熵是表达不确定性大小的分布的不确定性程度越高对应的信息熵数值越大。
例如考虑一个均匀的六面骰子每个面向上的概率均为 1 6 \frac{1}{6} 61。在此情形下每次掷骰子的结果都具有较高的不确定性其信息熵也相对较大。这是因为在掷骰子之前我们难以准确预测哪个面会朝上每个结果都带来了较多的“意外”信息。反之若骰子经过特殊处理使得某一面出现的概率为1而其他面为0此时该骰子的结果几乎没有不确定性信息熵也就趋近于0。
二信息熵的直观理解
可以将信息熵看作是对随机事件结果“混乱程度”或“不可预测性”的一种度量。以抛硬币为例一枚标准的硬币正面和反面出现的概率各为 0.5 0.5 0.5其信息熵相对较高因为在抛硬币之前我们无法确切知晓结果是正面还是反面。而如果硬币被做了手脚总是正面朝上那么它的信息熵就为0因为结果完全确定没有任何不确定性。
二、交叉熵近似分布下的不确定性测度
一交叉熵的定义与作用
当我们尝试使用另一个概率分布 Q Q Q 来近似真实的概率分布 P P P 时交叉熵 H ( P , Q ) H(P, Q) H(P,Q) 便成为了衡量这种近似效果的重要工具。其计算公式为 H ( P , Q ) − ∑ i P ( x i ) log Q ( x i ) H(P, Q)-\sum_{i}P(x_i)\log Q(x_i) H(P,Q)−i∑P(xi)logQ(xi)交叉熵的意义在于它反映了在采用分布 Q Q Q 对源于分布 P P P 的事件进行编码、预测或描述时平均所需要的信息量。
由于熵表征不确定性大小且基于真实分布 P P P 本身编码是最“有效”的方式即不确定性最小所以当使用其他分布 Q Q Q 来近似 P P P 进行编码时必然会引入更多的不确定性也就意味着交叉熵 H ( P , Q ) H(P, Q) H(P,Q) 肯定会比熵 H ( P ) H(P) H(P) 大。
例如假设我们正在预测明天的天气状况真实的天气概率分布 P P P 为晴天 60 % 60\% 60%、多云 30 % 30\% 30%、下雨 10 % 10\% 10%。然而由于某些原因我们错误地认为概率分布 Q Q Q 是晴天 30 % 30\% 30%、多云 30 % 30\% 30%、下雨 40 % 40\% 40%。在这种情况下基于错误的分布 Q Q Q 来预测明天天气相较于基于真实分布 P P P 预测必然会带来更多的不确定性即交叉熵 H ( P , Q ) H(P, Q) H(P,Q) 大于熵 H ( P ) H(P) H(P)。这表明使用不恰当的分布 Q Q Q 进行预测时我们对预测结果更加不确定需要更多的信息量来描述这种预测情况。
二交叉熵与信息熵的关系
交叉熵与信息熵密切相关信息熵 H ( P ) H(P) H(P) 可以视为交叉熵 H ( P , P ) H(P, P) H(P,P) 的特殊情况即当我们使用真实分布 P P P 自身来对事件进行编码或预测时的平均信息量。而交叉熵 H ( P , Q ) H(P, Q) H(P,Q) 则衡量了使用近似分布 Q Q Q 替代真实分布 P P P 时信息量的变化情况。由于熵代表了基于真实分布的最小不确定性所以交叉熵 H ( P , Q ) H(P, Q) H(P,Q) 总是大于等于 H ( P ) H(P) H(P)。
三举个
二分类例子
假设我们要判断一封邮件是垃圾邮件还是正常邮件。真实情况中邮件是垃圾邮件的概率为 P ( 垃圾邮件 ) 0.8 P(\text{垃圾邮件}) 0.8 P(垃圾邮件)0.8是正常邮件的概率为 P ( 正常邮件 ) 0.2 P(\text{正常邮件}) 0.2 P(正常邮件)0.2即真实分布 P P P 为 P [ 0.8 , 0.2 ] P [0.8, 0.2] P[0.8,0.2]。
某邮件分类模型对邮件类别的预测概率分布 Q Q Q 为认为是垃圾邮件的概率 Q ( 垃圾邮件 ) 0.6 Q(\text{垃圾邮件}) 0.6 Q(垃圾邮件)0.6是正常邮件的概率 Q ( 正常邮件 ) 0.4 Q(\text{正常邮件}) 0.4 Q(正常邮件)0.4即 Q [ 0.6 , 0.4 ] Q [0.6, 0.4] Q[0.6,0.4]。
根据交叉熵公式 H ( P , Q ) − ∑ i P ( x i ) log Q ( x i ) H(P, Q)-\sum_{i}P(x_i)\log Q(x_i) H(P,Q)−i∑P(xi)logQ(xi)计算过程如下 H ( P , Q ) − ( P ( 垃圾邮件 ) log Q ( 垃圾邮件 ) P ( 正常邮件 ) log Q ( 正常邮件 ) ) − ( 0.8 × log ( 0.6 ) 0.2 × log ( 0.4 ) ) \begin{align*} H(P, Q) - (P(\text{垃圾邮件})\log Q(\text{垃圾邮件}) P(\text{正常邮件})\log Q(\text{正常邮件}))\\ - (0.8\times\log(0.6) 0.2\times\log(0.4)) \end{align*} H(P,Q)−(P(垃圾邮件)logQ(垃圾邮件)P(正常邮件)logQ(正常邮件))−(0.8×log(0.6)0.2×log(0.4))
以自然常数 e e e 为底计算对数实际应用中也可根据需求选择以2为底等 H ( P , Q ) ≈ − ( 0.8 × ( − 0.5108 ) 0.2 × ( − 0.9163 ) ) − ( − 0.4086 − 0.1833 ) − ( − 0.5919 ) 0.5919 \begin{align*} H(P, Q)\approx - (0.8\times(-0.5108) 0.2\times(-0.9163))\\ - (-0.4086 - 0.1833)\\ - (-0.5919)\\ 0.5919 \end{align*} H(P,Q)≈−(0.8×(−0.5108)0.2×(−0.9163))−(−0.4086−0.1833)−(−0.5919)0.5919
多分类例子
假设我们要对一幅图像进行分类判断它是汽车、飞机、轮船、火车这四类交通工具中的哪一类。真实分布 P P P 如下 P ( 汽车 ) 0.4 P(\text{汽车}) 0.4 P(汽车)0.4 P ( 飞机 ) 0.2 P(\text{飞机}) 0.2 P(飞机)0.2 P ( 轮船 ) 0.3 P(\text{轮船}) 0.3 P(轮船)0.3 P ( 火车 ) 0.1 P(\text{火车}) 0.1 P(火车)0.1
某图像分类模型给出的预测概率分布 Q Q Q 为 Q ( 汽车 ) 0.3 Q(\text{汽车}) 0.3 Q(汽车)0.3 Q ( 飞机 ) 0.3 Q(\text{飞机}) 0.3 Q(飞机)0.3 Q ( 轮船 ) 0.2 Q(\text{轮船}) 0.2 Q(轮船)0.2 Q ( 火车 ) 0.2 Q(\text{火车}) 0.2 Q(火车)0.2
根据交叉熵公式 H ( P , Q ) − ∑ i P ( x i ) log Q ( x i ) H(P, Q)-\sum_{i}P(x_i)\log Q(x_i) H(P,Q)−∑iP(xi)logQ(xi)计算过程如下 H ( P , Q ) − ( P ( 汽车 ) log Q ( 汽车 ) P ( 飞机 ) log Q ( 飞机 ) P ( 轮船 ) log Q ( 轮船 ) P ( 火车 ) log Q ( 火车 ) ) − ( 0.4 × log ( 0.3 ) 0.2 × log ( 0.3 ) 0.3 × log ( 0.2 ) 0.1 × log ( 0.2 ) ) \begin{align*} H(P, Q) - (P(\text{汽车})\log Q(\text{汽车}) P(\text{飞机})\log Q(\text{飞机}) P(\text{轮船})\log Q(\text{轮船}) P(\text{火车})\log Q(\text{火车}))\\ - (0.4\times\log(0.3) 0.2\times\log(0.3) 0.3\times\log(0.2) 0.1\times\log(0.2)) \end{align*} H(P,Q)−(P(汽车)logQ(汽车)P(飞机)logQ(飞机)P(轮船)logQ(轮船)P(火车)logQ(火车))−(0.4×log(0.3)0.2×log(0.3)0.3×log(0.2)0.1×log(0.2))
以自然常数 e e e 为底计算对数 H ( P , Q ) ≈ − ( 0.4 × ( − 1.2040 ) 0.2 × ( − 1.2040 ) 0.3 × ( − 1.6094 ) 0.1 × ( − 1.6094 ) ) − ( − 0.4816 − 0.2408 − 0.4828 − 0.1609 ) − ( − 1.3661 ) 1.3661 \begin{align*} H(P, Q)\approx - (0.4\times(-1.2040) 0.2\times(-1.2040) 0.3\times(-1.6094) 0.1\times(-1.6094))\\ - (-0.4816 - 0.2408 - 0.4828 - 0.1609)\\ - (-1.3661)\\ 1.3661 \end{align*} H(P,Q)≈−(0.4×(−1.2040)0.2×(−1.2040)0.3×(−1.6094)0.1×(−1.6094))−(−0.4816−0.2408−0.4828−0.1609)−(−1.3661)1.3661
在上述两个例子中交叉熵的值反映了模型预测分布与真实分布之间的差异程度。值越小说明模型预测分布与真实分布越接近模型性能相对越好值越大则表明两者差异越大模型可能需要进一步优化。
三、KL散度不确定性变化的量化桥梁
一KL散度的定义推导
KL散度 D K L ( P ∣ ∣ Q ) D_{KL}(P||Q) DKL(P∣∣Q) 通过信息熵和交叉熵的关系来定义即 D K L ( P ∣ ∣ Q ) H ( P , Q ) − H ( P ) D_{KL}(P||Q)H(P, Q)-H(P) DKL(P∣∣Q)H(P,Q)−H(P) 即KL散度 交叉熵[H(P, Q)]-熵[H(Q)]鉴于交叉熵 H ( P , Q ) H(P, Q) H(P,Q) 大于等于熵 H ( P ) H(P) H(P)KL散度 D K L ( P ∣ ∣ Q ) D_{KL}(P||Q) DKL(P∣∣Q) 必然是非负的。从不确定性减少的角度深入剖析KL散度精准地刻画了在使用分布 Q Q Q 近似分布 P P P 的过程中相较于分布 P P P 本身所具有的不确定性所额外增加的不确定性量当 D K L ( P ∣ ∣ Q ) 0 D_{KL}(P||Q)0 DKL(P∣∣Q)0 时表示 Q Q Q 与 P P P 完全相同没有额外增加不确定性。
二KL散度的数值含义
若 D K L ( P ∣ ∣ Q ) D_{KL}(P||Q) DKL(P∣∣Q) 的值较大这明确表明使用分布 Q Q Q 近似分布 P P P 时引入了大量额外的不确定性。以之前的天气预测为例如果我们基于错误的分布 Q Q Q 来做预测会发现预测结果的不确定性比基于真实分布 P P P 时更高即我们对预测结果的把握程度降低。这清晰地反映出分布 Q Q Q 与真实分布 P P P 之间存在较大的差异。
反之若 D K L ( P ∣ ∣ Q ) D_{KL}(P||Q) DKL(P∣∣Q) 接近0这意味着使用分布 Q Q Q 近似分布 P P P 时几乎没有引入额外的不确定性。这表明分布 Q Q Q 与分布 P P P 非常接近在实际应用中例如在文本分类任务里若真实文本类别分布为 P P P模型预测的类别分布为 Q Q Q当 D K L ( P ∣ ∣ Q ) D_{KL}(P||Q) DKL(P∣∣Q) 趋近于0时说明模型预测分布与真实分布高度吻合模型对文本类别的预测不确定性与真实情况相近也就意味着模型性能良好。
三举个
交叉熵H(P,Q)- 熵H(P)计算 show case
下面的计算过程中也是对上面结论的一个验证即交叉熵 H ( P , Q ) H(P, Q) H(P,Q) 肯定会比熵 H ( P ) H(P) H(P) 大 二分类例子 定义概率分布 假设在一个判断用户是否点击广告的场景中真实的点击与未点击的概率分布 P P P 为点击概率 P ( 点击 ) 0.2 P(\text{点击}) 0.2 P(点击)0.2未点击概率 P ( 未点击 ) 0.8 P(\text{未点击}) 0.8 P(未点击)0.8。 某个预测模型给出的概率分布 Q Q Q 为点击概率 Q ( 点击 ) 0.3 Q(\text{点击}) 0.3 Q(点击)0.3未点击概率 Q ( 未点击 ) 0.7 Q(\text{未点击}) 0.7 Q(未点击)0.7。计算熵 H ( P ) H(P) H(P) 根据熵的公式 H ( P ) − ∑ i P ( x i ) log P ( x i ) H(P)-\sum_{i}P(x_i)\log P(x_i) H(P)−∑iP(xi)logP(xi)对于这个二分类问题 H ( P ) − P ( 点击 ) log P ( 点击 ) − P ( 未点击 ) log P ( 未点击 ) − 0.2 × log ( 0.2 ) − 0.8 × log ( 0.8 ) \begin{align*} H(P)-P(\text{点击})\log P(\text{点击})-P(\text{未点击})\log P(\text{未点击})\\ -0.2\times\log(0.2)-0.8\times\log(0.8) \end{align*} H(P)−P(点击)logP(点击)−P(未点击)logP(未点击)−0.2×log(0.2)−0.8×log(0.8) 以自然常数 e e e 为底计算 H ( P ) ≈ − 0.2 × ( − 1.6094 ) − 0.8 × ( − 0.2231 ) ≈ 0.3219 0.1785 ≈ 0.5004 \begin{align*} H(P)\approx - 0.2\times(-1.6094)-0.8\times(-0.2231)\\ \approx0.3219 0.1785\\ \approx0.5004 \end{align*} H(P)≈−0.2×(−1.6094)−0.8×(−0.2231)≈0.32190.1785≈0.5004计算交叉熵 H ( P , Q ) H(P, Q) H(P,Q) 根据交叉熵公式 H ( P , Q ) − ∑ i P ( x i ) log Q ( x i ) H(P, Q)-\sum_{i}P(x_i)\log Q(x_i) H(P,Q)−∑iP(xi)logQ(xi) H ( P , Q ) − P ( 点击 ) log Q ( 点击 ) − P ( 未点击 ) log Q ( 未点击 ) − 0.2 × log ( 0.3 ) − 0.8 × log ( 0.7 ) \begin{align*} H(P, Q)-P(\text{点击})\log Q(\text{点击})-P(\text{未点击})\log Q(\text{未点击})\\ -0.2\times\log(0.3)-0.8\times\log(0.7) \end{align*} H(P,Q)−P(点击)logQ(点击)−P(未点击)logQ(未点击)−0.2×log(0.3)−0.8×log(0.7) 以自然常数 e e e 为底计算 H ( P , Q ) ≈ − 0.2 × ( − 1.2040 ) − 0.8 × ( − 0.3567 ) ≈ 0.2408 0.2854 ≈ 0.5262 \begin{align*} H(P, Q)\approx - 0.2\times(-1.2040)-0.8\times(-0.3567)\\ \approx0.24080.2854\\ \approx0.5262 \end{align*} H(P,Q)≈−0.2×(−1.2040)−0.8×(−0.3567)≈0.24080.2854≈0.5262计算KL散度 D K L ( P ∣ ∣ Q ) D_{KL}(P||Q) DKL(P∣∣Q) 由 D K L ( P ∣ ∣ Q ) H ( P , Q ) − H ( P ) D_{KL}(P||Q)H(P, Q)-H(P) DKL(P∣∣Q)H(P,Q)−H(P)可得 D K L ( P ∣ ∣ Q ) 0.5262 − 0.5004 0.0258 D_{KL}(P||Q)0.5262 - 0.5004 0.0258 DKL(P∣∣Q)0.5262−0.50040.0258结果分析 计算得到的KL散度 D K L ( P ∣ ∣ Q ) 0.0258 D_{KL}(P||Q)0.0258 DKL(P∣∣Q)0.0258表明预测模型的分布 Q Q Q 与真实分布 P P P 存在一定差异。KL散度值越小说明预测分布与真实分布越接近模型的预测效果相对越好。在此例中模型还有优化空间以减小与真实分布的差异。 多分类例子 定义概率分布 假设在一个水果分类任务中要区分苹果、香蕉、橙子和梨真实的概率分布 P P P 为 P ( 苹果 ) 0.3 P(\text{苹果}) 0.3 P(苹果)0.3 P ( 香蕉 ) 0.2 P(\text{香蕉}) 0.2 P(香蕉)0.2 P ( 橙子 ) 0.4 P(\text{橙子}) 0.4 P(橙子)0.4 P ( 梨 ) 0.1 P(\text{梨}) 0.1 P(梨)0.1。 某分类模型给出的预测概率分布 Q Q Q 为 Q ( 苹果 ) 0.25 Q(\text{苹果}) 0.25 Q(苹果)0.25 Q ( 香蕉 ) 0.25 Q(\text{香蕉}) 0.25 Q(香蕉)0.25 Q ( 橙子 ) 0.35 Q(\text{橙子}) 0.35 Q(橙子)0.35 Q ( 梨 ) 0.15 Q(\text{梨}) 0.15 Q(梨)0.15。计算熵 H ( P ) H(P) H(P) 根据熵的公式 H ( P ) − ∑ i P ( x i ) log P ( x i ) H(P)-\sum_{i}P(x_i)\log P(x_i) H(P)−i∑P(xi)logP(xi) H ( P ) − P ( 苹果 ) log P ( 苹果 ) − P ( 香蕉 ) log P ( 香蕉 ) − P ( 橙子 ) log P ( 橙子 ) − P ( 梨 ) log P ( 梨 ) − 0.3 × log ( 0.3 ) − 0.2 × log ( 0.2 ) − 0.4 × log ( 0.4 ) − 0.1 × log ( 0.1 ) \begin{align*} H(P)-P(\text{苹果})\log P(\text{苹果})-P(\text{香蕉})\log P(\text{香蕉})-P(\text{橙子})\log P(\text{橙子})-P(\text{梨})\log P(\text{梨})\\ -0.3\times\log(0.3)-0.2\times\log(0.2)-0.4\times\log(0.4)-0.1\times\log(0.1) \end{align*} H(P)−P(苹果)logP(苹果)−P(香蕉)logP(香蕉)−P(橙子)logP(橙子)−P(梨)logP(梨)−0.3×log(0.3)−0.2×log(0.2)−0.4×log(0.4)−0.1×log(0.1) 以自然常数 e e e 为底计算 H ( P ) ≈ − 0.3 × ( − 1.2040 ) − 0.2 × ( − 1.6094 ) − 0.4 × ( − 0.9163 ) − 0.1 × ( − 2.3026 ) ≈ 0.3612 0.3219 0.3665 0.2303 ≈ 1.2799 \begin{align*} H(P)\approx - 0.3\times(-1.2040)-0.2\times(-1.6094)-0.4\times(-0.9163)-0.1\times(-2.3026)\\ \approx0.3612 0.32190.36650.2303\\ \approx1.2799 \end{align*} H(P)≈−0.3×(−1.2040)−0.2×(−1.6094)−0.4×(−0.9163)−0.1×(−2.3026)≈0.36120.32190.36650.2303≈1.2799计算交叉熵 H ( P , Q ) H(P, Q) H(P,Q) 根据交叉熵公式 H ( P , Q ) − ∑ i P ( x i ) log Q ( x i ) H(P, Q)-\sum_{i}P(x_i)\log Q(x_i) H(P,Q)−∑iP(xi)logQ(xi) H ( P , Q ) − P ( 苹果 ) log Q ( 苹果 ) − P ( 香蕉 ) log Q ( 香蕉 ) − P ( 橙子 ) log Q ( 橙子 ) − P ( 梨 ) log Q ( 梨 ) − 0.3 × log ( 0.25 ) − 0.2 × log ( 0.25 ) − 0.4 × log ( 0.35 ) − 0.1 × log ( 0.15 ) \begin{align*} H(P, Q)-P(\text{苹果})\log Q(\text{苹果})-P(\text{香蕉})\log Q(\text{香蕉})-P(\text{橙子})\log Q(\text{橙子})-P(\text{梨})\log Q(\text{梨})\\ -0.3\times\log(0.25)-0.2\times\log(0.25)-0.4\times\log(0.35)-0.1\times\log(0.15) \end{align*} H(P,Q)−P(苹果)logQ(苹果)−P(香蕉)logQ(香蕉)−P(橙子)logQ(橙子)−P(梨)logQ(梨)−0.3×log(0.25)−0.2×log(0.25)−0.4×log(0.35)−0.1×log(0.15) 以自然常数 e e e 为底计算 H ( P , Q ) ≈ − 0.3 × ( − 1.3863 ) − 0.2 × ( − 1.3863 ) − 0.4 × ( − 1.0498 ) − 0.1 × ( − 1.8971 ) ≈ 0.4159 0.2773 0.4199 0.1897 ≈ 1.3028 \begin{align*} H(P, Q)\approx - 0.3\times(-1.3863)-0.2\times(-1.3863)-0.4\times(-1.0498)-0.1\times(-1.8971)\\ \approx0.41590.27730.41990.1897\\ \approx1.3028 \end{align*} H(P,Q)≈−0.3×(−1.3863)−0.2×(−1.3863)−0.4×(−1.0498)−0.1×(−1.8971)≈0.41590.27730.41990.1897≈1.3028计算KL散度 D K L ( P ∣ ∣ Q ) D_{KL}(P||Q) DKL(P∣∣Q) 由 D K L ( P ∣ ∣ Q ) H ( P , Q ) − H ( P ) D_{KL}(P||Q)H(P, Q)-H(P) DKL(P∣∣Q)H(P,Q)−H(P)可得 D K L ( P ∣ ∣ Q ) 1.3028 − 1.2799 0.0229 D_{KL}(P||Q)1.3028 - 1.2799 0.0229 DKL(P∣∣Q)1.3028−1.27990.0229结果分析 计算得到的KL散度 D K L ( P ∣ ∣ Q ) 0.0229 D_{KL}(P||Q)0.0229 DKL(P∣∣Q)0.0229在多分类的水果分类任务中该值反映了模型预测分布 Q Q Q 与真实分布 P P P 的差异程度。KL散度越小说明模型预测分布与真实分布越接近模型性能越好。此例中模型预测与真实分布有一定接近程度但仍可通过优化提升模型性能减小KL散度。
KL 散度原始公式计算 show case 二分类例子 定义概率分布 在判断用户是否点击广告的场景中真实分布 P P P 为点击概率 P ( 点击 ) 0.2 P(\text{点击}) 0.2 P(点击)0.2未点击概率 P ( 未点击 ) 0.8 P(\text{未点击}) 0.8 P(未点击)0.8。 预测模型的分布 Q Q Q 为点击概率 Q ( 点击 ) 0.3 Q(\text{点击}) 0.3 Q(点击)0.3未点击概率 Q ( 未点击 ) 0.7 Q(\text{未点击}) 0.7 Q(未点击)0.7。根据KL散度原始公式计算 KL散度公式为 D K L ( P ∣ ∣ Q ) ∑ i P ( x i ) log P ( x i ) Q ( x i ) D_{KL}(P||Q)\sum_{i}P(x_i)\log\frac{P(x_i)}{Q(x_i)} DKL(P∣∣Q)i∑P(xi)logQ(xi)P(xi)对于此二分类问题 i i i 取值为“点击”和“未点击”。 D K L ( P ∣ ∣ Q ) P ( 点击 ) log P ( 点击 ) Q ( 点击 ) P ( 未点击 ) log P ( 未点击 ) Q ( 未点击 ) 0.2 × log 0.2 0.3 0.8 × log 0.8 0.7 \begin{align*} D_{KL}(P||Q)P(\text{点击})\log\frac{P(\text{点击})}{Q(\text{点击})}P(\text{未点击})\log\frac{P(\text{未点击})}{Q(\text{未点击})}\\ 0.2\times\log\frac{0.2}{0.3}0.8\times\log\frac{0.8}{0.7} \end{align*} DKL(P∣∣Q)P(点击)logQ(点击)P(点击)P(未点击)logQ(未点击)P(未点击)0.2×log0.30.20.8×log0.70.8 以自然常数 e e e 为底进行计算 0.2 × log 0.2 0.3 0.8 × log 0.8 0.7 ≈ 0.2 × ( − 0.4055 ) 0.8 × ( 0.1335 ) ≈ − 0.0811 0.1068 ≈ 0.0257 \begin{align*} 0.2\times\log\frac{0.2}{0.3}0.8\times\log\frac{0.8}{0.7}\\ \approx0.2\times(-0.4055)0.8\times(0.1335)\\ \approx - 0.0811 0.1068\\ \approx0.0257 \end{align*} ≈≈≈0.2×log0.30.20.8×log0.70.80.2×(−0.4055)0.8×(0.1335)−0.08110.10680.0257结果说明 通过原始公式计算得到的KL散度 D K L ( P ∣ ∣ Q ) ≈ 0.0257 D_{KL}(P||Q)\approx0.0257 DKL(P∣∣Q)≈0.0257 与使用交叉熵和熵相减方法计算出的结果之前计算为 0.0258 0.0258 0.0258 存在微小差异是因为计算过程中保留小数位数导致相近。它表明预测模型的分布 Q Q Q 与真实分布 P P P 存在一定差异KL散度值越小模型预测分布与真实分布越接近模型预测效果相对越好。在此例中模型仍有优化空间以减小与真实分布的差异。 多分类例子 定义概率分布 在水果分类任务中真实分布 P P P 为 P ( 苹果 ) 0.3 P(\text{苹果}) 0.3 P(苹果)0.3 P ( 香蕉 ) 0.2 P(\text{香蕉}) 0.2 P(香蕉)0.2 P ( 橙子 ) 0.4 P(\text{橙子}) 0.4 P(橙子)0.4 P ( 梨 ) 0.1 P(\text{梨}) 0.1 P(梨)0.1。 预测模型的分布 Q Q Q 为 Q ( 苹果 ) 0.25 Q(\text{苹果}) 0.25 Q(苹果)0.25 Q ( 香蕉 ) 0.25 Q(\text{香蕉}) 0.25 Q(香蕉)0.25 Q ( 橙子 ) 0.35 Q(\text{橙子}) 0.35 Q(橙子)0.35 Q ( 梨 ) 0.15 Q(\text{梨}) 0.15 Q(梨)0.15。根据KL散度原始公式计算 根据KL散度公式 D K L ( P ∣ ∣ Q ) ∑ i P ( x i ) log P ( x i ) Q ( x i ) D_{KL}(P||Q)\sum_{i}P(x_i)\log\frac{P(x_i)}{Q(x_i)} DKL(P∣∣Q)i∑P(xi)logQ(xi)P(xi)这里 i i i 取值为“苹果”“香蕉”“橙子”“梨”。 D K L ( P ∣ ∣ Q ) P ( 苹果 ) log P ( 苹果 ) Q ( 苹果 ) P ( 香蕉 ) log P ( 香蕉 ) Q ( 香蕉 ) P ( 橙子 ) log P ( 橙子 ) Q ( 橙子 ) P ( 梨 ) log P ( 梨 ) Q ( 梨 ) 0.3 × log 0.3 0.25 0.2 × log 0.2 0.25 0.4 × log 0.4 0.35 0.1 × log 0.1 0.15 \begin{align*} D_{KL}(P||Q)P(\text{苹果})\log\frac{P(\text{苹果})}{Q(\text{苹果})}P(\text{香蕉})\log\frac{P(\text{香蕉})}{Q(\text{香蕉})}P(\text{橙子})\log\frac{P(\text{橙子})}{Q(\text{橙子})}P(\text{梨})\log\frac{P(\text{梨})}{Q(\text{梨})}\\ 0.3\times\log\frac{0.3}{0.25}0.2\times\log\frac{0.2}{0.25}0.4\times\log\frac{0.4}{0.35}0.1\times\log\frac{0.1}{0.15} \end{align*} DKL(P∣∣Q)P(苹果)logQ(苹果)P(苹果)P(香蕉)logQ(香蕉)P(香蕉)P(橙子)logQ(橙子)P(橙子)P(梨)logQ(梨)P(梨)0.3×log0.250.30.2×log0.250.20.4×log0.350.40.1×log0.150.1 以自然常数 e e e 为底进行计算 ≈ 0.3 × ( 0.1823 ) 0.2 × ( − 0.2231 ) 0.4 × ( 0.1335 ) 0.1 × ( − 0.4055 ) ≈ 0.0547 − 0.0446 0.0534 − 0.0405 ≈ 0.0230 \begin{align*} \approx0.3\times(0.1823)0.2\times(-0.2231)0.4\times(0.1335)0.1\times(-0.4055)\\ \approx0.0547 - 0.0446 0.0534 - 0.0405\\ \approx0.0230 \end{align*} ≈0.3×(0.1823)0.2×(−0.2231)0.4×(0.1335)0.1×(−0.4055)≈0.0547−0.04460.0534−0.0405≈0.0230结果说明 通过原始公式计算得到的KL散度 D K L ( P ∣ ∣ Q ) ≈ 0.0230 D_{KL}(P||Q)\approx0.0230 DKL(P∣∣Q)≈0.0230 与之前使用交叉熵和熵相减方法计算出的结果之前计算为 0.0229 0.0229 0.0229 存在微小差异是因为计算过程中保留小数位数导致相近。该值反映了在多分类的水果分类任务中模型预测分布 Q Q Q 与真实分布 P P P 的差异程度。KL散度越小模型预测分布与真实分布越接近模型性能越好。此例中模型虽有一定接近程度但仍可优化以进一步减小KL散度提升模型性能。
四、最小化 KL 散度等价于最小化交叉熵
已知KL散度的计算公式为 D K L ( P ∣ ∣ Q ) H ( P , Q ) − H ( P ) D_{KL}(P||Q)H(P, Q)-H(P) DKL(P∣∣Q)H(P,Q)−H(P)其中 H ( P ) H(P) H(P) 是分布 P P P 的熵 H ( P , Q ) H(P, Q) H(P,Q) 是分布 P P P 和 Q Q Q 的交叉熵 。
因为 H ( P ) − ∑ i P ( x i ) log P ( x i ) H(P)-\sum_{i}P(x_i)\log P(x_i) H(P)−i∑P(xi)logP(xi)这里 P ( x i ) P(x_i) P(xi) 是分布 P P P 中事件 x i x_i xi 发生的概率且对于给定的分布 P P P其熵 H ( P ) H(P) H(P) 是一个固定值因为分布 P P P 确定后 P ( x i ) P(x_i) P(xi) 就确定了 H ( P ) H(P) H(P) 的计算结果也就确定了。所以最小化 D K L ( P ∣ ∣ Q ) D_{KL}(P||Q) DKL(P∣∣Q) 就等价于最小化 H ( P , Q ) − H ( P ) H(P, Q)-H(P) H(P,Q)−H(P) 。由于 H ( P ) H(P) H(P) 为常数设 C H ( P ) C H(P) CH(P)那么最小化 D K L ( P ∣ ∣ Q ) D_{KL}(P||Q) DKL(P∣∣Q) 可表示为 min Q D K L ( P ∣ ∣ Q ) min Q ( H ( P , Q ) − C ) \min_{Q} D_{KL}(P||Q)\min_{Q}(H(P, Q)-C) QminDKL(P∣∣Q)Qmin(H(P,Q)−C)
又因为常数 C C C 不影响求最小值的过程对于函数 f ( Q ) H ( P , Q ) − C f(Q)H(P, Q)-C f(Q)H(P,Q)−C min Q f ( Q ) \min_{Q} f(Q) minQf(Q) 与 min Q ( H ( P , Q ) ) \min_{Q}(H(P, Q)) minQ(H(P,Q)) 的解是相同的所以 min Q D K L ( P ∣ ∣ Q ) min Q H ( P , Q ) \min_{Q} D_{KL}(P||Q)\min_{Q} H(P, Q) QminDKL(P∣∣Q)QminH(P,Q)
这就说明了最小化 D K L ( P ∣ ∣ Q ) D_{KL}(P||Q) DKL(P∣∣Q) 等价于最小化交叉熵 H ( P , Q ) H(P, Q) H(P,Q) 。用数学语言完整表述为
已知 D K L ( P ∣ ∣ Q ) H ( P , Q ) − H ( P ) D_{KL}(P||Q)H(P, Q)-H(P) DKL(P∣∣Q)H(P,Q)−H(P)其中 H ( P ) − ∑ i P ( x i ) log P ( x i ) H(P)-\sum_{i}P(x_i)\log P(x_i) H(P)−i∑P(xi)logP(xi) 为定值那么 min Q D K L ( P ∣ ∣ Q ) min Q ( H ( P , Q ) − H ( P ) ) min Q H ( P , Q ) \min_{Q} D_{KL}(P||Q)\min_{Q}(H(P, Q)-H(P))\min_{Q} H(P, Q) QminDKL(P∣∣Q)Qmin(H(P,Q)−H(P))QminH(P,Q)
五、实际应用
一机器学习领域
在机器学习中模型训练的核心目标之一是使模型的预测分布 Q Q Q 尽可能逼近真实数据分布 P P P。通过最小化KL散度例如在变分自编码器VAE等模型中能够有效降低模型预测的不确定性从而提高模型的准确性和可靠性。由于交叉熵 H ( P , Q ) H(P, Q) H(P,Q) 大于等于 H ( P ) H(P) H(P)在训练过程中模型不断调整参数使得预测分布 Q Q Q 逐渐接近真实分布 P P PKL散度随之减小模型对数据的拟合能力和预测能力不断增强同时也意味着模型预测所引入的额外不确定性在不断减少。
二信号处理领域
在信号处理领域信号在传输过程中可能会受到噪声干扰等因素的影响导致接收端接收到的信号特征分布 Q Q Q 偏离真实发送信号的分布 P P P。通过计算KL散度可以精确衡量这种偏离所导致的额外不确定性增加程度进而准确评估信号的失真程度。基于此我们能够为信号的恢复和优化提供关键依据采取相应的处理措施来减少信号失真提高信号质量。因为交叉熵 H ( P , Q ) H(P, Q) H(P,Q) 大于 H ( P ) H(P) H(P)所以KL散度能够准确反映出由于信号特征分布的改变所带来的不确定性增加帮助我们更好地理解信号的变化情况。
从不确定性减少的视角深入理解KL散度为我们提供了一种直观且强大的方式来衡量不同概率分布之间的差异以及评估基于近似分布所做决策或预测的质量。其在信息论、机器学习、信号处理等众多领域的广泛应用充分彰显了其在现代科学技术中的重要地位和价值。而明确熵与交叉熵的大小关系更是深入理解KL散度及其应用的关键所在。