【机器学习】【概率论】【损失熵】【KL散度】信息量、香农熵和KL散度的计算
1、信息量(Amount of Information)
对于一个事件:
-
小概率 --> 大信息量
-
大概率 --> 小信息量
-
独立事件的信息量可以相加
I(x)=log2(1p(x))=−log2(p(x)) I(x)=log_2(\frac{1}{p(x)})=-log_2(p(x)) I(x)=log2(p(x)1)=−log2(p(x))
E.g.: -
一枚均匀的硬币:
p(h)=0.5p(h)=0.5p(h)=0.5 Ip(h)=log2(10.5)=1I_p(h)=log_2(\frac{1}{0.5})=1Ip(h)=log2(0.51)=1
p(t)=0.5p(t)=0.5p(t)=0.5 Ip(t)=log2(10.5)=1I_p(t)=log_2(\frac{1}{0.5})=1Ip(t)=log2(0.51)=1 -
一枚不均匀的硬币:
q(h)=0.2q(h)=0.2q(h)=0.2 Iq(h)=log2(10.2)=2.32I_q(h)=log_2(\frac{1}{0.2})=2.32Iq(h)=log2(0.21)=2.32
q(t)=0.8q(t)=0.8q(t)=0.8 Iq(t)=log2(10.8)=0.32I_q(t)=log_2(\frac{1}{0.8})=0.32Iq(t)=log2(0.81)=0.32
2、香农熵(Shannon Entropy)
熵(entropy): 概率分布的预期信息量。它也是不确定性的度量。
假设离散分布,比如伯努利(Bernoulli)分布
连续分布时使用整体
H(p)=∑piIip=∑pilog2(1pi)=−∑pilog2(pi)
H(p)=\sum p_iI^p_i=\sum p_ilog_2(\frac{1}{p_i})=-\sum p_ilog_2(p_i)
H(p)=∑piIip=∑pilog2(pi1)=−∑pilog2(pi)
example: 硬币概率: p(h)=0.5p(h)=0.5p(h)=0.5, p(t)=0.5p(t)=0.5p(t)=0.5
H(p)=p(h)×log2(1p(h))+p(t)×log2(1p(t))=0.5×1+0.5×1=1H(p)=p(h)\times log_2(\frac{1}{p(h)})+p(t)\times log_2(\frac{1}{p(t)})=0.5\times 1+0.5\times 1=1H(p)=p(h)×log2(p(h)1)+p(t)×log2(p(t)1)=0.5×1+0.5×1=1
example: 硬币概率: p(h)=0.2p(h)=0.2p(h)=0.2, p(t)=0.8p(t)=0.8p(t)=0.8
H(p)=p(h)×log2(1p(h))+p(t)×log2(1p(t))=0.2×2.32+0.8×0.32=0.72H(p)=p(h)\times log_2(\frac{1}{p(h)})+p(t)\times log_2(\frac{1}{p(t)})=0.2\times 2.32+0.8\times 0.32=0.72H(p)=p(h)×log2(p(h)1)+p(t)×log2(p(t)1)=0.2×2.32+0.8×0.32=0.72
3、交叉熵(Cross Entropy)
一枚硬币的ground truth概率: p(h)=0.5p (h) = 0.5p(h)=0.5, p(t)=0.5p(t) = 0.5p(t)=0.5
估计(观察到的)概率概率: q(h)=0.2q (h) = 0.2q(h)=0.2, q(t)=0.8q(t) = 0.8q(t)=0.8
给定估计概率分布,估计真值概率分布的预期信息量:
H(p,q)=∑piIiq=∑pilog2(1qi)=−∑pilog2(qi) H(p,q)=\sum p_iI^q_i=\sum p_ilog_2(\frac{1}{q_i})=-\sum p_i log_2(q_i) H(p,q)=∑piIiq=∑pilog2(qi1)=−∑pilog2(qi)
- 期望值来源于真值概率分布,因为数据始终根据真值概率分布显示
- 信息量使用估计概率分布,因为信息量是我们估计出来的
q(h)=0.2q(h) = 0.2q(h)=0.2 q(t)=0.8q (t) = 0.8q(t)=0.8
H(p,q)=p(h)×log2(1q(h))+p(t)×log2(1q(t))=0.5×2.32+0.5×0.32=1.32H(p,q) = p(h)\times log_2(\frac{1}{q(h)})+p(t)\times log_2(\frac{1}{q(t)})=0.5\times 2.32+0.5\times 0.32=1.32
H(p,q)=p(h)×log2(q(h)1)+p(t)×log2(q(t)1)=0.5×2.32+0.5×0.32=1.32
q(h)=0.4q(h) = 0.4q(h)=0.4 q(t)=0.6q (t) = 0.6q(t)=0.6
H(p,q)=p(h)×log2(1q(h))+p(t)×log2(1q(t))=0.5×1.32+0.5×0.74=1.03H(p,q) = p(h)\times log_2(\frac{1}{q(h)})+p(t)\times log_2(\frac{1}{q(t)})=0.5\times 1.32+0.5\times 0.74=1.03
H(p,q)=p(h)×log2(q(h)1)+p(t)×log2(q(t)1)=0.5×1.32+0.5×0.74=1.03
4、KL散度(Kullback-Leibler Divergence, Relative Entropy)
KL散度是用来衡量两种分布之间的差异的方法
4.1 量化视角看待熵或交叉熵之间差异性
D(p∥q)=H(p,q)−H(p)=∑piIiq−∑piIip=∑pilog2(1qi)−∑pilog2(1pi)=∑pilog2(piqi)\begin{aligned}D(p\Vert q)=H(p,q)-H(p)&=\sum p_iI^q_i-\sum p_iI^p_i\\ &=\sum p_i log_2(\frac{1}{q_i})-\sum p_i log_2(\frac{1}{p_i})\\ &=\sum p_ilog_2(\frac{p_i}{q_i}) \end{aligned}D(p∥q)=H(p,q)−H(p)=∑piIiq−∑piIip=∑pilog2(qi1)−∑pilog2(pi1)=∑pilog2(qipi)
D(p∥q)≥0D(p\Vert q)\ge 0D(p∥q)≥0 Gibbs inequality 当且仅当两个分部一样时为0
D(p∥q)≠D(q∥p)D(p\Vert q)\ne D(q\Vert p)D(p∥q)=D(q∥p) 不是距离指标
最小化 KL 散度有时等同于最小化交叉熵
qθq_\thetaqθ是预测的概率分布,p是我们想要的分布。对θ\thetaθ求梯度,∇θH(p)\nabla_\theta H(p)∇θH(p)是常数,求地梯度为0。
∇θD(p∥qθ)=∇θH(p,qθ)−∇θH(p)=∇θH(p,qθ)
\nabla_\theta D(p\Vert q_\theta)=\nabla_\theta H(p,q_\theta)-\nabla_\theta H(p)=\nabla_\theta H(p,q_\theta)
∇θD(p∥qθ)=∇θH(p,qθ)−∇θH(p)=∇θH(p,qθ)
4.2 另一种视角看待KL散度:
两种序列的分布需要很相近:
硬币的Ground Truth:
- p(h)=0.5p(h)=0.5p(h)=0.5
- p(t)=0.5p(t)=0.5p(t)=0.5$
硬币的观察(估计)结果: - q(h)=0.2q(h)=0.2q(h)=0.2
- q(t)=0.8q(t)=0.8q(t)=0.8
现在抛N次,NhN_hNh 次head朝上,NtN_tNt次tail朝上,形成的序列称为seq。
当N足够大时,NhN\frac{N_h}{N}NNh趋近于p(h)p(h)p(h),NtN\frac{N_t}{N}NNt趋近于p(t)p(t)p(t)
log((P(seq∣p)P(seq∣q))1N)=1Nlog(p(h)Nhp(t)Ntq(h)Nhq(t)Nt)=NhNlog(p(h))+NtNlog(p(t))−NhNlog(q(h))−NtNlog(q(t))=p(h)log(p(h))+p(t)log(p(t))−p(h)log(q(h))−p(t)log(q(t))=p(h)log(p(h)q(h))+p(t)log(p(t)q(t))\begin{aligned}&log((\frac{P(seq\vert p)}{P(seq\vert q)})^{\frac{1}{N}})=\frac{1}{N}log(\frac{p(h)^{N_h}p(t)^{N_t}}{q(h)^{N_h}q(t)^{N_t}})\\ &=\frac{N_h}{N}log(p(h))+\frac{N_t}{N}log(p(t))-\frac{N_h}{N}log(q(h))-\frac{N_t}{N}log(q(t))\\ &=p(h)log(p(h))+p(t)log(p(t))-p(h)log(q(h))-p(t)log(q(t))\\ &=p(h)log(\frac{p(h)}{q(h)})+p(t)log(\frac{p(t)}{q(t)}) \end{aligned}log((P(seq∣q)P(seq∣p))N1)=N1log(q(h)Nhq(t)Ntp(h)Nhp(t)Nt)=NNhlog(p(h))+NNtlog(p(t))−NNhlog(q(h))−NNtlog(q(t))=p(h)log(p(h))+p(t)log(p(t))−p(h)log(q(h))−p(t)log(q(t))=p(h)log(q(h)p(h))+p(t)log(q(t)p(t))
D(p∥q)=∑pilog(piqi)=log(P(sequence of distribution p∣distribution p)P(sequence of distribution p∣distribution q)) D(p\Vert q)=\sum p_i log(\frac{p_i}{q_i})=log(\frac{P(sequence\space of \space distribution \space p \vert distribution \space p)}{P(sequence\space of \space distribution \space p \vert distribution \space q)}) D(p∥q)=∑pilog(qipi)=log(P(sequence of distribution p∣distribution q)P(sequence of distribution p∣distribution p))
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)