山东住房建设部网站,wordpress主题xueui,北京pk10网站建设,建筑企业分公司使用总公司资质KL 散度#xff0c;是一个用来衡量两个概率分布的相似性的一个度量指标。
现实世界里的任何观察都可以看成表示成信息和数据#xff0c;一般来说#xff0c;我们无法获取数据的总体#xff0c;我们只能拿到数据的部分样本#xff0c;根据数据的部分样本#xff0c;我们会…KL 散度是一个用来衡量两个概率分布的相似性的一个度量指标。
现实世界里的任何观察都可以看成表示成信息和数据一般来说我们无法获取数据的总体我们只能拿到数据的部分样本根据数据的部分样本我们会对数据的整体做一个近似的估计而数据整体本身有一个真实的分布我们可能永远无法知道。
那么近似估计的概率分布和数据整体真实的概率分布的相似度或者说差异程度可以用 KL 散度来表示。
KL 散度最早是从信息论里演化而来的。所以在介绍 KL 散度之前先介绍一下信息论里有关熵的概念。
熵
信息论中某个信息 xi\large x_{i}xi 出现的不确定性的大小定义为 xi\large x_{i}xi 所携带的信息量用 I(xi)I(x_{i})I(xi) 表示。I(xi)I(x_{i})I(xi) 与信息 xi\large x_{i}xi 出现的概率 P(xi)P(x_{i})P(xi) 之间的关系为
I(xi)log1P(xi)−logP(xi)(1)\begin{aligned} I(x_i) log\frac{1}{P(x_i)} -logP(x_i) \tag{1} \\ \end{aligned} I(xi)logP(xi)1−logP(xi)(1) 例掷两枚骰子求点数和为7的信息量 点数和为7的情况为(1,6) ; (6,1) ; (2,5) ; (5,2) ; (3,4) ; (4,3) 这6种。总的情况为 6*6 36 种。 那么该信息出现的概率为 Px763616P_{x7}\frac{6}{36}\frac{1}{6}Px736661 包含的信息量为 I(7)−logP(7)−log16log6I(7)-\log P(7)-\log\frac{1}{6}\log 6I(7)−logP(7)−log61log6 以上是求单一信息的信息量。但实际情况中会要求我们求多个信息的信息量也就是平均信息量。
假设一共有 n 种信息每种信息出现的概率情况由以下列出
X1X_1X1X2X_2X2X3X_3X3X4X_4X4...............XnX_nXnP(x1)P(x_1)P(x1)P(x2)P(x_2)P(x2)P(x3)P(x_3)P(x3)P(x4)P(x_4)P(x4)…P(xn)P(x_n)P(xn)
同时满足 ∑i1nP(xi)1(2)\begin{aligned} \sum^n_{i1} P(x_i) 1 \tag{2} \\ \end{aligned} i1∑nP(xi)1(2)
则 x1,x2,.....,xnx_1,x_2,.....,x_nx1,x2,.....,xn 所包含的信息量分别是 KaTeX parse error: Undefined control sequence: \logP at position 2: -\̲l̲o̲g̲P̲(x_1),-\logP(x_…平均信息量为 KaTeX parse error: Undefined control sequence: \logP at position 49: …^n_{i1} P(x_i)\̲l̲o̲g̲P̲(x_i) \tag{3} \…
H 与热力学中的熵的定义类似故这又被称为信息熵。 与热力学中的熵的定义类似故这又被称为信息熵。 H(x)−(18log(18)18log(18)14log(14)12log(12))1.75\begin{aligned}H(x) -(\frac{1}{8}\log(\frac{1}{8}) \frac{1}{8}\log(\frac{1}{8}) \frac{1}{4}\log(\frac{1}{4}) \frac{1}{2}\log(\frac{1}{2}) ) 1.75 \end{aligned}H(x)−(81log(81)81log(81)41log(41)21log(21))1.75 连续信息的平均信息量可定义为
H(x)−∫f(x)logf(x)dx(3)\begin{aligned} H(x) -\int f(x)\log f(x)dx \tag{3} \end{aligned} H(x)−∫f(x)logf(x)dx(3)
这里的 f(x)f(x)f(x) 是信息的概率密度。
上述我们提到了信息论中的信息熵 H(x)−∑i1nP(xi)logP(xi)∑i1nP(xi)log1P(xi)H(P)(4)\begin{aligned} H(x) -\sum^n_{i1}P(x_i) \log P(x_i) \sum^n_{i1} P(x_i) \log \frac{1}{P(x_i)} H(P) \tag{4} \end{aligned} H(x)−i1∑nP(xi)logP(xi)i1∑nP(xi)logP(xi)1H(P)(4)
这是一个平均信息量又可以解释为用基于P的编码去编码来自P的样本其最优编码平均所需要的比特个数
接下来我们再提一个概念交叉熵
H(P,Q)−∑i1nP(xi)logQ(xi)∑i1nP(xi)log1Q(xi)(6)\begin{aligned} H(P,Q) -\sum^n_{i1}P(x_i) \log Q(x_i) \sum^n_{i1} P(x_i) \log \frac{1}{Q(x_i)} \tag{6} \end{aligned} H(P,Q)−i1∑nP(xi)logQ(xi)i1∑nP(xi)logQ(xi)1(6)
这就解释为用基于P的编码去编码来自Q的样本所需要的比特个数
【注】P(x)P(x)P(x) 为各字符出现的频率log1P(x)\log \frac{1}{P(x)}logP(x)1 为该字符相应的编码长度log1Q(x)\log \frac{1}{Q(x)}logQ(x)1 为对应于Q 的分布各字符编码长度。
KL 散度
让我们从一个问题开始我们的探索。假设我们是太空科学家正在访问一个遥远的新行星我们发现了一种咬人的蠕虫我们想研究它。我们发现这些蠕虫有10颗牙齿但由于它们不停地咀嚼很多最后都掉了牙。在收集了许多样本后我们得出了每条蠕虫牙齿数量的经验概率分布: 虽然这些数据很好但我们有一个小问题。我们离地球很远把数据寄回家很贵。我们要做的是将这些数据简化为一个只有一两个参数的简单模型。一种选择是将蠕虫牙齿的分布表示为均匀分布。我们知道有11个可能的值我们可以指定1/11的均匀概率 显然我们的数据不是均匀分布的但是看起来也不像我们所知道的任何常见分布。我们可以尝试的另一种选择是使用二项分布对数据进行建模。在这种情况下我们要做的就是估计二项分布的概率参数。我们知道如果我们有n次试验概率是p那么期望就是E[x] np。在本例中n 10期望值是我们数据的平均值计算得到5.7因此我们对p的最佳估计为0.57。这将使我们得到一个二项分布如下所示 将我们的两个模型与原始数据进行比较我们可以看出两个都没有完美匹配原始分布但是哪个更好 现如今有许多错误度量标准但是我们主要关注的是必须使发送的信息量最少。这两个模型都将我们的问题所需的参数量减少。最好的方法是计算分布哪个保留了我们原始数据源中最多的信息。这就是Kullback-Leibler散度的作用。
KL散度又可称为相对熵描述两个概率分布 P 和 Q 的差异或相似性用 DKL(P∣∣Q)D_{KL}(P\left | \right |Q)DKL(P∣∣Q) 表示
DKL(P∣∣Q)H(P,Q)−H(P)∑iP(xi)log1Q(xi)−∑iP(xi)log1P(xi)∑iP(xi)logP(xi)Q(xi)(7)\begin{aligned} D_{KL}(P || Q) H(P,Q) - H(P) \\ \sum_i P(x_i) \log \frac{1}{Q(x_i)} - \sum_i P(x_i) \log \frac{1}{P(x_i)} \\ \sum_i P(x_i) \log \frac{P(x_i)}{Q(x_i)} \tag{7} \\ \end{aligned} DKL(P∣∣Q)H(P,Q)−H(P)i∑P(xi)logQ(xi)1−i∑P(xi)logP(xi)1i∑P(xi)logQ(xi)P(xi)(7)
很显然散度越小说明概率 Q 与概率 P 之间越接近那么估计的概率分布与真实的概率分布也就越接近。
KL散度的性质
非对称性DKL(P∣∣Q)≠DKL(Q∣∣P)D_{KL}(P || Q) \neq D_{KL}(Q || P)DKL(P∣∣Q)DKL(Q∣∣P)DKL(P∣∣Q)≥0D_{KL}(P || Q) \geq 0DKL(P∣∣Q)≥0仅在 PQ时等于0
性质2是很重要的可以用 Jensen 不等式证明。
Jensen 不等式与凸函数是密切相关的。可以说 Jensen 不等式是凸函数的推广而凸函数是 Jensen 不等式的特例。