版权声明:本文为博主原创文章,未经博主允许不得转
交叉熵(Cross-Entropy)
交叉熵是一个在机器学习领域经常提到的概念。它经常用作代价(损失)函数,而均方误差或平均绝对误差在使用梯度优化的方法时往往效果不佳,一些饱和的神经网络输出单元结合这些代价函数时会产生非常小的梯度,这也是交叉熵代价函数比均方误差或平均绝对误差更受欢迎的原因。在学习交叉熵之前,我们先来了解下其他的基础概念:
1.什么是自信息(self-information)?
定义:假设 X X 是一个离散型随机变量,其取值集合为
,概率分布函数为 p(x)=P(X=x),x∈χ p ( x ) = P ( X = x ) , x ∈ χ ,我们定义事件 X=x0 X = x 0 的自信息为:
可以理解为,一个事件发生的概率越大,则它所携带的信息量就越小,而当 p(x0)=1 p ( x 0 ) = 1 时,熵将等于0,也就是说该事件的发生包含的信息量小。
举个例子,小明平时不爱学习,考试经常不及格,而小王是个勤奋学习的好学生,经常得满分,所以我们可以做如下假设:
事件A:小明考试及格,对应的概率 P(xA)=0.1 P ( x A ) = 0.1 ,信息量为 I(xA)=−log(0.1)=3.3219 I ( x A ) = − l o g ( 0.1 ) = 3.3219 .
事件B:小王考试及格,对应的概率 P(xB)=0.999 P ( x B ) = 0.999 ,信息量为 I(xB)=−log(0.999)=0.0014 I ( x B ) = − l o g ( 0.999 ) = 0.0014
可以看出,结果非常符合直观:小明及格的可能性很低(十次考试只有一次及格),因此如果某次考试及格了(大家都会说:XXX竟然及格了!),必然会引入较大的信息量,对应的 I I 值也较高。而对于小王而言,考试及格是大概率事件,在事件B发生前,大家普遍认为事件B的发生几乎是确定的,因此当某次考试小王及格这个事件发生时并不会引入太多的信息量,相应的 值也非常的低。
2.什么是熵(Entropy)?
定义:对于一个随机变量 X X 而言,它的所有可能取值的信息量的期望(
)就称为熵。
当 X X 是离散的:
当 X X 是连续的随机变量:熵定义为: