自信息,信息熵,交叉熵,KL散度,JS散度
自信息
自信息 用来衡量一个事件发生所包含的信息量,定义为
I(x)=log1p(x)=−logp(x)I(x)=\log\frac{1}{p(x)}=-\log p(x)I(x)=logp(x)1=−logp(x),
即一个事件 xxx 越不可能发生,信息量越大。
信息熵(熵)
信息熵 用来衡量一个随机变量或概率分布的不确定性或平均信息量,定义为
H[X]=Ex∼X[I(x)]H[X]=\mathbb{E}_{x\sim X}[I(x)]H[X]=Ex∼X[I(x)]。
当 XXX 是 离散分布 时,表达为
H[X]=Σxip(xi)I(xi)=−Σxip(xi)logp(xi)H[X]=\Sigma_{x_{i}}p(x_{i})I(x_{i})=-\Sigma_{x_{i}}p(x_{i})\log p(x_{i})H[X]=Σxip(xi)I(xi)=−Σxip(xi)logp(xi);
当 XXX 是 连续分布 时,表达为
H[X]=∫x∼Xp(x)I(x)dx=−∫x∼Xp(x)logp(x)dxH[X]=\int_{x\sim X}p(x)I(x)dx=-\int_{x\sim X}p(x)\log p(x) dxH[X]=∫x∼Xp(x)I(x)dx=−∫x∼Xp(x)logp(x)dx。
交叉熵
交叉熵 是衡量两个分布差异的一种方法,可以理解为用一个分布去编码另一个分布的数据时的平均信息量,离散分布 时表达为
H(P,Q)=−Σxip(xi)logq(xi)H(P,Q)=-\Sigma_{x_{i}}p(x_{i})\log q(x_{i})H(P,Q)=−Σxip(xi)logq(xi),
连续分布时同理可得
H(P,Q)=−∫x∼Xp(x)logq(x)dxH(P,Q)=-\int_{x\sim X}p(x)\log q(x) dxH(P,Q)=−∫x∼Xp(x)logq(x)dx。
值得特别注意的是,在分类任务中,某个样本的真实类别通常只有某一个目标类,且该类被one-hot编码为1,其他类均为0。故分类任务中的交叉熵通常也可以简化为
H(P,Q)=−p(ytrue)logq(ytrue)H(P,Q)=-p(y_{\text{true}})\log q(y_{\text{true}})H(P,Q)=−p(ytrue)logq(ytrue),
其中 ytruey_{\text{true}}ytrue 是真实类别。
KL 散度 (Kullback-Leibler Divergence)
KL散度 用于衡量两个概率分布的差异,离散分布 时定义为
DKL(P∣∣Q)=H(P,Q)−H(P)=Σxip(xi)logp(xi)q(xi)D_{KL}(P||Q)=H(P,Q)-H(P)=\Sigma_{x_{i}}p(x_{i})\log \frac{p(x_{i})}{q(x_{i})}DKL(P∣∣Q)=H(P,Q)−H(P)=Σxip(xi)logq(xi)p(xi),
连续分布 时定义为
DKL(P∣∣Q)=H(P,Q)−H(P)=∫x∼Xp(x)logp(x)q(x)dxD_{KL}(P||Q)=H(P,Q)-H(P)=\int_{x\sim X}p(x)\log \frac{p(x)}{q(x)}dxDKL(P∣∣Q)=H(P,Q)−H(P)=∫x∼Xp(x)logq(x)p(x)dx。
要注意的是,KL散度 不具有对称性, 即
DKL(P∣∣Q)≠DKL(Q∣∣P)D_{KL}(P||Q)\neq D_{KL}(Q||P)DKL(P∣∣Q)=DKL(Q∣∣P)。
另外, KL散度的范围为 [0,∞)[0, \infty)[0,∞)。
JS散度 (Jensen–Shannon Divergence)
JS散度 同样用于衡量两个概率分布的差异,是KL散度的对称化版本,定义为
DJS(P∣∣Q)=12DKL(P∣∣M)+12DKL(Q∣∣M)D_{JS}(P||Q)=\frac{1}{2}D_{KL}(P||M) + \frac{1}{2}D_{KL}(Q||M)DJS(P∣∣Q)=21DKL(P∣∣M)+21DKL(Q∣∣M),
其中,M=12(P+Q)M = \frac{1}{2} (P + Q)M=21(P+Q)。
JS散度 具有对称性,即
DJS(P∣∣Q)=DJS(Q∣∣P)D_{JS}(P||Q)= D_{JS}(Q||P)DJS(P∣∣Q)=DJS(Q∣∣P)。
另外,JS散度的范围为 [0,loga2][0,\log _{a}2][0,loga2]。