[机器学习]——信息、信息熵、KL散度、交叉熵

前言

假设有随机变量X和随机变量X’,两者拥有同样的m大小的样本空间(可能发生的事件),但两个满足不同的分布:P和Q(同一个事件发生的概率可能不同)。

信息

当X=x_i时,表明x_i这个实值所对应的事件发生了,此时x_i这个事件的信息(自信息)定义为:
I ( x i ) = − l o g p ( x i ) I(x_i) = -logp(x_i) I(xi)=logp(xi)
由公式可知,x_i这个事件发生的概率越大,则它所包含的信息就越少。

信息熵

信息是单个事件x_i的信息量,而信息熵是随机变量X的信息量,定义为:
H ( X ) = ∑ i = 1 m − p ( x i ) l o g ( p ( x i ) ) H(X)=\sum_{i=1}^m-p(x_i)log(p(x_i)) H(X)=i=1mp(xi)log(p(xi))

KL散度

KL散度用于衡量随机变量X和随机变量X’它们分布(P和Q)的差异,定义为:
D K L ( P ∣ ∣ Q ) = ∑ i = 1 m P ( x i ) l o g ( P ( x i ) / Q ( x i ) ) D_{KL}(P||Q)=\sum_{i=1}^mP(x_i)log(P(x_i)/Q(x_i)) DKL(PQ)=i=1mP(xi)log(P(xi)/Q(xi))

根据的https://blog.csdn.net/weixinhum/article/details/85064685推导可知,KL散度是非负的:
在这里插入图片描述

交叉熵

上面KL散度中,以P为真实分布,以Q为模型拟合出来的分布,KL散度越小越好。而由于拆分:

D K L ( P ∣ ∣ Q ) = ∑ i = 1 m P ( x i ) l o g ( P ( x i ) / Q ( x i ) ) D_{KL}(P||Q)=\sum_{i=1}^mP(x_i)log(P(x_i)/Q(x_i)) DKL(PQ)=i=1mP(xi)log(P(xi)/Q(xi))
D K L ( P ∣ ∣ Q ) = ∑ i = 1 m P ( x i ) l o g ( P ( x i ) ) − ∑ i = 1 m P ( x i ) l o g ( Q ( x i ) ) D_{KL}(P||Q)=\sum_{i=1}^mP(x_i)log(P(x_i)) - \sum_{i=1}^mP(x_i)log(Q(x_i)) DKL(PQ)=i=1mP(xi)log(P(xi))i=1mP(xi)log(Q(xi))
∑ i = 1 m P ( x i ) l o g ( P ( x i ) ) 就 = − H ( X ) \sum_{i=1}^mP(x_i)log(P(x_i))就=-H(X) i=1mP(xi)log(P(xi))=H(X)

即,计算拆分KL散度之后发现,其前项就是真实分布P所对应的那个随机变量X的信息熵,它来自于模型的训练集,是一个计算好的常数。所以,为了简便计算,一般不计算前向,而直接最小化后项,也就是:
最 小 化 − ∑ i = 1 m P ( x i ) l o g ( Q ( x i ) ) 就 可 以 了 最小化- \sum_{i=1}^mP(x_i)log(Q(x_i))就可以了 i=1mP(xi)log(Q(xi))
而玩意儿就被称为交叉熵。

后记

只是从公式层面大致理解了一下。我认为在介绍这几个概念的过程中,一定不能离开概率论中的基本定义,比如:

  • 随机变量:是一个函数,把样本空间中的样本点映射成实值
  • 样本空间:随机试验中所有可能的事件(结果)集合
  • 事件发生:引入了随机变量之后,那就是随机变量取一个具体的实值—>X(某事件)=x_i—>某事件得以发生

等术语,否则会造成混乱。以后再做深入理解。

猜你喜欢

转载自blog.csdn.net/jokerxsy/article/details/118035173