发布网友 发布时间:2022-08-31 01:05
共1个回答
热心网友 时间:2024-03-08 22:32
参考《统计学习方法》李航
通俗理解信息熵 - 忆臻的文章 - 知乎 https://zhuanlan.hu.com/p/26486223
熵表示一个事件的信息量。
一般认为,如果一个事件的随机性很大,那么这个事件的熵很大。
如果一个事件比较确定,那么这个事件的熵很小。
一个【具体】事件的信息量应该是随着其发生概率而递减的,且不能为负。
对于一个二分类事件,概率为[0.9999,0.0001],基本就是个随机性很小的事件,对应它的熵应该很小。
反之,如果这个二分类事件概率为[0.5,0.5],比如抛硬币,正反概率差不多,基本很难确定,那么它的熵很大。
定义:
设x是一个取有限个值的离散随机变量,其概率分布是:
则随机变量x的熵定义为: ,若 则定义0log0=0。
在这里,一个事件分布的熵可以看作是具体事件信息量的期望。(即对各个事件的信息量依照概率加权)。
注意:最后得到的熵与x无关,只与概率分布有关。
所以我们可以得到二分类事件熵的函数图:
H(Y|X) : 是已知随机变量X的前提下,随机变量Y的不确定性。
定义:
即,已知X的取值情况,则先求x确定下的事件信息量,H(Y|X= ),再对信息量求一个期望。
信息增益:
知道随机变量X,使随机变量Y的信息,不确定性减少的程度。
g(D,A) = H(D) - H(D|A)
信息增益比:
参考花书《深度学习》第三章
如果我们对同一个随机变量x,有两个单独的概率分布,P(x)和Q(x),我们可以使用KL散度,来衡量这两个分布的差异。
p在前,表示以p为基准,去考虑p和q相差多少
信息量的差值:
表示分布差异,再×概率得到期望。
性质:
KL 散度有很多有用的性质,最重要的是它是非负的。KL 散度为 0 当且仅当P 和 Q 在离散型变量的情况下是相同的分布(此时P(x)/Q(x)=1),或者在连续型变量的情况下是 ‘‘几乎处处’’ 相同的。因为 KL 散度是非负的并且衡量的是两个分布之间的差异,它经常被用作分布之间的某种距离。然而,它并不是真的距离因为它不是对称的:对于某些 P 和 Q,
pytorch对应损失函数:
示例
常用的损失函数。不具有对称性。H(P , Q)≠H(Q , P) 且非负。
二分类问题的交叉熵损失函数的本质是假设数据服从以模型输出为参数的伯努利分布的极大似然估计。(为什么交叉熵(cross-entropy)可以用于计算代价? - Chris的回答 - 知乎 https://www.hu.com/question/65288314/answer/244601417 )
实际计算:
可以直接 认为是这样的一个概率和,
如果是多分类,假设真实标签[0,1,2,1,1,2,1]
那就是
因为在实际运算中,目标label已确定,对应概率值就是1