【ML Method】熵、联合熵、条件熵、互信息、相对熵、交叉熵

  • 更新时间:2018-07-07

前言

之前有写过一篇文章介绍信息增益、Gini、信息增益率的,上面介绍过熵及其相关概念,地址为:https://blog.csdn.net/roguesir/article/details/76619919。这篇文章从另外的角度详细介绍熵、联合熵、条件熵、互信息、相对熵、交叉熵、信息增益等信息,为后面介绍最大熵模型做铺垫。下面进行详细介绍:
这里写图片描述

熵的概念理解

熵(Entropy)最初在热力学中提出,后由香农引入信息论中,成为一个重要物理量,在机器学习中,经典算法如决策树、随机森林等算法都涉及熵的概念。

信息量

信息量作为信息的度量,可以用来衡量熵的定义,设 p ( x i ) 表示 x i 发生的概率,则信息量可以表示为:

(1) h ( x i ) = l o g a p ( x i ) = l o g a 1 p ( x i )
其中,a值常取2,表示比特,即非0即1,由此可知,信息量与概率成反比,可以理解为:事件发生概率越高,含有的信息量就越低,事件就越寻常易见。

熵的定义

熵在热力学熵用来描述物质的混乱程度,用来衡量不确定性,也就是说,物质越混乱,不确定性越大,熵值越大。
同步到信息论中,事件发生的不确定行越大,则熵越大。例如:掷骰子,六个面机会均等,因此投一次得到的点数不确定性最大(因为每个点数的概率都是六分之一),因此此时熵最大;再如:敲代码时候打错一个词,编译时出问题的概率为1,是一个确定事件,因此此时熵最小。
熵是信息量的期望,公式如下:

(2) H ( X ) = i = 1 n p ( x i ) l o g a p ( x i ) = i = 1 n p ( x i ) l o g a 1 p ( x i )
其中 l o g a 1 p ( x i ) 表示信息量, i = 1 n p ( x i ) l o g a 1 p ( x i ) 则表示信息量的期望,反应不确定性。
定义熵时,约定:
(3) lim p > 0 + p l o g a p = 0
概率和熵具有如下的性质:
(4) 0 p 1     a n d     p = 1
(5) H ( X ) 1

联合熵

由上面的Venn图可知,联合熵可以表示为两个事件的熵的并集:

(6) H ( X , Y ) = i = 1 n j = 1 n p ( x i , y j ) l o g 2 p ( x i , y j ) (7) = i = 1 n j = 1 n p ( x i , y j ) l o g 2 1 p ( x i , y j )
可以得到如下性质:
(8) m a x [ H ( X ) , H ( Y ) ] H ( X , Y ) H ( X ) + H ( Y )

条件熵

通过上述Venn图可知,条件熵实际上是联合熵与熵的差集,也可表示为熵与互信息的差集,具体如下:

(9) H ( X | Y ) = H ( X , Y ) H ( Y ) (10) = H ( X ) I ( X , Y )

具体的推到过程如下:
(11) H ( Y | X ) = i = 1 n p ( x i ) H ( Y | X = x i ) (12) = i = 1 n j = 1 n p ( x i ) p ( y i | x j ) l o g 2 p ( y i | x j ) (13) = i = 1 n j = 1 n p ( x i , y j ) l o g 2 p ( x i ) p ( x i , y j )

互信息

上面提到了互信息,互信息是用来表示变量间相互以来的程度,常用在特征选择和特征关联性等方面,公式如下:

(14) I ( X , Y ) = i = 1 n j = 1 n p ( x i , y j ) l o g 2 p ( x i , y j ) p ( x i ) p ( y j )

互信息与相关性 ρ 相关, ρ 用来描述线性相关性,互信息用来描述非线性相关性,其中:
(15) ρ = c o v ( x , y ) v a r ( x ) v a r ( y )

相对熵(KL散度)

相对熵用来描述像个分布之间的差异,在GAN上获得了广泛应用。

(16) K L ( p | | q ) = i = 1 n p ( x i ) l o g 2 p ( x i ) q ( x i )

其中,p,q表示两个分布,易知:
(17) K L ( p | | q ) K L ( q | | p )
KL散度越大,两个分布间的差异越明显,并且:
(18) K L ( p | | q ) 0
对于式(18),可以通过如下证明:

交叉熵

交叉熵常用在深度学习中目标函数优化。

(19) C H ( p , q ) = i = 1 n p ( x i ) l o g 2 q ( x i ) (20) = i = 1 n p i l o g 2 p i + i = 1 n p i l o g 2 p i i = 1 n p i l o g 2 q i (21) = H ( p ) + i = 1 n p i l o g 2 p i q i (22) = H ( p ) + K L ( p | | q )

猜你喜欢

转载自blog.csdn.net/roguesir/article/details/80947490