信息熵、相对熵、交叉熵

目录

1 信息量

2 熵

2.1 定义

2.2 示例

3 相对熵(KL 散度)

4 交叉熵

4.1 定义

4.2 示例


相对熵 = 某个策略的交叉熵 - 信息熵

1 信息量

        假设我们听到了两件事,分别如下: 

  • 事件A:巴西队进入了2018世界杯决赛圈。 
  • 事件B:中国队进入了2018世界杯决赛圈。 

        仅凭直觉来说,显而易见事件B的信息量比事件A的信息量要大。究其原因,是因为事件A发生的概率很大事件B发生的概率很小。所以当越不可能的事件发生了,我们获取到的信息量就越大。越可能发生的事件发生了,我们获取到的信息量就越小。那么信息量应该和事件发生的概率有关。

        假设X是一个离散型随机变量,其取值集合为,概率分布函数,则定义事件的信息量为:

           

由于是概率所以的取值范围是[0,1],绘制为图形如下: 

            
可见该函数符合我们对信息量的直觉。

2 熵

2.1 定义

        考虑另一个问题,对于某个事件,有n种可能性,每一种可能性都有一个概率,这样就可以计算出某一种可能性的信息量。举一个例子,假设你拿出了你的电脑,按下开关,会有三种可能性,下表列出了每一种可能的概率及其对应的信息量。

        我们现在有了信息量的定义,而用来表示所有信息量的期望,即: 

            

          其中n代表所有的n种可能性,所以上面的问题结果就是 

            

        然而有一类比较特殊的问题,比如投掷硬币只有两种可能,字朝上或花朝上。买彩票只有两种可能,中奖或不中奖。我们称之为0-1分布问题(二项分布的特例),对于这类问题,熵的计算方法可以简化为如下算式: 

           

2.2 示例

       题目1:爸爸拿来一个箱子,跟小明说:里面有橙、紫、蓝及青四种颜色的小球任意个,各颜色小球的占比不清楚,现在我从中拿出一个小球,你猜我手中的小球是什么颜色?

      小明想到了以最小的代价猜出答案,简称策略1

         

        在这种情况下,小明什么信息都不知道,只能认为四种颜色的小球出现的概率是一样的(1/4)。所以,根据策略1,1/4概率是橙色球,小明需要猜两次,1/4是紫色球,小明需要猜两次,其余的小球类似,所以小明预期的猜球次数为:

        H = 1/4 * 2 + 1/4 * 2 + 1/4 * 2 + 1/4 * 2 = 2

        题目2:爸爸还是拿来一个箱子,跟小明说:箱子里面有小球任意个,但其中1/2是橙色球,1/4是紫色球,1/8是蓝色球及1/8是青色球。我从中拿出一个球,你猜我手中的球是什么颜色的?

        小明想到了答案,简称策略2

         

        在这种情况下,小明知道了每种颜色小球的比例,比如橙色占比二分之一,如果我猜橙色,很有可能第一次就猜中了。所以,根据策略2,1/2的概率是橙色球,小明需要猜一次,1/4的概率是紫色球,小明需要猜两次,1/8的概率是蓝色球,小明需要猜三次,1/8的概率是青色球,小明需要猜三次,所以小明猜题次数的期望为:

        H = 1/2 * 1 + 1/4 * 2 + 1/8 * 3 + 1/8 * 3= 1.75

        题目3:爸爸拿来一个箱子,跟小明说:里面的球都是橙色,现在我从中拿出一个,你猜我手中的球是什么颜色?

        肯定是橙色,小明需要猜0次

        上面三个题目表现出这样一种现象:针对特定概率为p的小球,需要猜球的次数 = ,例如题目2中,1/4是紫色球, = 2 次;1/8是蓝色球, = 3次,这叫做一个事件的自信息(self-information)。那么,针对整个系统,有多种可能发生的事件,预期的猜题次数为: ,这就是信息熵,上面三个题目的预期猜球次数都是由这个公式计算而来,第一题的信息熵为2,第二题的信息熵为1.75,最三题的信息熵为

        当然,信息量和信息熵都有着严格的定义,这边简单介绍下。在信息论中,信息量,或者叫自信息(self-information),其代表一个事件所能够提供信息的多少,具体计算方式为:

          

        其是基于这样的想法进行信息量化的,一个不太可能发生的事件发生了,要比一个非常可能发生的事件提供更多的信息(概率小,log值高)。但是,自信息只能衡量单个事件的信息量,而整个系统呈现的是一个分布(例如题目一的分布就是1/4,1/4,1/4,1/4),因此在信息论中,使用信息熵来对概率分布进行量化,即

           

        即:

          

        那么信息熵代表着什么含义呢?

        信息熵代表的是随机变量或整个系统的不确定性,熵越大,随机变量或系统的不确定性就越大。上面题目1的熵 > 题目2的熵 > 题目3的熵。在题目1中,小明对整个系统一无所知,只能假设所有的情况出现的概率都是均等的,此时的熵是最大的。题目2中,小明知道了橙色小球出现的概率是1/2及其他小球各自出现的概率,说明小明对这个系统有一定的了解,所以系统的不确定性自然会降低,所以熵小于2。题目3中,小明已经知道箱子中肯定是橙色球,爸爸手中的球肯定是橙色的,因而整个系统的不确定性为0,也就是熵为0。所以,在什么都不知道的情况下,熵会最大,针对上面的题目1~~题目3,这个最大值是2,除此之外,其余的任何一种情况,熵都会比2小。

        所以,每一个系统都会有一个真实的概率分布,也叫真实分布,题目1的真实分布为(1/4,1/4,1/4,1/4),题目2的真实分布为(1/2,1/4,1/8,1/8),而根据真实分布,我们能够找到一个最优策略,以最小的代价消除系统的不确定性而这个代价大小就是信息熵,记住,信息熵衡量了系统的不确定性,而我们要消除这个不确定性,所要付出的【最小努力】(猜题次数、编码长度等)的大小就是信息熵。具体来讲,题目1只需要猜两次就能确定任何一个小球的颜色,题目2只需要猜测1.75次就能确定任何一个小球的颜色。

3 相对熵(KL 散度)

3.1 定义

        相对熵又称KL散度,如果我们对于同一个随机变量 x 有两个单独的概率分布 P(x) q(x),我们可以使用 KL 散度(Kullback-Leibler (KL) divergence)来衡量这两个分布的差异 。相对熵为如果用P来描述目标问题,而不是用q来描述目标问题,得到的信息增量

        在机器学习中,往往用来表示样本的真实分布,比如 [1,0,0] 表示当前样本属于第一类。q 用来表示模型所预测的分布,比如 [0.7,0.2,0.1] 。直观的理解就是如果用p来描述样本,那么就非常完美。而用 q 来描述样本,虽然可以大致描述,但是不是那么的完美,信息量不足,需要额外的一些“信息增量”才能达到和一样完美的描述。如果我们的 q 通过反复训练,也能完美的描述样本,那么就不再需要额外的“信息增量”,q 等价于 p

       对于两个概率分布 ,其相对熵的计算公式如下,即相对熵 = 某个策略的交叉熵 - 信息熵:

           

        注意:由于 在公式中的地位不是相等的,所以 

        相对熵的特点,是只有  时,其值为0。若   略有差异,其值就会大于0。其证明利用了负对数函数( )是严格凸函数(strictly convex function)的性质。

        KL 散度是一种衡量两个概率分布的匹配程度的指标,两个分布差异越大,KL散度越大

        KL 散度的计算公式也可以表示为如下:

                       

        显然,根据上面的公式,K-L散度其实是数据的原始分布p近似分布q之间的对数差值的期望。如果继续用2为底的对数计算,则K-L散度值表示信息损失的二进制位数。下面公式以期望表达K-L散度:

                       

       一般,K-L散度以下面的书写方式更常见:

                      

       log a - log b = log (a/b)

3.2 为什么KL散度大于等于0

        现在要证明的是KL散度满足 ,并且当且仅当 p(x) = q(x) 时等号成立。

        设实直线上的函数f(x) 是一个非负函数,且:

             

         如果 g 是任意实可测函数且函数 φ  是凸的,那么有Jensen不等式如下:

             

         注意到,-ln x 是严格的凸函数且

         令

        把公式(2)形式的 Jensen 不等式应用于公式(1)给出的 KL散度,直接可得

         

        只有 q(x) = p(x) 对于所有 x 都成立时,等号才成立,

        因此我们可以把 KL 散度看做两个分布 p(x) 和 q(x)之间不相似程度的度量。

4 交叉熵

4.1 定义

        上式变形可以得到: 

                   

        等式的前一部分恰巧就是p的熵,等式的后一部分,就是交叉熵: 

                  

        在机器学习中,我们需要评估labelpredicts之间的差距,使用KL散度刚刚好,即,由于KL散度中的前一部分−H(y) 不变,故在优化过程中,只需要关注交叉熵就可以了。所以一般在机器学习中直接用用交叉熵做loss,评估模型。交叉熵越低,就证明由算法所产生的策略最接近最优策略,也间接证明我们算法所算出的非真实分布越接近真实分布

4.2 示例

        针对2.2中的题目2,假设小明使用了策略1,即

           

        爸爸已经告诉小明这些小球的真实分布是(1/2,1/4, 1/8,1/8),但小明所选择的策略却认为所有的小球出现的概率相同,相当于忽略了爸爸告诉小明关于箱子中各小球的真实分布,而仍旧认为所有小球出现的概率是一样的,认为小球的分布为(1/4,1/4,1/4,1/4),这个分布就是非真实分布。此时,小明猜中任何一种颜色的小球都需要猜两次,即1/2 * 2 + 1/4 * 2 + 1/8 * 2 + 1/8 * 2 = 2。

        很明显,针对题目2,使用策略1是一个坏的选择,因为需要猜题的次数增加了,从1.75变成了2。因此,当我们知道根据系统的真实分布制定最优策略去消除系统的不确定性时,我们所付出的努力是最小的。我们也许会使用其他的策略(非真实分布)去消除系统的不确定性,就好比如我将策略1用于题目2,那么,当我们使用非最优策略消除系统的不确定性,所需要付出的努力的大小我们该如何去衡量呢?

        这就需要引入交叉熵,其用来衡量在给定的真实分布下,使用非真实分布所指定的策略消除系统的不确定性所需要付出的努力的大小

        交叉熵的公式为:

        其中 表示真实分布 表示非真实分布。例如上面所讲的将策略1用于题目2,真实分布 , 非真实分布 ,交叉熵为 ,比最优策略的1.75来得大。

        因此,交叉熵越低,这个策略就越好,最低的交叉熵也就是使用了真实分布所计算出来的信息熵,因为此时 ,交叉熵 = 信息熵。这也是为什么在机器学习中的分类算法中,我们总是最小化交叉熵,因为交叉熵越低,就证明由算法所产生的策略最接近最优策略,也间接证明我们算法所算出的非真实分布越接近真实分布

        我们如何去衡量不同策略之间的差异呢?这就需要用到第3章中的相对熵,其用来衡量两个取值为正的函数或概率分布之间的差异,即:

            

        现在,假设我们想知道某个策略和最优策略之间的差异,我们就可以用相对熵来衡量这两者之间的差异。即,相对熵 = 某个策略的交叉熵 - 信息熵(根据系统真实分布计算而得的信息熵,为最优策略),公式如下:

            

         所以将策略1用于题目2,所产生的相对熵为2 - 1.75 = 0.25.

如何理解K-L散度(相对熵) - 简书

一文搞懂交叉熵在机器学习中的使用,透彻理解交叉熵背后的直觉_史丹利复合田的博客-CSDN博客_交叉墒

为什么交叉熵(cross-entropy)可以用于计算代价? - 知乎

分类问题为什么选择交叉熵二不使用均方差:https://blog.csdn.net/yangyang688/article/details/82667273

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值