图解AI数学基础 | 信息论

8,144 阅读5分钟

ShowMeAI研究中心


信息论是运用概率论与数理统计的方法研究信息、信息熵、通信系统、数据传输、密码学、数据压缩等问题的应用数学学科。信息论中包含的知识和概念在机器学习中也有应用,典型的例子是其核心思想『熵』的应用。

例如,决策树模型ID3、C4.5中是利用信息增益来确定划分特征而逐步生长和构建决策树的;其中,信息增益就是基于信息论中的熵。

1.熵(Entropy)

熵是1854年由克劳休斯提出的一个用来度量体系混乱程度的单位,并阐述了热力学第二定律熵增原理:在孤立系统中,体系与环境没有能量交换,体系总是自发的向混乱度增大的方向变化,使整个系统的熵值越来越大。

熵越大,表征的随机变量的不确定度越大,其含有的信息量越多

熵 Entropy

随机变量XX可能的取值为{x1,x2,,xn}\left\{ x_{1},x_{2} ,\dots ,x_{n} \right\},其概率分布为P(X=xi)=piP\left( X=x_{i} \right) =p_{i}i=1,2,,ni = 1, 2, \dots, n,则随机变量XX的熵定义为H(X)H(X)

H(X)=i=1nP(xi)logP(xi)=i=1nP(xi)1logP(xi)H\left( X \right) =-\sum_{i=1}^{n}{P\left( x_{i} \right) logP\left( x_{i} \right) } =\sum_{i=1}^{n}{P\left( x_{i} \right) \frac{1}{logP\left( x_{i} \right) } }

2.联合熵(Joint Entropy )

联合熵 Joint Entropy

联合熵,就是度量一个联合分布的随机系统的不确定度。分布为P(x,y)P(x,y)的一对随机变量(X,Y)(X,Y),其联合熵定义为:

H(X,Y)=i=1nj=1nP(xi,yj)logP(xi,yj)=E[log1p(x,y)]H\left( X,Y \right) =-\sum_{i=1}^{n}{\sum_{j=1}^{n}{P\left( x_{i} ,y_{j} \right)} logP\left( x_{i},y_{j} \right) } =E\left[ \log\frac{1}{p(x,y)} \right]

联合熵的物理意义,是观察一个多随机变量的随机系统获得的信息量,是对二维随机变量(X,Y)(X,Y)不确定性的度量。

3.条件熵(Conditional Entropy)

YY的条件熵是指『在随机变量XX发生的前提下,随机变量YY发生新带来的熵』,用H(YX)H(Y | X)表示:

H(YX)=x,yP(x,y)logP(yx)H\left(Y|X \right) =-\sum_{x,y}^{}{P\left( x,y \right) logP\left( y|x \right) }

条件熵 Conditional Entropy

条件熵的物理意义,在得知某一确定信息的基础上获取另外一个信息时所获得的信息量,用来衡量在已知随机变量的XX条件下,随机变量YY的不确定性。

4.相对熵(Kullback–Leibler divergence)

相对熵在信息论中用来描述两个概率分布差异的熵,叫作KL散度、相对熵、互熵、交叉熵、信息增益。对于一个离散随机变量的两个概率分布PPQQ来说,它们的相对熵定义为:

D(PQ)=i=1nP(xi)logP(xi)Q(xi)D\left( P||Q \right) =\sum_{i=1}^{n}{P\left( x_{i} \right) log\frac{P\left( x_{i} \right) }{Q\left( x_{i} \right) } }

相对熵 Kullback–Leibler divergence

注意:公式中PP表示真实分布,QQ表示PP的拟合分布,D(PQ)D(QP)D(P||Q) ≠ D(Q||P)

相对熵表示当用概率分布QQ来拟合真实分布PP时,产生的信息损耗。

5.交叉熵(Cross Entropy)

交叉熵 Cross Entropy

交叉熵在信息论中用于度量两个概率分布间的差异性。将上述相对熵(KL散度)公式拆开,可以得到 相对熵=交叉熵-熵

D(PQ)=i=1nP(xi)log(P(xi)Q(xi))=i=1nP(xi)log(P(xi))i=1nP(xi)log(Q(xi))=H(P(x))+[i=1nP(xi)log(Q(xi))]\begin{aligned} D(P || Q) &=\sum_{i=1}^{n} P\left(x_{i}\right) \log \left(\frac{P\left(x_{i}\right)}{Q\left(x_{i}\right)}\right) \\ &= \sum_{i=1}^{n} P\left(x_{i}\right) \log \left(P\left(x_{i}\right)\right) -\sum_{i=1}^{n} P\left(x_{i}\right) \log \left(Q\left(x_{i}\right)\right) \\ &=- H(P(x)) +\left[-\sum_{i=1}^{n} P\left(x_{i}\right) \log \left(Q\left(x_{i}\right)\right)\right] \end{aligned}

因此,对于一个离散随机变量的两个概率分布 PPQQ 来说,它们的交叉熵定义为:

H(P,Q)=i=1nP(xi)log(Q(xi))H\left( P,Q \right) =-\sum_{i=1}^{n}{P\left( x_{i} \right) log({Q\left( x_{i} \right) } } )

使用机器学习训练网络时,输入数据与标签通常是确定的。那么,真实概率分布 P(x)P(x) 是确定的,因此熵 H(P(x))H(P(x)) 是一个可以确定的常量。

由上述推导可得,交叉熵 = 相对熵+熵 = 相对熵+一个常量。所以交叉熵也可以用来描述真实概率分布 P(x)P(x) 与预测概率分布 Q(x)Q(x) 的差异(值越小表示预测结果越好),且交叉熵的计算公式更简单。因此在机器学习中,通常使用交叉熵损失函数来计算Loss。

6.互信息(Mutual Information)

互信息是信息论里一种有用的信息度量方式,它可以看成是一个随机变量中包含的关于另一个随机变量的信息量,或者说是一个随机变量由于已知另一个随机变量而减少的不肯定性。

互信息的计算方式定义如下:

I(X,Y)=xXyYP(x,y)logP(x,y)P(x)P(y)I\left( X,Y \right) =\sum_{x\in X}^{}{\sum_{y\in Y}^{}{P\left( x,y \right) } log\frac{P\left( x,y \right) }{P\left( x \right) P\left( y \right) } }

互信息 Mutual Information

7.常用等式(useful equations)

1)条件熵、联合熵与熵之间的关系

H(YX)=H(X,Y)H(X)H\left( Y|X \right) =H\left( X,Y\right) -H\left( X \right)

推导过程如下

H(X,Y)H(X)=x,yp(x,y)logp(x,y)+xp(x)logp(x)=x,yp(x,y)logp(x,y)+x(yp(x,y))logp(x)=x,yp(x,y)logp(x,y)+x,yp(x,y)logp(x)=x,yp(x,y)logp(x,y)p(x)=x,yp(x,y)logp(yx)\begin{aligned} H(X, Y)-H(X) &=-\sum_{x, y} p(x, y) \log p(x, y)+\sum_{x} p(x) \log p(x) \\ &=-\sum_{x, y} p(x, y) \log p(x, y)+\sum_{x}\left(\sum_{y} p(x, y)\right) \log p(x) \\ &=-\sum_{x, y} p(x, y) \log p(x, y)+\sum_{x, y} p(x, y) \log p(x) \\ &=-\sum_{x, y} p(x, y) \log \frac{p(x, y)}{p(x)} \\ &=-\sum_{x, y} p(x, y) \log p(y \mid x) \end{aligned}
  • 第二行推到第三行的依据是边缘分布P(x)P(x)等于联合分布P(x,y)P(x,y)的和;

  • 第三行推到第四行的依据是把公因子logP(x)logP(x)乘进去,然后把x,yx,y写在一起;

  • 第四行推到第五行的依据是:因为两个σ\sigma都有P(x,y)P(x,y),故提取公因子P(x,y)P(x,y)放到外边,然后把里边的logP(x,y)logP(x)-(log P(x,y) - log P(x))写成log(P(x,y)/P(x))- log (P(x,y) / P(x) )

  • 第五行推到第六行的依据是:P(x,y)=P(x)P(yx)P(x,y) = P(x) * P(y|x),故P(x,y)/P(x)=P(yx)P(x,y) / P(x) = P(y|x)

2)条件熵、联合熵与互信息之间的关系

H(YX)=H(Y)I(X,Y)H\left( Y|X \right) =H\left( Y \right) -I\left( X,Y \right)

推导过程如下:

H(Y)I(X,Y)=yp(y)logp(y)x,yp(x,y)logp(x,y)p(x)p(y)=y(xp(x,y))logp(y)x,yp(x,y)logp(x,y)p(x)p(y)=x,yp(x,y)logp(y)x,yp(x,y)logp(x,y)p(x)p(y)=x,yp(x,y)logp(x,y)p(x)=x,yp(x,y)logp(yx)=H(YX)\begin{aligned} H(Y)-I(X, Y) &=-\sum_{y} p(y) \log p(y)-\sum_{x, y} p(x, y) \log \frac{p(x, y)}{p(x) p(y)} \\ &=-\sum_{y}\left(\sum_{x} p(x, y)\right) \log p(y)-\sum_{x, y} p(x, y) \log \frac{p(x, y)}{p(x) p(y)} \\ &=-\sum_{x, y} p(x, y) \log p(y)-\sum_{x, y} p(x, y) \log \frac{p(x, y)}{p(x) p(y)} \\ &=-\sum_{x, y} p(x, y) \log \frac{p(x, y)}{p(x)} \\ &=-\sum_{x, y} p(x, y) \log p(y \mid x) \\ &=H(Y \mid X) \end{aligned}

3)互信息的定义

常用等式 useful equations

由上方的两个公式

  • H(YX)=H(Y)I(X,Y)H(Y|X) = H(Y) - I(X,Y)

  • H(YX)=H(X,Y)H(X)H(Y|X) = H(X,Y) - H(X)

可以推出I(X,Y)=H(X)+H(Y)H(X,Y)I(X,Y)= H(X) + H(Y) - H(X,Y),此结论被多数文献作为互信息的定义

8.最大熵模型(Max Entropy Model)

机器学习领域,概率模型学习过程中有一个最大熵原理,即学习概率模型时,在所有可能的概率分布中,熵最大的模型是最好的模型。

通常用约束条件来确定模型的集合,所以最大熵模型原理也可以表述为:在满足约束条件的模型集合中,选取熵最大的模型。

前面我们知道,若随机变量XX的概率分布是P(xi)P\left( x_{i} \right),其熵的定义如下:

H(X)=i=1nP(xi)logP(xi)=i=1nP(xi)1logP(xi)H\left( X \right) =-\sum_{i=1}^{n}{P\left( x_{i} \right) logP\left( x_{i} \right) } =\sum_{i=1}^{n}{P\left( x_{i} \right) \frac{1}{logP\left( x_{i} \right) } }

最大熵模型 Max Entropy Model

熵满足下列不等式:0H(X)logX0\leq H\left( X \right) \leq log\left| X \right|

  • X|X|XX的取值个数
  • 当且仅当XX的分布是均匀分布时,右边的等号成立;也就是说,当XX服从均匀分布时,熵最大。

直观地看,最大熵原理认为:

  • 要选择概率模型,首先必须满足已有的事实,即约束条件;
  • 在没有更多信息的情况下,那些不确定的部分都是『等可能的』。最大熵原理通过熵的最大化来表示等可能性;『等可能』不易操作,而熵则是一个可优化的指标。

ShowMeAI相关文章推荐

ShowMeAI系列教程推荐