信息量 Amount of Information、熵 Entropy、交叉熵 Cross Entropy、KL散度 KL Divergence、交叉熵损失函数 Cross Entropy Loss

1、信息量 Amount of Information

  • 信息量:衡量 事件发生的难度有多大
    • 小概率事件,它发生的难度比较大,所以有较大的信息量
    • 大概率事件,它发生的难度比较小,所以有较小的信息量

信息量公式 : I ( x ) : = l o g 2 ( 1 p ( x ) ) = − l o g 2 ( p ( x ) ) I{(x)} := log_2(\frac{1}{p_{(x)}}) = - log_2(p_{(x)}) I(x):=log2(p(x)1)=log2(p(x))

性质 : 对于独立事件 A、B : p ( A B ) = p ( A ) p ( B ) p_{(AB)} = p_{(A)}p_{(B)} p(AB)=p(A)p(B) ,两个事件同时发生的信息量 等于 两个事件的信息量相加 : I ( A B ) = I ( A ) + I ( B ) I(AB) =I(A) + I(B) I(AB)=I(A)+I(B)

→ I ( A B ) = l o g 2 ( 1 p ( A B ) ) = l o g 2 ( 1 p ( A ) p ( B ) ) = l o g 2 ( 1 p ( A ) ) + l o g 2 ( 1 p ( B ) ) = I ( A ) + I ( B ) \quad \quad \rightarrow I{(AB)} = log_2(\frac{1}{p_{(AB)}}) = log_2(\frac{1}{p_{(A)}p_{(B)}}) = log_2(\frac{1}{p_{(A)}}) + log_2(\frac{1}{p_{(B)}}) = I(A) + I(B) I(AB)=log2(p(AB)1)=log2(p(A)p(B)1)=log2(p(A)1)+log2(p(B)1)=I(A)+I(B)

0 ≤ p ( x ) ≤ 1 0 \le p_{(x)} \le 1 0p(x)1

例1 : 抛硬币,正面概率 p ( A ) = 0.5 p_{(A)} =0.5 p(A)=0.5, 反面概率 p ( B ) = 0.5 p_{(B)}=0.5 p(B)=0.5

→ I ( A ) = − l o g 2 ( 0.5 ) = 1 \quad \quad \rightarrow I{(A)} = - log_2(0.5) =1 I(A)=log2(0.5)=1 , I ( B ) = − l o g 2 ( 0.5 ) = 1 \quad \quad I{(B)} = - log_2(0.5) = 1 I(B)=log2(0.5)=1

例2 : 抛硬币,正面概率 p ( A ) = 0.2 p_{(A)}=0.2 p(A)=0.2, 反面概率 p ( B ) = 0.8 p_{(B)}=0.8 p(B)=0.8

→ I ( A ) = − l o g 2 ( 0.2 ) = 2.32 \quad \quad \rightarrow I{(A)} = - log_2(0.2) =2.32 I(A)=log2(0.2)=2.32 , I ( B ) = − l o g 2 ( 0.8 ) = 0.32 \quad \quad I{(B)} = - log_2(0.8) = 0.32 I(B)=log2(0.8)=0.32

结论 : 小概率事件 有 较大的信息量, 大概率事件 有 较小的信息量


2、熵 Entropy

定义 : 概率分布 的信息量期望: H ( p ) : = E ( I ( x ) ) H(p):=E(I(x)) H(p):=E(I(x)),(亦可理解为:系统整体的信息量。其中,系统整体由所有可能发生的事件构成。 比如抛硬币,正面和反面 就构成一个系统整体)

作用 : 用来评估概率模型的不确定性程度

  • 不确定性越大,熵越大
  • 不确定性越小,熵越小

公式 : H ( p ) = ∑ p i I i p = − ∑ p i l o g 2 ( p i ) H(p) = \sum{p_iI_i^p} = -\sum{p_ilog_2(p_i)} H(p)=piIip=pilog2(pi)

例1 : 抛硬币,正面概率 p ( A ) = 0.5 p_{(A)}=0.5 p(A)=0.5, 反面概率 p ( B ) = 0.5 p_{(B)}=0.5 p(B)=0.5

H ( p ) = ∑ p i I i p = p ( A ) ⋅ l o g 2 ( 1 / p ( A ) ) + p ( B ) ⋅ l o g 2 ( 1 / p ( B ) ) = 0.5 ⋅ l o g 2 ( 1 / 0.5 ) + 0.5 ⋅ l o g 2 ( 1 / 0.5 ) = 0.5 ⋅ 1 + 0.5 ⋅ 1 = 1 \quad \quad \begin{aligned} H(p) &= \sum{p_iI_i^p} \\ &= p_{(A)} \cdot log_2(1/p_{(A)}) + p_{(B)} \cdot log_2(1/p_{(B)}) \\ &= 0.5 \cdot log_2(1/0.5) + 0.5 \cdot log_2(1/0.5) \\ &= 0.5 \cdot 1 + 0.5 \cdot 1 \\ &= 1 \end{aligned} H(p)=piIip=p(A)log2(1/p(A))+p(B)log2(1/p(B))=0.5log2(1/0.5)+0.5log2(1/0.5)=0.51+0.51=1

例2 : 抛硬币,正面概率 p ( A ) = 0.2 p_{(A)}=0.2 p(A)=0.2, 反面概率 p ( B ) = 0.8 p_{(B)}=0.8 p(B)=0.8

H ( p ) = ∑ p i I i p = p ( A ) ⋅ l o g 2 ( 1 / p ( A ) ) + p ( B ) ⋅ l o g 2 ( 1 / p ( B ) ) = 0.2 ⋅ l o g 2 ( 1 / 0.2 ) + 0.8 ⋅ l o g 2 ( 1 / 0.8 ) = 0.2 ⋅ 2.32 + 0.8 ⋅ 0.32 = 0.72 \quad \quad \begin{aligned} H(p) &= \sum{p_iI_i^p} \\ &= p_{(A)} \cdot log_2(1/p_{(A)}) + p_{(B)} \cdot log_2(1/p_{(B)}) \\ &= 0.2 \cdot log_2(1/0.2) + 0.8 \cdot log_2(1/0.8) \\ &= 0.2 \cdot 2.32 + 0.8 \cdot 0.32 \\ &= 0.72 \end{aligned} H(p)=piIip=p(A)log2(1/p(A))+p(B)log2(1/p(B))=0.2log2(1/0.2)+0.8log2(1/0.8)=0.22.32+0.80.32=0.72

结论 :
若概率密度均匀,产生的随机变量的不确定性就更高,则熵的值就更大
若概率密度聚拢,产生的随机变量的确定性较高,则熵的值较小


3、交叉熵 Cross Entropy

假设 真实概率分布为 p p p、预测概率分布 (估计概率分布) 为 q q q
定义 : 预测概率分布 q q q 对真实的概率分布 p p p 的平均信息量 的估计,叫做交叉熵

公式 : H ( p , q ) = ∑ p i I i q = − ∑ p i l o g 2 ( q i ) H(p, q) = \sum{p_iI_i^q} = -\sum{p_i log_2(q_i)} H(p,q)=piIiq=pilog2(qi)

例1 : 抛硬币,正面真实概率 p ( A ) = 0.5 p(A)=0.5 p(A)=0.5, 反面真实概率 p ( B ) = 0.5 p(B)=0.5 p(B)=0.5 ; 正面估计概率 q ( A ) = 0.2 q(A)=0.2 q(A)=0.2, 反面估计概率 q ( B ) = 0.8 q(B)=0.8 q(B)=0.8

H ( p , q ) = − ∑ p i l o g 2 ( q i ) = p ( A ) ⋅ l o g 2 ( 1 / q ( A ) ) + p ( B ) ⋅ l o g 2 ( 1 / q ( B ) ) = 0.5 ⋅ l o g 2 ( 1 / 0.2 ) + 0.5 ⋅ l o g 2 ( 1 / 0.8 ) = 0.5 ⋅ 2.32 + 0.5 ⋅ 0.32 = 1.32 \quad \quad \begin{aligned} H(p, q) &= -\sum{p_ilog_2(q_i)} \\ &= p_{(A)} \cdot log_2(1/q_{(A)}) + p_{(B)} \cdot log_2(1/q_{(B)}) \\ &= 0.5 \cdot log_2(1/0.2) + 0.5 \cdot log_2(1/0.8) \\ &= 0.5 \cdot 2.32 + 0.5 \cdot 0.32 \\ &= 1.32 \end{aligned} H(p,q)=pilog2(qi)=p(A)log2(1/q(A))+p(B)log2(1/q(B))=0.5log2(1/0.2)+0.5log2(1/0.8)=0.52.32+0.50.32=1.32

例2 : 抛硬币,正面真实概率 p ( A ) = 0.5 p(A)=0.5 p(A)=0.5, 反面真实概率 p ( B ) = 0.5 p(B)=0.5 p(B)=0.5 ; 正面估计概率 q ( A ) = 0.4 q(A)=0.4 q(A)=0.4, 反面估计概率 q ( B ) = 0.6 q(B)=0.6 q(B)=0.6

H ( p , q ) = − ∑ p i l o g 2 ( q i ) = p ( A ) ⋅ l o g 2 ( 1 / q ( A ) ) + p ( B ) ⋅ l o g 2 ( 1 / q ( B ) ) = 0.5 ⋅ l o g 2 ( 1 / 0.4 ) + 0.5 ⋅ l o g 2 ( 1 / 0.6 ) = 0.5 ⋅ 1.32 + 0.5 ⋅ 0.74 = 1.03 \quad \quad \begin{aligned} H(p, q) &= -\sum{p_ilog_2(q_i)} \\ &= p_{(A)} \cdot log_2(1/q_{(A)}) + p_{(B)} \cdot log_2(1/q_{(B)}) \\ &= 0.5 \cdot log_2(1/0.4) + 0.5 \cdot log_2(1/0.6) \\ &= 0.5 \cdot 1.32 + 0.5 \cdot 0.74 \\ &= 1.03 \end{aligned} H(p,q)=pilog2(qi)=p(A)log2(1/q(A))+p(B)log2(1/q(B))=0.5log2(1/0.4)+0.5log2(1/0.6)=0.51.32+0.50.74=1.03

结论 :
(1)预估概率分布 与 真实概率分布 越接近,交叉熵越小。
(2)交叉熵的值 总是大于 熵的值 (根据 吉布斯不等式)


4、相对熵 (KL散度、 KL Divergence )

KL散度 以 Kullback 和 Leibler 的名字命名, 也被称为 相对熵

作用 : 用于衡量 2个概率分布 之间的差异

公式 :

D ( p ∣ ∣ q ) = H ( p , q ) − H ( p ) = ∑ p i l o g 2 ( 1 / q i ) − ∑ p i l o g 2 ( 1 / p i ) = ∑ p i [ l o g 2 ( 1 / q i ) − l o g 2 ( 1 / p i ) ] = ∑ p i [ I q − I p ] #    I q − I p 为信息量之差 = ∑ p i l o g 2 ( p i / q i ) \begin{aligned} D(p||q) &= H(p, q) - H(p) \\ & = \sum{p_i log_2(1 / q_i)} - \sum{p_i log_2(1 / p_i)} \\ & = \sum{p_i [log_2(1 / q_i) - log_2(1 / p_i) ]} \\ & = \sum{p_i [I_q - I_p ]} \quad \quad \quad \# \; I_q - I_p为信息量之差\\ & = \sum{p_i log_2(p_i / q_i)} \\ \end{aligned} D(p∣∣q)=H(p,q)H(p)=pilog2(1/qi)pilog2(1/pi)=pi[log2(1/qi)log2(1/pi)]=pi[IqIp]#IqIp为信息量之差=pilog2(pi/qi)

重要性质:
(1)由 吉布斯不等式可知: D ( p ∣ ∣ q ) ≥ 0 D(p||q) \ge 0 D(p∣∣q)0 ; 当 分布q 和 分布p 完全一样时, D ( p ∣ ∣ q ) = 0 D(p||q) = 0 D(p∣∣q)=0

在这里插入图片描述

(2) D ( p ∣ ∣ q ) D(p||q) D(p∣∣q) D ( q ∣ ∣ p ) D(q||p) D(q∣∣p) 不一样,即 D ( p ∣ ∣ q ) ≠ D ( q ∣ ∣ p ) D(p||q) \neq D(q||p) D(p∣∣q)=D(q∣∣p)

  • D ( p ∣ ∣ q ) D(p||q) D(p∣∣q) 表示以 p为基准 (为真实概率分布),估计概率分布 q q q 与 真实概率分布 p p p 之间的差距
  • D ( q ∣ ∣ p ) D(q||p) D(q∣∣p) 表示以 q为基准 (为真实概率分布),估计概率分布 p p p 与 真实概率分布 q q q 之间的差距

5、交叉熵损失函数 Cross Entropy Loss

由上可知, KL散度 D ( p ∣ ∣ q ) D(p||q) D(p∣∣q) 表示 预测分布q 与 真实分布p 之间的差距,所以 我们可直接将 损失函数定义为 KL散度: L o s s = D ( p ∣ ∣ q ) Loss =D(p||q) Loss=D(p∣∣q)
并且我们希望 模型的预测分布q 与真实分布p 完全相同 ,即 : 损失函数 L o s s = D ( p ∣ ∣ q ) = 0 Loss = D(p||q) = 0 Loss=D(p∣∣q)=0

损失函数: L o s s = D ( p ∣ ∣ q ) = H ( p , q ) − H ( p ) = ∑ p i l o g 2 ( 1 / q i ) − ∑ p i l o g 2 ( 1 / p i ) (1) 损失函数 : Loss = D(p||q) = H(p, q) - H(p) = \sum{p_i log_2(1/q_i)} -\sum{p_i log_2(1/p_i)} \tag{1} 损失函数:Loss=D(p∣∣q)=H(p,q)H(p)=pilog2(1/qi)pilog2(1/pi)(1)

对于分类问题,真实分布是一个单点分布,真实类别的概率为1, 其他类别的概率都为0,类似如下:

类别 class1 class 2 class 3 class 4
概率 0 0 1 0

p c l a s s 1 = p c l a s s 2 = p c l a s s 4 = 0 , l o g 2 ( 1 / p c l a s s 3 ) = 0 p_{class1} = p_{class2} = p_{class4} = 0, \quad \quad log_2(1/p_{class3}) = 0 pclass1=pclass2=pclass4=0,log2(1/pclass3)=0

所以, H ( p ) = ∑ p i l o g 2 ( 1 / p i ) = 0 H(p) = \sum{p_i log_2(1 / p_i)} = 0 H(p)=pilog2(1/pi)=0

损失函数(1) 可进一步化简为 : L o s s = D ( p ∣ ∣ q ) = H ( p , q ) − H ( p ) = H ( p , q ) (2) Loss = D(p||q) = H(p, q) - H(p) = H(p, q) \tag{2} Loss=D(p∣∣q)=H(p,q)H(p)=H(p,q)(2)

H ( p , q ) H(p, q) H(p,q) 是交叉熵,所以损失函数 又称为 交叉熵损失函数 :
C r o s s _ E n t r o p y _ L o s s = H ( p , q ) = − ∑ p i l o g 2 ( q i ) (3) Cross\_Entropy\_Loss = H(p, q) = -\sum{p_i log_2(q_i)} \tag{3} Cross_Entropy_Loss=H(p,q)=pilog2(qi)(3)

又因为真实分布为单点分布,真实类别的概率 p c l a s s = 1 p_{class}=1 pclass=1, 其他类别的概率 p c l a s s ˉ = 0 p_{\bar {class}}=0 pclassˉ=0

C r o s s _ E n t r o p y _ L o s s = H ( p , q ) = − l o g 2 ( q c l a s s ) Cross\_Entropy\_Loss = H(p, q) = - log_2(q_{class}) Cross_Entropy_Loss=H(p,q)=log2(qclass)

猜你喜欢

转载自blog.csdn.net/weixin_37804469/article/details/126571956