@@ -4,7 +4,7 @@ jupytext:
44 extension : .md
55 format_name : myst
66 format_version : 0.13
7- jupytext_version : 1.17.1
7+ jupytext_version : 1.16.6
88kernelspec :
99 display_name : Python 3 (ipykernel)
1010 language : python
@@ -28,7 +28,7 @@ kernelspec:
2828
2929## 概述
3030
31- 统计散度用于量化两个不同概率分布之间的差异,这些差异可能难以区分 ,原因如下:
31+ 统计散度用于量化两个不同概率分布之间的差异,这些分布可能难以区分 ,原因如下:
3232
3333 * 在一个分布下具有正概率的每个事件在另一个分布下也具有正概率
3434
@@ -42,7 +42,7 @@ kernelspec:
4242
4343* ** 库尔贝克-莱布勒(KL)散度**
4444
45- * ** Jensen– Shannon (JS) 散度**
45+ * ** Jensen- Shannon (JS) 散度**
4646* ** 切尔诺夫熵**
4747
4848这些概念将在多个 quantecon 课程中出现。
@@ -62,7 +62,7 @@ from IPython.display import display, Math
6262
6363## 熵、交叉熵、KL散度入门
6464
65- 在深入之前,我们先介绍一些有用的概念 。
65+ 在深入之前,我们先介绍一些有用的基本概念 。
6666
6767我们暂时假设 $f$ 和 $g$ 是离散随机变量在状态空间 $I = \{ 1, 2, \ldots, n\} $ 上的两个概率质量函数,满足 $f_i \geq 0, \sum_ {i} f_i =1, g_i \geq 0, \sum_ {i} g_i =1$。
6868
7272\log\left(\frac{1}{f_i}\right)
7373$$
7474
75- 他们然后将你预期从单次实现中获得的 ** 信息量** 定义为期望惊奇度
75+ 他们进一步将从单次实现中预期获得的 ** 信息量** 定义为期望惊奇度
7676
7777$$
7878H(f) = \sum_i f_i \log\left(\frac{1}{f_i}\right).
8888均匀分布的熵 $H(f)$ 显然等于 $- \log(n)$。
8989```
9090
91- Kullback 和 Leibler {cite}` kullback1951information ` 将单次抽样 $x$ 提供的用于区分 $f$ 和 $g$ 的信息量定义为对数似然比
91+ Kullback 和 Leibler {cite}` kullback1951information ` 将单次抽样 $x$ 用于区分 $f$ 和 $g$ 所提供的信息量定义为对数似然比
9292
9393$$
9494\log \frac{f(x)}{g(x)}
102102H(f,g) = -\sum_ {i} f_i \log g_i
103103\end{equation}
104104
105- ** KL散度(Kullback-Leibler散度):**
105+
106+
107+ ** Kullback-Leibler (KL) 散度:**
106108\begin{equation}
107109D_ {KL}(f \parallel g) = \sum_ {i} f_i \log\left[ \frac{f_i}{g_i}\right]
108110\end{equation}
@@ -115,6 +117,7 @@ $$ (eq:KLcross)
115117
116118要证明{eq}`eq:KLcross`,注意到
117119
120+
118121\begin{align}
119122D_{KL}(f \parallel g) &= \sum_{i} f_i \log\left[\frac{f_i}{g_i}\right] \\
120123&= \sum_{i} f_i \left[\log f_i - \log g_i\right] \\
@@ -125,26 +128,29 @@ D_{KL}(f \parallel g) &= \sum_{i} f_i \log\left[\frac{f_i}{g_i}\right] \\
125128
126129记住$H(f)$是从$f$中抽取$x$时的预期惊异度。
127130
128- 那么上述等式告诉我们,KL散度是当预期$x$从$f$中抽取而实际从$g$中抽取时产生的"额外惊异度"的期望值。
131+ 那么上述等式告诉我们,KL散度是当预期$x$是从$f$中抽取而实际上是从$g$中抽取时产生的预期"额外惊异度"。
132+
129133
130134## 两个Beta分布:运行示例
131135
132136我们将广泛使用Beta分布来说明概念。
133137
134- Beta分布特别方便,因为它定义在$[0,1]$区间上,通过适当选择其两个参数可以呈现多样的形状 。
138+ Beta分布特别方便,因为它定义在$[0,1]$上,并且通过适当选择其两个参数可以呈现多样的形状 。
135139
136- 具有参数$a$和$b$的Beta分布的密度函数由下式给出:
140+ 具有参数$a$和$b$的Beta分布的密度函数为
137141
138142$$
139143f(z; a, b) = \frac{\Gamma(a+b) z^{a-1} (1-z)^{b-1}}{\Gamma(a) \Gamma(b)}
140144\quad \text{其中} \quad
141145\Gamma(p) := \int_ {0}^{\infty} x^{p-1} e^{-x} dx
142146$$
143147
148+ 我们引入两个Beta分布$f(x)$和$g(x)$,我们将用它们来说明不同的散度度量。
149+
144150让我们在Python中定义参数和密度函数
145151
146152```{code-cell} ipython3
147- # 两个Beta分布的参数
153+ # 两个Beta分布中的参数
148154F_a, F_b = 1, 1
149155G_a, G_b = 3, 1.2
150156
191197
192198它有几个重要的性质:
193199
194- - 非负性(吉布斯不等式 ):$D_{KL}(f\|g) \ge 0$,当且仅当$f$几乎处处等于$g$时取等号
200+ - 非负性(Gibbs不等式 ):$D_{KL}(f\|g) \ge 0$,当且仅当$f$几乎处处等于$g$时取等号
195201- 不对称性:$D_{KL}(f\|g) \neq D_{KL}(g\|f)$(因此它不是度量)
196202- 信息分解:
197- $D_{KL}(f\|g) = H(f,g) - H(f)$,其中$H(f,g)$是交叉熵,$H(f)$是$f$的香农熵
203+ $D_{KL}(f\|g) = H(f,g) - H(f)$,其中$H(f,g)$是交叉熵,$H(f)$是$f$的Shannon熵
198204- 链式法则:对于联合分布$f(x, y)$和$g(x, y)$,
199205 $D_{KL}(f(x,y)\|g(x,y)) = D_{KL}(f(x)\|g(x)) + E_{f}\left[D_{KL}(f(y|x)\|g(y|x))\right]$
200206
201207KL散度在统计推断中扮演着核心角色,包括模型选择和假设检验。
202208
203209{doc}`likelihood_ratio_process`描述了KL散度与预期对数似然比之间的联系,
204- 而讲座{doc}`wald_friedman`将其与序贯概率比检验的检验性能联系起来 。
210+ 而讲座{doc}`wald_friedman`将其与序贯概率比检验的测试性能联系起来 。
205211
206212让我们计算示例分布$f$和$g$之间的KL散度。
207213
296302- $\alpha_i \geq 0$ 且 $\sum_{i=1}^n \alpha_i = 1$,以及
297303- $H(f) = -\int f(x) \log f(x) dx$ 是分布 $f$ 的**香农熵**
298304
299- ## Chernoff熵
305+ ## Chernoff 熵
300306
301- Chernoff熵源自 [大偏差理论](https://en.wikipedia.org/wiki/Large_deviations_theory)的早期应用,该理论通过提供罕见事件的指数衰减率来改进中心极限近似。
307+ Chernoff 熵源自 [大偏差理论](https://en.wikipedia.org/wiki/Large_deviations_theory)的早期应用,该理论通过提供罕见事件的指数衰减率来改进中心极限近似。
302308
303- 对于密度函数 $f$ 和 $g$,Chernoff熵为
309+ 对于密度函数 $f$ 和 $g$,Chernoff 熵为
304310
305311$$
306312C(f,g) = - \log \min_ {\phi \in (0,1)} \int f^{\phi}(x) g^{1-\phi}(x) \, dx.
307313$$
308314
309315注释:
310316
311- - 内部积分是**Chernoff系数 **。
312- - 当 $\phi=1/2$ 时,它变成**Bhattacharyya系数 ** $\int \sqrt{f g}$。
317+ - 内部积分是 **Chernoff 系数 **。
318+ - 当 $\phi=1/2$ 时,它变成 **Bhattacharyya 系数 ** $\int \sqrt{f g}$。
313319- 在具有 $T$ 个独立同分布观测的二元假设检验中,最优错误概率以 $e^{-C(f,g) T}$ 的速率衰减。
314320
315- 在{doc}`likelihood_ratio_process`讲座中,我们将在模型选择的背景下研究Chernoff熵时看到第三点的一个例子。
321+ 我们将在 {doc}`likelihood_ratio_process` 讲座中看到第三点的一个例子,
322+ 我们将在模型选择的背景下研究 Chernoff 熵。
316323
317- 让我们计算示例分布 $f$ 和 $g$ 之间的Chernoff熵 。
324+ 让我们计算示例分布 $f$ 和 $g$ 之间的 Chernoff 熵 。
318325
319326```{code-cell} ipython3
320327def chernoff_integrand(ϕ, f, g):
321- """计算给定ϕ的Chernoff熵中的积分 。"""
328+ """计算给定 ϕ 的 Chernoff 熵中的积分 。"""
322329 def integrand(w):
323330 return f(w)**ϕ * g(w)**(1-ϕ)
324331 result, _ = quad(integrand, 1e-5, 1-1e-5)
325332 return result
326333
327334def compute_chernoff_entropy(f, g):
328- """计算Chernoff熵 C(f,g)。"""
335+ """计算 Chernoff 熵 C(f,g)。"""
329336 def objective(ϕ):
330337 return chernoff_integrand(ϕ, f, g)
331338 result = minimize_scalar(objective, bounds=(1e-5, 1-1e-5), method='bounded')
@@ -335,7 +342,7 @@ def compute_chernoff_entropy(f, g):
335342 return chernoff_entropy, ϕ_optimal
336343
337344C_fg, ϕ_optimal = compute_chernoff_entropy(f, g)
338- print(f"Chernoff熵 C(f,g) = {C_fg:.4f}")
345+ print(f"Chernoff 熵 C(f,g) = {C_fg:.4f}")
339346print(f"最优 ϕ = {ϕ_optimal:.4f}")
340347```
341348
@@ -427,17 +434,16 @@ plt.tight_layout()
427434plt.show()
428435```
429436
430- 现在我们生成图表来直观展示重叠如何随着差异度量的增加而减少。
431-
437+ 现在我们生成图表来直观展示随着差异度量的增加,重叠程度如何减少。
432438
433439```{code-cell} ipython3
434440param_grid = [
435441 ((1, 1), (1, 1)),
436442 ((1, 1), (1.5, 1.2)),
437443 ((1, 1), (2, 1.5)),
438444 ((1, 1), (3, 1.2)),
439- ((1, 1), (5, 1 )),
440- ((1, 1), (0.3, 0.3 ))
445+ ((1, 1), (0.3, 0.3 )),
446+ ((1, 1), (5, 1 ))
441447]
442448```
443449
521527\ell(\theta; X) = \sum_{i=1}^n \log p_\theta(x_i) ,
522528$$
523529
524- 因此最大似然估计选择参数以最小化
530+ 因此最大似然选择参数以最小化
525531
526532$$ D_{KL}(p_e \parallel p_\theta) $$
527533
0 commit comments