交叉熵
在深度学习中,经常以交叉熵作为代价函数,在这篇文章中主要对熵、相对熵、交叉熵进行详细的讲解,以加深对其理解。
1、信息量的定义
假设 X X 是一个随机变量,其取值集合为,概念分布函数为 p(x) p ( x ) 。 则 X=x0 X = x 0 的信息量为: I(x0)=−log(p(x0)) I ( x 0 ) = − l o g ( p ( x 0 ) ) 。可以理解为一个事件的发生概念越小所携带的信息量越大。而当某一个时间的 p(x)=1 p ( x ) = 1 ,说明该事件是一个必然发生的事件,该事件即使发生了,也不会增加任何信息量。比如,某个班级有两个A和B,其中A同学的成绩较为优异,其考试及格的概率为0.999;然而B同学成绩不太理想,其及格的概率仅为0.1。当A,B成绩都及格时,其信息量分别为:
A同学: I(xA)=−log(0.999)=0.0014 I ( x A ) = − l o g ( 0.999 ) = 0.0014
B同学: I(xB)=−log(0.1)=3.3219 I ( x B ) = − l o g ( 0.1 ) = 3.3219
显然,对于其他同学,B同学及格了更加有新闻价值,所携带的信息量也更大。
2、熵的定义
一个事件的发生总有不确定性,那么这个不确定性该如何度量了?如何量化了? 求期望!不错,我们对所有可能结果带来的额外信息量求取均值(期望),其结果不就能够衡量出小明考试成绩的不确定度了吗。
即:HA(x)=−p(x)∗logp(x)−(1−p(x))log(1−p(x)) H A ( x ) = − p ( x ) ∗ l o g p ( x ) − ( 1 − p ( x ) ) l o g ( 1 − p ( x ) )
可以看出,熵其实是信息量的期望值,它是一个随机变量的确定性的度量。熵越大,变量的取值越不确定,反之就越确定。
我们假设有一个普通的学生C,其及格与否的概念分别为0.5,他的信息熵为:
HC(x)=−0.5∗logp(0.5)−(1−0.5)log(1−0.5)=1 H C ( x ) = − 0.5 ∗ l o g p ( 0.5 ) − ( 1 − 0.5 ) l o g ( 1 − 0.5 ) = 1
所以其余同学很难猜测其考试是否及格。
3、相对熵
相对熵(relative entropy)又称为KL散度(Kullback-Leibler divergence),KL距离,是两个随机分布间距离的度量。记为:
DKL=Eplog(p(x)q(x))=∑xϵχp(x)∗log(p(x)q(x)) D K L = E p l o g ( p ( x ) q ( x ) ) = ∑ x ϵ χ p ( x ) ∗ l o g ( p ( x ) q ( x ) )
=∑xϵχp(x)∗log(p(x))−p(x)∗log(q(x)) = ∑ x ϵ χ p ( x ) ∗ l o g ( p ( x ) ) − p ( x ) ∗ l o g ( q ( x ) )
=−H(p)+∑xϵχ−p(x)∗log(q(x)) = − H ( p ) + ∑ x ϵ χ − p ( x ) ∗ l o g ( q ( x ) )
=−H(p)+Hp(q) = − H ( p ) + H p ( q )
所以:
H(p)=Hp(q)−DKL H ( p ) = H p ( q ) − D K L
其中 p为真实分布,q为。上式显然可以看出当 p=q p = q 时,其相对熵为0。从最后一个式子也可以看出相对熵的意义: DKL D K L 表示在真实分布为 p p 的前提下,使用假设分布进行模拟所多出来的信息量。
4、交叉熵
从上文可以看出,相对熵和交叉熵之间有着千丝万缕的联系,其定义为:
Hp(q)=H(p)+DKL H p ( q ) = H ( p ) + D K L
所以交叉熵 Hp(q) H p ( q ) 与 DKL D K L 距离在行为上是等价的,都反映了分布 p p ,的相似程度。最小化交叉熵等于最小化KL距离。他们都在 p=q p = q 时取得最小值 H(p) H ( p ) ( DKL D K L 值为0)。
特别的在逻辑回归中:
p
p
:真实样本分布服从参数为的0~1分布。
q
q
:待估计的模型,服从参数为的0~1分布。
所以两者的交叉熵为:
这个结果与通过最大似然估计方法求出来的结果一致。