信息量公式 : 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 0≤p(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
结论 : 小概率事件 有 较大的信息量, 大概率事件 有 较小的信息量
定义 : 概率分布 的信息量期望: 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.5⋅log2(1/0.5)+0.5⋅log2(1/0.5)=0.5⋅1+0.5⋅1=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.2⋅log2(1/0.2)+0.8⋅log2(1/0.8)=0.2⋅2.32+0.8⋅0.32=0.72
结论 :
若概率密度均匀,产生的随机变量的不确定性就更高,则熵的值就更大
若概率密度聚拢,产生的随机变量的确定性较高,则熵的值较小
假设 真实概率分布为 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.5⋅log2(1/0.2)+0.5⋅log2(1/0.8)=0.5⋅2.32+0.5⋅0.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.5⋅log2(1/0.4)+0.5⋅log2(1/0.6)=0.5⋅1.32+0.5⋅0.74=1.03
结论 :
(1)预估概率分布 与 真实概率分布 越接近,交叉熵越小。
(2)交叉熵的值 总是大于 熵的值 (根据 吉布斯不等式)
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[Iq−Ip]#Iq−Ip为信息量之差=∑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)
由上可知, 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)