目录
- 1. Entropy
- 2. 交叉熵
- 3. 二分类
- 4. 为什么分类问题使用交叉熵
- 5. 代码示例
1. Entropy
Entropy中文是熵的意思,它代表一种不确定性,不确定性越高惊喜度也就越高。
如上图,假设熵代表中奖概率,当熵为2 的中奖概率为1/4没什么惊喜,当熵为1.3568时,中奖概率就比较低了,惊喜度就比较高了,而当熵为0.0313时,中奖概率已经很低很低了,这时惊喜度就很高了。
2. 交叉熵
交叉熵计算公式分为两个部分,H§熵和DKL(KL Devergence散度),当p和q的分布相同时,DKL=0,此时H(p,q) = H§
当使用one-hot编码时,H§=0,此时H(p,q) = DKL(p|q)
3. 二分类
交叉熵计算公式
使用交叉熵计算loss的一个实例:
从图中可以看出通过交叉熵计算loss梯度下降还是比较快的。
4. 为什么分类问题使用交叉熵
因为使用交叉熵梯度下降比较快,从上图的曲线也可以看出,刚开始的时候loss比较大,使用交叉熵后,loss很快就降下来了。
而当使用交叉熵梯度不下降的时候,可以尝试MSE。
5. 代码示例
F.cross_entropy = softmax + log + nll_loss
图中1:logits不能是经过softmat和log的,因为F.cross_entropy 中已经包括两个操作。
图中2:要经过softmax和log两个操作
F.nll_loss是将softmax、log操作分离计算loss的操作。