熵的概念

                                                 熵的概念

       熵 (entropy) 这一词最初来源于热力学。1948年,克劳德·爱尔伍德·香农将热力学中的熵引入信息论,所以也被称为香农熵 (Shannon entropy),信息熵 (information entropy)。百度百科这样解释信息,信息是指指音讯消息通讯系统传输和处理的对象,泛指人类社会传播的一切内容。熵的概念使得信息可以被量化。

      在机器学习中很多模型多会涉及熵的概念,比如最大熵模型、多分类solftmax损失函数、逻辑斯蒂回归和当下流行的GAN的损失函数。

1、信息量的度量之自信息(self-information)

      在人的经验中,某个很可能发生的事情发生了,人们会觉得见怪不怪,比如关系不错的女生会手牵手或者手挽手,那么这个事件所含有的信息量不大;但是如果某一天看到两个男生手牵手或者手挽手了…这个信息量就大了。经验中,我们其实认为某个事件发生的可能性大其信息量小(没有值得好探寻的),某个不太可能的事情发生了,我们会很惊讶,自然萌生出一探究竟的想法,因为我们觉得此事定有蹊跷(很多信息)。

      一言以蔽之,某个信息的信息量的大小与其确定性直接相关,而且是负相关,即信息量大小与其不确定性正相关。现在考虑一个随机变量x,x的信息量依赖于其概率分布p(x),定义I(x)为x自信息量

                                      

      其中负号是用来保证信息量是正数或者零,而 log 函数基的选择是任意的(信息论中基常常选择为2,因此信息的单位为比特bits;而机器学习中基常常选择为自然常数,因此单位常常被称为奈特nats)。我们称I(x) 为随机变量x的自信息 (self-information),该函数描述的是随机变量的某个事件发生所带来的信息量,易知该函数关于p(x)单调递减,p(x)越大则自信息越小,反之则反之,讲道理和上面的例子对应。                       

2、熵(信息熵,information entropy)

    单个随机变量x的自信息已经清楚了,对于含有n个随机变量的一组随机变量

                                    

    这一组随机变量关于其自信息的期望就称之为熵H(x):

                                   

    其实这么一看随便量的熵其实就是自信息在其概率分布p(x)上的期望,即某种平均取值。

3、条件熵(Conditional entropy)

    条件熵H(Y|X)表示在已知随机变量X的条件下随机变量Y的不确定性。条件熵H(Y|X)定义为X给定条件下Y的条件概率分布的熵对X的数学期望。

                                    

具体计算案例参见:https://zhuanlan.zhihu.com/p/26551798

4、相对熵(Relative entropy)

     相对熵又称为KL散度(Kullback–Leibler divergence),相对熵描述的是两个概率分布的相似程度。设p(x)、q(x)是离散随机变量X中取值的两个概率分布,则p对q的相对熵是

                                    

注意

                                     ,

     直观上不满足交换律,即KL散度不是距离,不具备距离的这种性质。两个概率分布p和q的KL散度(Kullback–Leibler divergence)用于刻画概率分布q拟合概率分布p的程度(即两个概率分布的KL距离)。在生成对抗网络里,p为真实数据的概率分布,q为随机噪声生成数据的概率分布,对抗的目的是让q充分拟合p。

4、交叉熵(cross entropy)

     在机器学习中交叉熵并不陌生,在逻辑斯蒂回归和softmax多分类问题中经常见到。学习的过程其实就是学习一个模型,使得该模型输出的分布尽可能拟合真实训练样本的分布,既然如此为何不直接用KL散度呢?

设样本集概率分布为p(x),参数化的模型的概率分布为q(x)(非真实分布),定义p(x)与q(x)的交叉熵为:

                                    

我们知道概率分布p(x)的熵为

                                   

p(x)与q(x)的KL散度   
                                   

      所以为什么不直接KL散度作为训练的损失函数呢?由于机器学习中,训练样本准备完毕以后,那么训练集的分布基本就固定了,因此H(p)也就固定了,因此可以认为KL散度此时和交叉熵是等价的,这样想的话其实也是用的KL散度。

 

参考博客:

https://www.cnblogs.com/kyrieng/p/8694705.html

 

 

    

猜你喜欢

转载自blog.csdn.net/ouyangfushu/article/details/85163997