交叉熵损失函数是机器学习中一个常见的损失函数,用来衡量目标与预测值之间的差距,看着公式能感觉到确实有种在衡量差距的感觉,但是又说不出为什么有这种作用。下面从信息量-信息熵-交叉熵的步骤来看交叉熵公式的意义。
信息量
信息量是我们能获得未知信息的多少,比如我说周杰伦某天开演唱会,这件事信息量就很小,因为演唱会哪天开已经公布了,这件事发生的概率很大,不用我说你也知道。但是我如果说周杰伦出轨了,这件事的信息量就很大了,因为这件事几率很小,我们都想不到他会出轨。这种越不可能发生的事,也就是概率越小,其信息量也就越大,定义为:
假设是一个离散型随机变量,其取值集合为,概率分布函数,则定义事件的信息量为:
通过观察可以发现,这个表达式很好的满足了在概率中的两点要求:
- 两件不相关的事,它们同时发生的信息量应该等于分别发生时所获得的信息量,即
- 独立事件满足
之所以加负号是因为概率在(0,1),取log之后是负的,用负数表示信息不符合我们的认知逻辑,所以取负让信息量为正
信息熵
在高中学化学的时候我们学过熵的概念,熵用来表示一个系统内的混乱程度,放到概率中可以理解为表示一个事件发生各种情况下的确定性,定义为:
信息量度量的是一个具体事件发生了所带来的信息,而熵则是在结果出来之前对可能产生的信息量的期望——考虑该随机变量的所有可能取值,即所有可能发生事件所带来的信息量的期望。即
相对熵(KL散度)
下面回到机器学习中,在机器学习中,模型通过特征给出一个预测结果,现在我们想知道预测的和真实的label有什么差异,即预测和真实之间的分布有什么差异,差异是多少。
相对熵又称KL散度,如果我们对于同一个随机变量 x 有两个单独的概率分布 P(x) 和 Q(x),我们可以使用 KL 散度(Kullback-Leibler (KL) divergence)来衡量这两个分布的差异,计算公式为:
注意相对熵没有对称性,p和q换位后并不等价。在这里规定P表示真实分布,Q表示预测分布,当p,q同分布的时候相对熵最小。
交叉熵
将相对熵的公式展开后:
变形后前一部分是p的熵,后一部分就是交叉熵:
在机器学习优化中,由于label的分布不变,熵不变,优化时可以去掉,只看交叉熵。