[机器学习]“交叉熵”函数
交叉熵产生于信息论里面的信息压缩编码技术,但是它后来演变成为从博弈论到机器学习等其他领域里的重要技术手段。
1.什么是信息量?
假设X是一个离散型随机变量,其取值集合为S,概率分布函数为p(x)=Pr(X=x),x∈S,我们定义事件X=x0的信息量为:I(x0)=−log(p(x0)),(对数函数底为10时可略写)可以理解为,一个事件发生的概率越大,则它所携带的信息量就越小,而当p(x0)=1时,熵将等于0,也就是说该事件的发生不会导致任何信息量的增加。
举个例子,小明平时不爱学习,考试经常不及格,而小王是个勤奋学习的好学生,经常得满分,所以我们可以做如下假设:
事件A:小明考试及格,对应的概率P(xA)=0.1,信息量为I(xA)=−log(0.1)=3.3219
事件B:小王考试及格,对应的概率P(xB)=0.999,信息量为I(xB)=−log(0.999)=0.0014
可以看出,结果非常符合直观:小明及格的可能性很低(十次考试只有一次及格),因此如果某次考试及格了(大家都会说:XXX竟然及格了!),必然会引入较大的信息量,对应的I值也较高。而对于小王而言,考试及格是大概率事件,在事件B发生前,大家普遍认为事件B的发生几乎是确定的,因此当某次考试小王及格这个事件发生时并不会引入太多的信息量,相应的I值也非常的低。
对数函数特点2.什么是熵?
熵其实是信息量的期望值,它是一个随机变量的确定性的度量。熵越大,变量的取值越不确定,反之就越确定。
对于一个随机变量X而言,它的所有可能取值的信息量的期望(E[I(x)])就称为熵。
X为离散型变量:
X为连续型变量:
PS:为了保证有效性,这里约定当p(x)→0时,有p(x)logp(x)→0(级数收敛)
当X为0-1分布时,熵与概率p的关系如下图:
当两种取值的可能性相等时,不确定度最大(此时没有任何先验知识);当p=0或1时,熵为0,即此时X完全确定3.什么是相对熵?
相对熵(relative entropy)又称为KL散度(Kullback-Leibler divergence),KL距离,是两个随机分布间距离的度量。记为DKL(p||q)。它度量当真实分布为p时,假设分布q的无效性。
相对熵数学公式推导上式最后的Hp(q)表示在p分布下,使用q进行编码需要的bit数,而H(p)表示对真实分布p所需要的最小编码bit数。基于此,相对熵的意义就很明确了:DKL(p||q)表示在真实分布为p的前提下,使用q分布进行编码相对于使用真实分布p进行编码(即最优编码)所多出来的bit数。
???????什么叫最小编码数,为什么?
PS:对数函数的运算性质:
4.什么是交叉熵?
从相对熵后就没太看懂
参考:http://blog.csdn.net/rtygbwwwerr/article/details/50778098