交叉熵损失函数
熵的概念
信息量:衡量一个事件的不确定程度。假设一个事件发生的概率为\(p\),则信息量\(I=\log \frac{1}{p}=-\log p\)
信息熵:信息量的加权平均,对整个概率分布中的不确定性总量进行量化,即\(H(p)=-\sum_{i}p_i\log p_i\)
- 信息熵又称为香农熵,给出了对依据概率分布\(P\)生成的符号进行编码所需的最少比特数。
KL散度与交叉熵
如果对同一个随机变量\(x\)有两个单独的概率分布\(P(x)\)和\(Q(x)\),可以使用KL散度(KL divergence)来衡量这两个分布的差异:\(D_{KL}(P||Q)=E_{x\sim P}[\log \frac{P(x)}{Q(x)}]=E_{x\sim P}[\log P(x)-\log Q(x)]\)
- KL散度衡量的是,使用\(Q\)的最优编码对\(P\)进行编码时,所需的额外字节数。
交叉熵为\(H(P,Q)=H(P)+D_{KL}(P||Q)=-E_{x\sim P}\log Q(x)\)
- 交叉熵衡量的是,使用\(Q\)的最优编码对\(P\)进行编码时,所需的字节数。
KL散度特点:非负;非对称(JS散度是对称化的)
多分类问题交叉熵
在多分类问题中,假设类别数为\(M\),对于样本\(x_i\),模型输出一个\(M\)维的概率分布向量,即\(z_i=[p_{i1},p_{i2},...,p_{iM}]\),则其交叉熵为:\(L_i=-\sum_{c=1}^{M}y_{ic}\log p_{ic}\)
- \(y_{i}\)为真实的样本分布,\(p_{i}\)为模型的输出分布。
- \(y_{ic}\)取值为0或1,如果样本\(x_i\)的标签为类别\(k\),则\(y_{ic}=1,c=k\);\(y_{ic}=0,c\neq k\)
有了单个样本的交叉熵,假设样本总量为\(N\),则模型的交叉熵为:\(L=-\frac{1}{N}\sum_{i=1}^{N}\sum_{c=1}^{M}y_{ic}\log p_{ic}\)