首先来看离散型随机变量。考虑随机变量取某一个特定值时包含的信息量的大小。假设随机变量取值为,对应的概率为。直观来看,取这个值的可能性越小,而它又发生了,则包含的信息量就越大。因此如果定义一个函数来描述随机变量取值为的信息量的大小的话,则应该是的单调减函数。例如,一年之内人类登陆火星,包含的信息量显然比广州明天要下雨大,因为前者的概率明显小于后者。
满足单调递减要求的函数太多了,我们该选择哪个函数呢?接着考虑。假设有两个相互独立的随机变量,它们的取值分别为和,取该值的概率为和。根据随机变量的独立性,它们的联合概率为
由于这两个随机变量是相互独立的,因此它们各自取某一值时包含的信息量应该是两个随机变量分别取这些值的时候包含的信息量之和
这要求能把的乘法转化为加法。在数学上,满足此要求的是对数函数。因此,可以把自信息定义为
这个对数的底数是多少并没有太大关系,根据换底公式,最后计算出来的结果就差了一个倍数,信息论中通常以为底,在机器学习中通常以为底,在后面的计算中为了方便起见我们用为底。需要强调的对数函数前面加上了负号,这是因为对数函数是增函数,而我们要求是的减函数。另外,由于,因此,加上负号之后刚好可以保证这个信息量为正。
上面只是考虑了随机变量取某一个值时包含的信息量,而随机变量的取值是随机的,有各种可能,那又怎么计算它取所有各种取值时所包含的信息量呢?既然随机变量取值有各种情况,而且取每个值有一个概率,那我们计算它取各个值时的信息量的均值即数学期望即可,这个信息量的均值,就是熵
离散:
连续:
根据熵的定义,随机变量取各个值的概率相等(均匀分布)时有有极大值,在取某一个值的概率为,取其他所有值的概率为时有有极小值(此时随机变量退化成某一必然事件或者说确定的变量)。
KL散度是两个概率分布P和Q差别的非对称性的度量。典型情况下,P表示数据的真实分布,Q表示数据的理论分布、估计的模型分布、或P的近似分布
Kullback-Leibler Divergence,即K-L散度,是一种量化两种概率分布P和Q之间差异的方式,又叫相对熵。在概率学和统计学上,我们经常会使用一种更简单的、近似的分布来替代观察数据或太复杂的分布。K-L散度能帮助我们度量使用一个分布来近似另一个分布时所损失的信息量。
其中,是分布、分布共同的样本空间中的同一个样本点,样本空间的大小
离散:
连续:
非负
只有 时,
非对称性
相对熵公式的前半部分就是交叉熵
离散:
若是数据的真实概率分布,是由数据计算得到的概率分布。机器学习的目的就是希望尽可能地逼近甚至等于,从而使得相对熵接近最小值. 由于真实的概率分布是固定的,相对熵公式的后半部分就成了一个常数。那么相对熵达到最小值的时候,也意味着交叉熵达到了最小值。对的优化就等效于求交叉熵的最小值。另外,对交叉熵求最小值,也等效于求最大似然估计