信息论
- 一个离散变量xxx
- 对于该变量的一个观测值,我们需要一个量来衡量从这个观测量中得到了多少关于 xxx 的信息。 从主观意义上来说,一个不常见的观测值所提供的新信息要比常见的观测值要多。
- 信息量→\to→"惊讶程度"
- h(x)=−log2p(x)h(x)=-log_2{p(x)}h(x)=−log2p(x)
- 高概率对应的信息量低,低概率对应的信息量高;
熵(entroy)
- 传输的平均信息量
H[x]=−∑xp(x)log2p(x) H[x]=-\sum_xp(x)log_2p(x) H[x]=−x∑p(x)log2p(x) - 熵与编码长度(bit)
自然对数熵
现在考虑自然对数表示的熵。此时熵的单位是 nat
而不是 bit
。
我们之前用平均信息量的方式引入了熵,事实上熵的概念是从物理上引入的。
假设我们将 NNN 个相同的小球放入一些容器中,使得第 iii 个容器中有 nin_ini 个球,∑ini=N\sum_i n_i = N∑ini=N。
我们按顺序从第 1 个容器开始往里面放入小球,第 1 个有 NNN 种选择,第 2 个有 N−1N-1N−1 种选择……总共有 N!N!N! 种选择。
但是放入每个容器中的 nin_ini 个球是不区分顺序的,有 ni!n_i!ni! 种可能性放置这些小球,因此总的可能方法有
W=N!∏ini!
W = \frac{N!}{\prod_i n_i!}
W=∏ini!N!
定义熵为
H=1NlnW=1NlnN!−1N∑ilnni!
H = \frac{1}{N} \ln W = \frac 1 N\ln N! - \frac 1 N \sum_{i} \ln n_i !
H=N1lnW=N1lnN!−N1i∑lnni!
当 N→∞N \to \inftyN→∞ 时,由 Stirling
近似公式:
lnN!≈NlnN−N
\ln N! \approx N \ln N - N
lnN!≈NlnN−N
我们有
H=limN→∞1N(NlnN−N)−1N∑i(nilnni−ni)=−limN→∞∑i(niN)ln(niN)=−∑ipilnpi
H = \lim_{N\to \infty} \frac 1 N (N\ln N - N) - \frac 1 N \sum_{i} (n_i \ln n_i - n_i) \\
= -\lim_{N\to \infty} \sum_i \left(\frac{n_i}{N}\right) \ln \left(\frac{n_i}{N}\right)\\
= -\sum_i p_i \ln p_i
H=N→∞limN1(NlnN−N)−N1i∑(nilnni−ni)=−N→∞limi∑(Nni)ln(Nni)=−i∑pilnpi
pi=limN→∞(niN)p_i = \lim_{N\to\infty} \left(\frac{n_i}{N}\right)pi=limN→∞(Nni) 是小球放入第 i 个容器的概率。
在物理上,容器中小球的分布叫做微观状态,各个容器中的小球数目叫做宏观状态。
对于一个离散随机变量 XXX 的取值 xix_ixi 当作一个容器,即有 p(X=xi)=pip(X=x_i)=p_ip(X=xi)=pi,则它的熵为:
H[p]=−∑ip(xi)lnp(xi)
H[p] = - \sum_i p(x_i) \ln p(x_i)
H[p]=−i∑p(xi)lnp(xi)
一般来说,一个离散分布的点越多,分布越均匀,那么对应的熵也越大。
如果其中有一个 pi=1p_i=1pi=1,那么熵取到最小值 0,最大值可以用 Lagrange 乘子求解,Lagrange 函数为
H~=−∑ip(xi)lnp(xi)+λ(∑ip(xi)−1)
\tilde H = - \sum_i p(x_i) \ln p(x_i) + \lambda \left(\sum_i p(x_i) - 1\right)
H~=−i∑p(xi)lnp(xi)+λ(i∑p(xi)−1)
最大化这个函数得到:
∂H~∂p(xi)=−1−lnp(xi)+λ=0 \frac{\partial \tilde H}{\partial p(x_i)} = -1 -\ln p(x_i) + \lambda = 0 ∂p(xi)∂H~=−1−lnp(xi)+λ=0
得到最大熵应该满足一个均匀离散分布 p(xi)=p(xj),∀i,jp(x_i)=p(x_j), \forall i,jp(xi)=p(xj),∀i,j。
若状态总数为 MMM,则 p(xi)=1Mp(x_i) = \frac 1 Mp(xi)=M1,此时,我们有 H=lnMH = \ln MH=lnM。
连续变量的熵
H[x]=−∫p(x)lnp(x)dxH[\mathbf x]=-\int p(\mathbf x) \ln p(\mathbf x) d\mathbf xH[x]=−∫p(x)lnp(x)dx
- 一阶矩:期望/平均数 E[x]E[x]E[x]
- 二阶矩:随机变量平方的期望E[x2]E[x^2]E[x2]
- 三阶矩:E[x3]E[x^3]E[x3]
- ∫iΔi+1Δp(x)dx=p(xi)Δ \int_{i\Delta}^{i+1\Delta} p(x) dx = p(x_i) \Delta ∫iΔi+1Δp(x)dx=p(xi)Δ
我们可以将落在第 iii 小段的 xxx 对应为 xix_ixi,则观测到 xix_ixi 的概率为 p(xi)Δp(x_i) \Deltap(xi)Δ,这给出了一个关于 xix_ixi 的离散分布,其熵为:
HΔ=−∑ip(xi)Δln(p(xi)Δ)=−∑ip(xi)Δln(p(xi))−lnΔ H_{\Delta} = - \sum_i p(x_i) \Delta \ln(p(x_i) \Delta) = - \sum_i p(x_i) \Delta \ln(p(x_i)) - \ln\Delta HΔ=−i∑p(xi)Δln(p(xi)Δ)=−i∑p(xi)Δln(p(xi))−lnΔ
其中 p(xi)Δ=1p(x_i) \Delta= 1p(xi)Δ=1,现在忽略最后的常数项,然后考虑 Δ→0\Delta \to0Δ→0 的情况,我们有
−limΔ→0{∑ip(xi)Δln(p(xi)Δ)}=−∫p(x)lnp(x)dx -\lim_{\Delta \to 0} \left\{ \sum_i p(x_i) \Delta \ln(p(x_i) \Delta) \right\} = -\int p(x) \ln p(x) dx −Δ→0lim{i∑p(xi)Δln(p(xi)Δ)}=−∫p(x)lnp(x)dx
这一项叫做微分熵(differential entropy
),它与离散熵的差别在于一个 lnΔ\ln \DeltalnΔ,在 Δ→0\Delta \to0Δ→0 时会发散的部分。
对于多元向量 x\mathbf xx,微分熵定义为
H[x]=−∫p(x)lnp(x)dx H[\mathbf x]=-\int p(\mathbf x) \ln p(\mathbf x) d\mathbf x H[x]=−∫p(x)lnp(x)dx
在离散分布的例子中,我们看到最大化熵的分布是均匀离散分布。
为了最大化连续分布的熵,我们需要加上 p(x)p(x)p(x) 的一阶矩和二阶矩都固定的条件。
考虑一维情况,我们的问题为
maxp(x) −∫p(x)lnp(x)dxs.t. 1=∫−∞∞p(x)dxμ=∫−∞∞xp(x)dxσ2=∫−∞∞(x−μ)2p(x)dx
\max_{p(x)}~ -\int p(x) \ln p(x) dx \\
s.t.~ 1 = \int_{-\infty}^{\infty} p(x) dx \\
\mu = \int_{-\infty}^{\infty} xp(x) dx\\
\sigma^2 = \int_{-\infty}^{\infty} (x-\mu)^2p(x) dx\\
p(x)max −∫p(x)lnp(x)dxs.t. 1=∫−∞∞p(x)dxμ=∫−∞∞xp(x)dxσ2=∫−∞∞(x−μ)2p(x)dx
Lagrange
函数为
−∫p(x)lnp(x)dx+λ1(∫−∞∞p(x)dx−1)+λ2(∫−∞∞xp(x)dx−μ)+λ3(∫−∞∞(x−μ)2p(x)dx−σ2))
-\int p(x) \ln p(x) dx + \lambda_1 \left(\int_{-\infty}^{\infty} p(x) dx - 1\right) + \lambda_2 \left(\int_{-\infty}^{\infty} xp(x) dx - \mu\right) + \lambda_3 \left(\int_{-\infty}^{\infty} (x-\mu)^2p(x) dx - \sigma^2) \right)
−∫p(x)lnp(x)dx+λ1(∫−∞∞p(x)dx−1)+λ2(∫−∞∞xp(x)dx−μ)+λ3(∫−∞∞(x−μ)2p(x)dx−σ2))
令这个泛函对 p(x)p(x)p(x) 的导数为 0
,得到
1−lnp(x)+λ1+λ2x+λ3(x−μ)2=0
1-\ln p(x)+\lambda_1 + \lambda_2 x + \lambda_3 (x-\mu)^2 = 0
1−lnp(x)+λ1+λ2x+λ3(x−μ)2=0
从而
p(x)=exp{1+λ1+λ2x+λ3(x−μ)2}
p(x) = \exp\left\{1+\lambda_1 + \lambda_2 x + \lambda_3 (x-\mu)^2\right\}
p(x)=exp{1+λ1+λ2x+λ3(x−μ)2}
得到
p(x)=1(2πσ2)1/2exp{−(x−μ)22σ2}
p(x) = \frac{1}{(2\pi\sigma^2)^{1/2}} \exp\left\{-\frac{(x-\mu)^2}{2\sigma^2}\right\}
p(x)=(2πσ2)1/21exp{−2σ2(x−μ)2}
即最大熵的分布是高斯分布。
注意到,我们并没有对 p(x)p(x)p(x) 做非负的约束,但是最大化给出的结果是一个非负的结果。
高斯分布的熵为:
H[x]=12{1+ln(2πσ2)}
H[x]=\frac{1}{2} \left\{1+\ln(2\pi\sigma^2)\right\}
H[x]=21{1+ln(2πσ2)}
从这个表达式我们可以看出,与离散熵不同,连续熵可以为负值,当σ2<12πe时,H(x)<0\sigma^2 < \frac{1}{2\pi e}时, H(x) < 0σ2<2πe1时,H(x)<0,原因是概率密度函数 p(x) 没有小于 1 的限制,因此 −p(x)lnp(x)-p(x)\ln p(x)−p(x)lnp(x) 不能保证非负。
相对熵和互信息
-
1.6.1 相对熵和互信息
假设我们有一个未知分布 p(x)p(\mathbf x)p(x),然后对它建模得到了一个概率分布 q(x)q(\mathbf x)q(x)。
用 q(x)q(\mathbf x)q(x) 的分布来传送 xxx 所用的信息量(q(x)q(\mathbf x)q(x)),比用真实的分布 p(x)p(\mathbf x)p(x) 传送所用的信息量(p(x)p(\mathbf x)p(x))要多一些,多出来的部分为:
KL(p∥q)=−∫p(x)ln(q(x))dx−(−∫p(x)lnp(x))=−∫p(x)ln{q(x)p(x)} KL(p\|q) = - \int p(\mathbf x)\ln(q(\mathbf x)) dx - \left(-\int p(\mathbf x)\ln p(\mathbf x)\right)\\ = - \int p(\mathbf x)\ln \left\{\frac{q(\mathbf x)}{p(\mathbf x)}\right\} KL(p∥q)=−∫p(x)ln(q(x))dx−(−∫p(x)lnp(x))=−∫p(x)ln{p(x)q(x)}
这叫做相对熵(relative entropy
)或者Kullback-Leibler
散度(Kullback-Leibler divergence
)。
K-L
散度不是对称的,即 KL(p∥q)≠KL(q∥p)KL(p\|q) \neq KL(q\|p)KL(p∥q)̸=KL(q∥p)。
K-L
散度满足 KL(p∥q)≥0KL(p\|q) \geq 0KL(p∥q)≥0,当且仅当 p(x)=q(x)p(\mathbf x)=q(\mathbf x)p(x)=q(x) 时取等号。 -
凸函数
如果一个函数的弦(
chord
)始终在函数上或者函数上方,那么这个函数就是凸函数。
在 [a,b][a,b][a,b]的区间内的任意点 xxx 都可以写成 λa+(1−λ)b,0≤λ≤1\lambda a +(1-\lambda)b, 0\leq\lambda \leq 1λa+(1−λ)b,0≤λ≤1,对应的弦上的值为 λf(a)+(1−λ)f(b)\lambda f(a) +(1-\lambda) f(b)λf(a)+(1−λ)f(b),函数值为 f(λa+(1−λ)b)f(\lambda a +(1-\lambda)b)f(λa+(1−λ)b)。
凸性等价于
f(λa+(1−λ)b)≤λf(a)+(1−λ)f(b) f(\lambda a +(1-\lambda)b) \leq \lambda f(a) +(1-\lambda) f(b) f(λa+(1−λ)b)≤λf(a)+(1−λ)f(b)
这也等价于函数的二阶导数非负(如果二阶导数存在)。
如果 f(x)f(x)f(x) 是凸函数,那么 −f(x)-f(x)−f(x) 是凹函数。 -
Jensen 不等式
对于任意凸函数 f(x)f(x)f(x),Jensen
不等式成立:
f(∑i=1Mλixi)≤∑i=1Mλif(xi) f\left(\sum_{i=1}^M \lambda _i x_i\right) \leq \sum_{i=1}^M\lambda_i f(x_i) f(i=1∑Mλixi)≤i=1∑Mλif(xi)
其中 λi≥0,∑iλi=1\lambda_i \geq 0, \sum_i \lambda_i = 1λi≥0,∑iλi=1。等式成立的条件为 fff 是线性,或者所有的 xix_ixi 都相等。
如果我们认为 λi\lambda_iλi 是某个离散分布取 xix_ixi 的概率,那Jenson
不等式可以表示为
f(E[x])≤E[f(x)] f\left(\mathbb E[\mathbf x]\right) \leq \mathbb E[f(\mathbf x)] f(E[x])≤E[f(x)]
不等式成立的条件为 xxx 为常数,或者 fff 是线性的。
更一般的,我们有:
f(E[y(x)])≤E[f(y(x))] f\left(\mathbb E[y(\mathbf x)]\right) \leq \mathbb E[f(y(\mathbf x))] f(E[y(x)])≤E[f(y(x))]
对于连续形式,我们有
f(∫y(x)p(x)dx)≤∫f(y(x))p(x)dx f\left(\int y(\mathbf x)p(\mathbf x)d\mathbf x\right) \leq \int f(y(\mathbf x))p(\mathbf x)d\mathbf x f(∫y(x)p(x)dx)≤∫f(y(x))p(x)dx -
应用 Jensen 不等式
将
Jensen
不等式应用到K-L
散度(−lnx-\ln x−lnx 是凸函数)上:KL(p∣∣q)=−∫p(x)ln{q(x)p(x)}dx≥−ln∫{p(x)q(x)p(x)}=−ln∫q(x)dx=0 KL(p||q)=-\int p(\mathbf x)\ln\left\{\frac{q(\mathbf x)}{p(\mathbf x)}\right\} d\mathbf x \geq -\ln \int \left\{p(\mathbf x) \frac{q(\mathbf x)}{p(\mathbf x)}\right\} = -\ln \int q(\mathbf x)d\mathbf x = 0 KL(p∣∣q)=−∫p(x)ln{p(x)q(x)}dx≥−ln∫{p(x)p(x)q(x)}=−ln∫q(x)dx=0
因为 −lnx-\ln x−lnx 是严格凸的,因此等式只能在 q(x)p(x)\frac{q(\mathbf x)}{p(\mathbf x)}p(x)q(x) 为常数时成立,考虑到两者都是概率分布(积分都为 1),所以只能有 p(x)=q(x)p(\mathbf x) = q(\mathbf x)p(x)=q(x) 成立。
因此,我们可以将K-L
散度来衡量两个分布的差异。
另一方面,我们看到,当我们使用真实的数据分布传送数据,所用信息量的期望是最小的。 -
最小化相对熵
假设我们有一组从未知分布 p(x)p(\mathbf x)p(x) 中产生的数据,我们的模型为 q(x∣θ)q(\mathbf{x|\theta})q(x∣θ),一个决定参数 θ\mathbf \thetaθ 的方法就是最小化 p(x)p(\mathbf x)p(x) 和 q(x∣θ)q(\mathbf{x|\theta})q(x∣θ) 的K-L
散度。然而我们并不知道 p(x)p(x)p(x) 的真实分布,一个近似的方法是使用已观测的数据进行模拟:
KL(p∣q)≈∑n=1N(−lnq(xn∣θ)+lnp(xn)) KL(p|q) \approx \sum_{n=1}^N (-\ln q(\mathbf{x}_n | \mathbf{\theta}) + \ln p(\mathbf x_n)) KL(p∣q)≈n=1∑N(−lnq(xn∣θ)+lnp(xn))
由于右边的部分与 θ\mathbf\thetaθ 无关,因此,最小化
K-L
散度就相当于最大化似然函数。 -
互信息
考虑两个变量 x,y\mathbf{x,y}x,y 的分布,如果它们独立,则 p(x,y)=p(x)p(y)p(\mathbf{x,y}) = p(\mathbf{x})p(\mathbf{y})p(x,y)=p(x)p(y),如果他们不独立,则我们用 p(x,y)p(\mathbf{x,y})p(x,y) 和 p(x)p(y)p(\mathbf{x})p(\mathbf{y})p(x)p(y) 的K-L
散度来衡量它们接近独立的程度:I[x,y]≡KL(p(x,y)∣∣p(x)p(y))=−∬p(x,y)lnp(x)p(y)p(x,y)dxdy I[\mathbf{x,y}] \equiv KL(p(\mathbf{x,y})||p(\mathbf{x})p(\mathbf{y})) = - \iint p(\mathbf{x,y}) \ln \frac{p(\mathbf{x})p(\mathbf{y})}{p(\mathbf{x,y})} d\mathbf xd\mathbf y I[x,y]≡KL(p(x,y)∣∣p(x)p(y))=−∬p(x,y)lnp(x,y)p(x)p(y)dxdy
这叫做 x\mathbf xx 和 y\mathbf yy 的互信息(
mutual information
)。从K-L
散度的性质中我们可以看出,I[x,y]≥0I[\mathbf{x,y}] \geq 0I[x,y]≥0,当且仅当 x,y\mathbf{x,y}x,y 是独立的时候等号成立。另外,我们从定义式中可以得到:
I[x,y]=H[x]−H[x∣y]=H[y]−H[y∣x] I[\mathbf{x,y}] = H[\mathbf x] - H[\mathbf{x|y}] = H[\mathbf y] - H[\mathbf{y|x}] I[x,y]=H[x]−H[x∣y]=H[y]−H[y∣x]
所以我们可以将互信息看成是给定 y\mathbf yy 后 x\mathbf xx 信息量的减少值。