欢迎光临散文网 会员登陆 & 注册

信息量、熵、交叉熵、KL散度、交叉熵损失函数

2023-08-22 00:32 作者:Enzo_Mi  | 我要投稿

1、信息量 Amount of Information

  • 信息量:衡量 事件发生的难度有多大

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

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

  • 信息量公式 : I%7B(x)%7D%20%3A%3D%20log_2(%5Cfrac%7B1%7D%7Bp_%7B(x)%7D%7D)%20%3D%20-%20log_2(p_%7B(x)%7D)

  • 性质 : 对于独立事件 A、B :p_%7B(AB)%7D%20%3D%20p_%7B(A)%7Dp_%7B(B)%7D%20,两个事件同时发生的信息量 等于 两个事件的信息量相加 :  I(AB) =I(A) + I(B) %E2%80%8BI%7B(AB)%7D%20%3D%20log_2(%5Cfrac%7B1%7D%7Bp_%7B(AB)%7D%7D)%20%3D%0Alog_2(%5Cfrac%7B1%7D%7Bp_%7B(A)%7Dp_%7B(B)%7D%7D)%20%3D%20log_2(%5Cfrac%7B1%7D%7Bp_%7B(A)%7D%7D)%20%2B%0Alog_2(%5Cfrac%7B1%7D%7Bp_%7B(B)%7D%7D)%20%3D%20I(A)%20%2B%20I(B)

    例1 : 抛硬币,正面概率 p_%7B(A)%7D%20%3D0.5, 反面概率 p_%7B(B)%7D%3D0.5

                I%7B(A)%7D%20%3D%20%20-%20log_2(0.5)%20%3D1%2C%20%20%5Cquad%20%5Cquad%20I%7B(B)%7D%20%3D%20-%20log_2(0.5)%20%3D%201

     例2 : 抛硬币,正面概率 p_%7B(A)%7D%3D0.2, 反面概率 p_%7B(B)%7D%3D0.8    

                I%7B(A)%7D%20%3D%20%20-%20log_2(0.2)%20%3D2.32%20%2C%20%5Cquad%20%5Cquad%20I%7B(B)%7D%20%3D%20-%20log_2(0.8)%20%3D%200.32

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


2、熵 Entropy

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

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

    • 不确定性越大,熵越大

    • 不确定性越小,熵越小 

  • 公式 :H(p)%20%3D%20%5Csum%7Bp_iI_i%5Ep%7D%20%3D%20-%5Csum%7Bp_ilog_2(p_i)%7D

    例1 : 抛硬币,正面概率 p_%7B(A)%7D%3D0.5, 反面概率 p_%7B(B)%7D%3D0.5

                %E2%80%8B%5Cbegin%7Baligned%7D%20H(p)%20%0A%0A%26%3D%20%20-%5Csum%7Bp_ilog_2(p_i)%7D%20%5C%5C%0A%0A%26%3D%20p_%7B(A)%7D%20%5Ccdot%20log_2(1%2Fp_%7B(A)%7D)%20%2B%20p_%7B(B)%7D%20%5Ccdot%20log_2(1%2Fp_%7B(B)%7D)%20%20%5C%5C%0A%0A%26%3D%200.5%20%5Ccdot%20log_2(0.5)%20%2B%200.5%20%5Ccdot%20log_2(0.5)%20%20%5C%5C%0A%0A%26%3D%200.2%20%5Ccdot%201%20%20%2B%200.8%20%5Ccdot%201%20%20%5C%5C%20%0A%0A%26%3D%201%0A%0A%5Cend%7Baligned%7D

    例2 : 抛硬币,正面概率 p_%7B(A)%7D%3D0.2, 反面概率 p_%7B(B)%7D%3D0.8   

                %E2%80%8B%5Cbegin%7Baligned%7D%20H(p)%20%0A%0A%26%3D%20%20-%5Csum%7Bp_ilog_2(p_i)%7D%20%5C%5C%0A%0A%26%3D%20p_%7B(A)%7D%20%5Ccdot%20log_2(1%2Fp_%7B(A)%7D)%20%2B%20p_%7B(B)%7D%20%5Ccdot%20log_2(1%2Fp_%7B(B)%7D)%20%20%5C%5C%0A%0A%26%3D%200.2%20%5Ccdot%20log_2(0.2)%20%2B%200.8%20%5Ccdot%20log_2(0.8)%20%20%5C%5C%0A%0A%26%3D%200.2%20%5Ccdot%202.32%20%20%2B%200.8%20%5Ccdot%200.32%20%20%5C%5C%20%0A%0A%26%3D%200.72%0A%0A%5Cend%7Baligned%7D


结论 : 

    若概率密度均匀,产生的随机变量的不确定性就更高,则熵的值就更大

    若概率密度聚拢,产生的随机变量的确定性较高,则熵的值较小



3、交叉熵 Cross Entropy

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

  • 公式 : H(p%2C%20q)%20%3D%20%5Csum%7Bp_iI_i%5Eq%7D%20%3D%20-%5Csum%7Bp_i%20log_2(q_i)%7D

    例1 : 抛硬币,正面真实概率 p(A)%3D0.5, 反面真实概率 p(B)%3D0.5, 

                正面估计概率 q(A)%3D0.2, 反面估计概率 q(B)%3D0.8

                %5Cbegin%7Baligned%7D%20H(p%2C%20q)%20%0A%0A%26%3D%20%20-%5Csum%7Bp_ilog_2(q_i)%7D%20%5C%5C%0A%0A%26%3D%20p_%7B(A)%7D%20%5Ccdot%20log_2(1%2Fq_%7B(A)%7D)%20%2B%20p_%7B(B)%7D%20%5Ccdot%20log_2(1%2Fq_%7B(B)%7D)%20%20%5C%5C%0A%0A%26%3D%200.5%20%5Ccdot%20log_2(0.2)%20%2B%200.5%20%5Ccdot%20log_2(0.8)%20%20%5C%5C%0A%0A%26%3D%200.5%20%5Ccdot%202.32%20%20%2B%200.5%20%5Ccdot%200.32%20%20%5C%5C%20%0A%0A%26%3D%201.32%0A%0A%5Cend%7Baligned%7D


        例2 : 抛硬币,正面真实概率 p(A)%3D0.5, 反面真实概率 p(B)%3D0.5, 

                    正面估计概率 q(A)%3D0.4, 反面估计概率 q(B)%3D0.6

                    %5Cbegin%7Baligned%7D%20H(p%2C%20q)%20%0A%0A%26%3D%20%20-%5Csum%7Bp_ilog_2(q_i)%7D%20%5C%5C%0A%0A%26%3D%20p_%7B(A)%7D%20%5Ccdot%20log_2(1%2Fq_%7B(A)%7D)%20%2B%20p_%7B(B)%7D%20%5Ccdot%20log_2(1%2Fq_%7B(B)%7D)%20%20%5C%5C%0A%0A%26%3D%200.5%20%5Ccdot%20log_2(0.4)%20%2B%200.5%20%5Ccdot%20log_2(0.6)%20%20%5C%5C%0A%0A%26%3D%200.5%20%5Ccdot%201.32%20%20%2B%200.5%20%5Ccdot%200.74%20%20%5C%5C%20%0A%0A%26%3D%201.03%0A%0A%5Cend%7Baligned%7D

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



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

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

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

  • 公式 : 

    D(p%7C%7Cq)

重要性质:

(1)由 吉布斯不等式可知: D(p%7C%7Cq)%20%5Cge%200;  当 分布q 和 分布p 完全一样时,D(p%7C%7Cq)%20%3D%200

(2) D(p%7C%7Cq)D(q%7C%7Cp) 不一样,即 D(p%7C%7Cq)%20%20%5Cneq%20D(q%7C%7Cp)

- D(p%7C%7Cq) 表示以 p为基准 (为真实概率分布),估计概率分布q 与 真实概率分布p 之间的差距

- D(q%7C%7Cp) 表示以 q为基准 (为真实概率分布),估计概率分布p 与 真实概率分布q 之间的差距



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

由上可知, KL散度 D(p%7C%7Cq) 表示 预测分布q 与 真实分布p 之间的差距,所以 我们可直接将 损失函数定义为 KL散度: Loss%20%3DD(p%7C%7Cq)

并且我们希望 模型的预测分布q 与 真实分布p 完全相同 ,即 : 损失函数 Loss = D(p||q) = 0Loss%20%3D%20D(p%7C%7Cq)%20%3D%200


损失函数:Loss%20%3D%20D(p%7C%7Cq)%20%3D%20H(p%2C%20q)%20-%20H(p)%20%20%3D%20%5Csum%7Bp_i%20log_2(q_i)%7D%20-%5Csum%7Bp_i%20log_2(q_i)%7D%20%5Ctag%7B1%7D


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

所以,H(p)%20%3D%20%5Csum%7Bp_i%20log_2(1%20%2F%20p_i)%7D%20%3D%200


损失函数(1) 可进一步化简为 : Loss%20%3D%20D(p%7C%7Cq)%20%20%3D%20H(p%2C%20q)%20-%20H(p)%20%3D%20H(p%2C%20q)%20%5Ctag%7B2%7D%20


H(p%2C%20q) 是交叉熵,所以损失函数 又称为 交叉熵损失函数 :

Cross%5C_Entropy%5C_Loss%20%3D%20%20H(p%2C%20q)%20%3D%20-%5Csum%7Bp_i%20log_2(q_i)%7D%20%5Ctag%7B3%7D



又因为真实分布为单点分布,真实类别的概率 p_%7Bclass%7D%3D1, 其他类别的概率p_%7B%5Cbar%20%7Bclass%7D%7D%3D0

所以 : 

Cross%5C_Entropy%5C_Loss%20%3D%20%20H(p%2C%20q)%20%3D%20-%20log_2(q_%7Bclass%7D)


信息量、熵、交叉熵、KL散度、交叉熵损失函数的评论 (共 条)

分享到微博请遵守国家法律