KL散度(Divergence)

本文介绍了信息论中的基本概念,包括信息量、信息熵和KL散度。信息量衡量单个事件的信息含量,信息熵是所有可能事件信息量的期望,反映随机变量的不确定性。而KL散度用于度量两个概率分布的差异,是非对称的且总是非负。交叉熵在机器学习中常作为损失函数,衡量模型预测概率分布与真实分布的匹配程度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、信息量

首先我们要懂信息量的概念,任何一个事件都会承载一个信息量。当一件事情发生的概率很高时,他承载的信息量就越少,例如“1+1=2”这个事情我们是已知的,所以当别人告诉我们这件事时我们不能获取任何信息,即信息量为0,但是”中国足球世界杯夺冠”这件事给我们的信息量是巨大的,我们将离散型随机变量 X X X包含的信息量如下表示:

X X X是一个离散型随机变量,概率分布 P = p ( X = x i ) P=p(X=x_i) P=p(X=xi),则定义事件 X = x i X=x_i X=xi的信息量为: I ( x i ) = − l o g ( p ( x i ) ) I(x_i)=-log(p(x_i)) I(xi)=log(p(xi))

二、信息熵

信息量是单个事件发生的情况下我们所获得的信息量,当然一个离散型随机变量 X X X包含不止一个事件,我们将其全部列出,得到所有可能发生的事件的信息量的期望,这个期望就是信息熵。数学表达如下所是:

假设 X X X是一个离散型随机变量,且有 n n n种可能性,发生 x i x_i xi事件的概率为 p ( x i ) p(x_i) p(xi),则 X X X的信息熵为: H ( X ) = − ∑ i = 1 n p ( x i ) l o g ( p ( x i ) ) H(X)=-\sum_{i=1}^{n}p(x_i)log(p(x_i)) H(X)=i=1np(xi)log(p(xi))

特别的,对于二项分布的问题(0-1分布),信息熵的计算如下:

H ( X ) = − ∑ i = 1 n p ( x i ) l o g ( p ( x i ) ) = − p ( x ) l o g ( p ( x ) ) − ( 1 − p ( x ) ) l o g ( 1 − p ( x ) ) H(X)=-\sum_{i=1}^{n}p(x_i)log(p(x_i))=-p(x)log(p(x))-(1-p(x))log(1-p(x)) H(X)=i=1np(xi)log(p(xi))=p(x)log(p(x))(1p(x))log(1p(x))

三、KL散度(相对熵)

D K L ( p ∣ ∣ q ) = ∑ i = 1 N [ p ( x i ) l o g p ( x i ) − p ( x i ) l o g q ( x i ) ] D_{KL}(p||q)=\sum_{i=1}^{N}[p(x_i)log{p(x_i)}-p(x_i)log{q(x_i)}] DKL(pq)=i=1N[p(xi)logp(xi)p(xi)logq(xi)]

对于同一个随机变量 X X X,有两个单独的概率分布 P ( x )   a n d   Q ( x ) P(x) ~and ~Q(x) P(x) and Q(x),用KL散度来衡量这两个分布的差异。

通常情况下: P ( x ) P(x) P(x)表示真实分布, Q ( x ) Q(x) Q(x)表示模型所预测的分布,KL散度用来计算两个分布的差异,即 D K L ( p ∣ ∣ q ) = ∑ i = 1 n p ( x i ) l o g ( p ( x i ) q ( x i ) ) D_{KL}(p||q)=\sum_{i=1}^{n}p(x_i)log(\frac{p(x_i)}{q(x_i)}) DKL(pq)=i=1np(xi)log(q(xi)p(xi)),公式表示当 Q Q Q的分布越来越接近 P P P(即 Q Q Q的分布拟合 P P P)时,散度越小,损失值越小

KL散度不具有对称性,即分布 P P P到分布 Q Q Q的距离不等于分布 Q Q Q到分布 P P P的距离 D K L ( P ∣ ∣ Q ) ≠ D K L ( Q ∣ ∣ P ) D_{KL}(P||Q)\neq D_{KL}(Q||P) DKL(PQ)=DKL(QP)KL散度非负

KL非负证明:

要证: D K L ( p ∣ ∣ q ) = ∑ i = 1 N [ p ( x i ) l o g p ( x i ) − p ( x i ) l o g q ( x i ) ] ⩾ 0 D_{KL}(p||q)=\sum_{i=1}^{N}[p(x_i)log{p(x_i)}-p(x_i)log{q(x_i)}]\geqslant 0 DKL(pq)=i=1N[p(xi)logp(xi)p(xi)logq(xi)]0

即证: ∑ i = 1 n p ( x i ) l o g ( p ( x i ) q ( x i ) ) ⩽ 0 \sum_{i=1}^{n}p(x_i)log(\frac{p(x_i)}{q(x_i)})\leqslant 0 i=1np(xi)log(q(xi)p(xi))0

又: l n ( x ) ⩽ x − 1 ln(x)\leqslant x-1 ln(x)x1,当且仅当 x = 1 x=1 x=1时等号成立

故: ∑ i = 1 n p ( x i ) l o g ( p ( x i ) q ( x i ) ) ⩽ ∑ i = 1 n p ( x i ) ( p ( x i ) q ( x i ) − 1 ) = ∑ i = 1 n [ p ( x i ) − q ( x i ) ] = 0 \sum_{i=1}^{n}p(x_i)log(\frac{p(x_i)}{q(x_i)})\leqslant \sum_{i=1}^{n}p(x_i)(\frac{p(x_i)}{q(x_i)}-1)=\sum_{i=1}^{n}[p(x_i)-q(x_i)]=0 i=1np(xi)log(q(xi)p(xi))i=1np(xi)(q(xi)p(xi)1)=i=1n[p(xi)q(xi)]=0

四、交叉熵

H ( p , q ) = H ( p ) + D K L ( p ∣ ∣ q ) = − ∑ i = 1 n p ( x i ) l o g ( q ( x i ) ) H(p,q)=H(p)+D_{KL}(p||q)=-\sum_{i=1}^{n}p(x_i)log(q(x_i)) H(p,q)=H(p)+DKL(pq)=i=1np(xi)log(q(xi))

由于交叉熵和相对熵之间仅差了一个信息熵,而信息熵又是一个确定的值,因此可以直接用交叉熵作为Loss进行反向传播

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值