交叉熵的公式是怎么来的

交叉熵损失函数是机器学习中一个常见的损失函数,用来衡量目标与预测值之间的差距,看着公式能感觉到确实有种在衡量差距的感觉,但是又说不出为什么有这种作用。下面从信息量-信息熵-交叉熵的步骤来看交叉熵公式的意义。

信息量

信息量是我们能获得未知信息的多少,比如我说周杰伦某天开演唱会,这件事信息量就很小,因为演唱会哪天开已经公布了,这件事发生的概率很大,不用我说你也知道。但是我如果说周杰伦出轨了,这件事的信息量就很大了,因为这件事几率很小,我们都想不到他会出轨。这种越不可能发生的事,也就是概率越小,其信息量也就越大,定义为:

假设X是一个离散型随机变量,其取值集合为\chi,概率分布函数p(x)=Pr(X=x),x\in\chi,则定义事件X=x_0的信息量为:

                                                                              I(x_0)=-log(p(x_0))

通过观察可以发现,这个表达式很好的满足了在概率中的两点要求:

  • 两件不相关的事,它们同时发生的信息量应该等于分别发生时所获得的信息量,即h(x,y)=h(x)+h(y)
  • 独立事件满足p(x,y)=p(x)*p(y)

之所以加负号是因为概率在(0,1),取log之后是负的,用负数表示信息不符合我们的认知逻辑,所以取负让信息量为正

信息熵

在高中学化学的时候我们学过熵的概念,熵用来表示一个系统内的混乱程度,放到概率中可以理解为表示一个事件发生各种情况下的确定性,定义为:

信息量度量的是一个具体事件发生了所带来的信息,而熵则是在结果出来之前对可能产生的信息量的期望——考虑该随机变量的所有可能取值,即所有可能发生事件所带来的信息量的期望。即

H(X)=-\sum_{i=1}^{n}p(x_i)logp(x_i)

相对熵(KL散度)

下面回到机器学习中,在机器学习中,模型通过特征给出一个预测结果,现在我们想知道预测的和真实的label有什么差异,即预测和真实之间的分布有什么差异,差异是多少。

相对熵又称KL散度,如果我们对于同一个随机变量 x 有两个单独的概率分布 P(x) 和 Q(x),我们可以使用 KL 散度(Kullback-Leibler (KL) divergence)来衡量这两个分布的差异,计算公式为:

D_{KL}(p||q)=\sum_{i=1}^n p(x_i)log(\frac{p(x_i)}{q(x_i)})

注意相对熵没有对称性,p和q换位后并不等价。在这里规定P表示真实分布,Q表示预测分布,当p,q同分布的时候相对熵最小。

交叉熵

将相对熵的公式展开后:

交叉熵的公式是怎么来的_第1张图片

变形后前一部分是p的熵,后一部分就是交叉熵:

H(p,q)=-\sum_{i=1}^{n} p(x_i)log(q(x_i))

在机器学习优化中,由于label的分布不变,熵不变,优化时可以去掉,只看交叉熵。

 

你可能感兴趣的:(机器学习基础)