总说
参考的链接:
- https://blog.csdn.net/tsyccnh
- https://www.zhihu.com/question/41252833/answer/140950659
先理解一下信息熵、交叉熵和相对熵
先找一下交叉熵的定义:
1)信息熵:编码方案完美时,最短平均编码长度的是多少。(第二个链接第三个答案)
2)交叉熵:编码方案不一定完美时(由于对概率分布的估计不一定正确),平均编码长度的是多少。 平均编码长度 = 最短平均编码长度 + 一个增量
3)相对熵:编码方案不一定完美时,平均编码长度相对于最小值的增加值。(即上面那个增量)
(即,相对熵就是信息增益,就是KL散度)
作者:张一山
链接:https://www.zhihu.com/question/41252833/answer/140950659
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
信息熵
对于(1)没啥说的,就是如果某件事情概率已知,那么直接 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))。
这个表示,对于事件X只有 x 1 , ⋅ , x i , ⋅ , x n x_1, \cdot , x_i, \cdot, x_n x1,⋅,xi,⋅,xn种情况,而 x i x_i xi发生的概率是 p ( x i ) p(x_i) p(xi),那么直接 − p l o g ( p ) -plog(p) −plog(p) OK?
稍微说一下原因,
- 主要是, l o g ( p ( x i ) ) log(p(x_i)) log(p(xi))代表就是 x i x_i xi事件的熵,也就是信息量。由于 x 1 x_1 x1和 x 2 x_2 x2独立同分布,两个同时发生,那么概率是 p ( x 1 ) p ( x 2 ) p(x_1)p(x_2) p(x1)p(x2),信息量应该是累加的,也就是有 H ( p ( x 1 ) p ( x 2 ) ) = H ( p ( x 1 ) + H ( p ( x 2 ) ) H(p(x_1)p(x_2))=H(p(x_1)+H(p(x_2)) H(p(x1)p(x2))=H(p(x1)+H(p(x2)), 所以 H ( x ) H(x) H(x)是对数函数。底可以取 2 , e , 10 2, e, 10 2,e,10都行,问题不大。最后, p p p一般是小数,所以既然是信息,那得正数才符合,所以加个
负号在座的没有意见吧~。。 - 那要表示一个概率分布的熵,肯定是该变量所有可能性的熵的期望值,所以自然就是 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))
总结:

本文介绍了信息熵、交叉熵和相对熵的概念,并详细阐述了在Pytorch中如何实现软标签的交叉熵损失。通过解释熵的数学意义,特别是其在编码长度中的应用,说明了最大化熵的含义。此外,讨论了分类问题中的交叉熵计算,区分了二分类和多分类任务的差异,并提供了SoftCrossEntropy的计算方法。
最低0.47元/天 解锁文章
1120

被折叠的 条评论
为什么被折叠?



