美文网首页Python数据挖掘
如何理解交叉熵(Cross Entory)?

如何理解交叉熵(Cross Entory)?

作者: weston_Xiang | 来源:发表于2018-05-13 11:44 被阅读28次

    交叉熵的理论来源是信息论。本文从怎么衡量一个事件的信息量大小开始,逐步深入,引入交叉熵的由来,并附上计算公式。最后解释了为什么很多算法要用交叉熵作为目标函数(损失函数)

    一、自信息(self-information)

    对于事件x,它的自信息(self-information)定义为:


    当log的底数为e,𝐼(𝑥)的单位是奈特(nats)。一奈特是以1/𝑒的概率观测到一个事件时获得的信息量。当log的底数为2,单位是比特(bit)或香农(shannons)。

    二、香农熵(Shannon entroy)

    自信息只能处理单个信息,而香农熵(Shannon entroy)可以用来对整个概率分布中的不确定性总量进行量化,也就是指遵循这个分布的事件所产生的期望信息总量,计算公式为:



    其中,H(x)也记作H(p)。

    三、交叉熵(Cross Entroy)

    现在有关于样本集的两个概率分布P和Q,P代表真实分布(计算时常用经验分布代替),Q为非真实分布,通常是对样本分布的人为估计。如果用真实分布P来衡量一个样本的香农熵,计算公式为:


    如果用非真实分布Q来衡量一个样本的香农熵,计算公式为:


    H(P,Q)即为交叉熵。

    举个例子:

    真实概率分布P为[0.5, 0.25, 0.25, 0],
    非真实分布Q为[0.25, 0.25, 0.25, 0.25],
    则H(P) = 0.5*log2 + 0.25*log4 + 0.25*log4 = 1.5
    H(P, Q) = 0.5*log4 + 0.25*log4 + 0.25*log4 = 2

    例子中可以发现,H(P,Q) > H(P),那么对于不同取值,该不等式是不是一直成立呢?来看第四步

    四、交叉熵应用

    重点来了,

    根据吉布斯不等式Gibbs’ inequality
    H(P, Q) >= H(P)
    恒成立,当且仅当Q为真实分布时取等号。

    通过最小化交叉熵,可以来找到逼近真实分布的Q。

    因此,一些算法将交叉熵做为损失函数。例如,分类问题中,用交叉熵代价函数来替代方差代价函数,可以加快训练速度。

    相关文章

      网友评论

        本文标题:如何理解交叉熵(Cross Entory)?

        本文链接:https://www.haomeiwen.com/subject/aookdftx.html