zoukankan      html  css  js  c++  java
  • 交叉熵

    交叉熵(Cross-Entropy)

    交叉熵是一个在ML领域经常会被提到的名词。在这篇文章里将对这个概念进行详细的分析。

    1.什么是信息量?

    假设X的信息量为:
    I(x0)=−log(p(x0))时,熵将等于0,也就是说该事件的发生不会导致任何信息量的增加。举个例子,小明平时不爱学习,考试经常不及格,而小王是个勤奋学习的好学生,经常得满分,所以我们可以做如下假设:
    事件A:小明考试及格,对应的概率P(xA)=0.1
    事件B:小王考试及格,对应的概率P(xB)=0.999
    可以看出,结果非常符合直观:小明及格的可能性很低(十次考试只有一次及格),因此如果某次考试及格了(大家都会说:XXX竟然及格了!),必然会引入较大的信息量,对应的I值也非常的低。

    2.什么是熵?

    那么什么又是熵呢?还是通过上边的例子来说明,假设小明的考试结果是一个0-1分布XA只有两个取值{0:不及格,1:及格},在某次考试结果公布前,小明的考试结果有多大的不确定度呢?你肯定会说:十有八九不及格!因为根据先验知识,小明及格的概率仅有0.1,90%的可能都是不及格的。怎么来度量这个不确定度?求期望!不错,我们对所有可能结果带来的额外信息量求取均值(期望),其结果不就能够衡量出小明考试成绩的不确定度了吗。
    即:
    HA(x)=−[p(xA)log(p(xA))+(1−p(xA))log(1−p(xA))]=0.4690
    对应小王的熵:
    HB(x)=−[p(xB)log(p(xB))+(1−p(xB))log(1−p(xB))]=0.0114
    虽然小明考试结果的不确定性较低,毕竟十次有9次都不及格,但是也比不上小王(1000次考试只有一次才可能不及格,结果相当的确定)
    我们再假设一个成绩相对普通的学生小东,他及格的概率是P(xC)=0.5,即及格与否的概率是一样的,对应的熵:
    HC(x)=−[p(xC)log(p(xC))+(1−p(xC))log(1−p(xC))]=1
    其熵为1,他的不确定性比前边两位同学要高很多,在成绩公布之前,很难准确猜测出他的考试结果。
    可以看出,熵其实是信息量的期望值,它是一个随机变量的确定性的度量。熵越大,变量的取值越不确定,反之就越确定。

    对于一个随机变量X而言,它的所有可能取值的信息量的期望(E[I(x)])就称为熵。
    X的熵定义为:
    H(X)=Eplog1p(x)=−∑x∈Xp(x)logp(x)
    如果p(x)是连续型随机变量的pdf,则熵定义为:
    H(X)=−∫x∈Xp(x)logp(x)dx
    为了保证有效性,这里约定当p(x)→0时,有p(x)logp(x)→0
    当X为0-1分布时,熵与概率p的关系如下图:
    这里写图片描述
    可以看出,当两种取值的可能性相等时,不确定度最大(此时没有任何先验知识),这个结论可以推广到多种取值的情况。在图中也可以看出,当p=0或1时,熵为0,即此时X完全确定。
    熵的单位随着公式中log运算的底数而变化,当底数为2时,单位为“比特”(bit),底数为e时,单位为“奈特”。

    3.什么是相对熵?

    相对熵(relative entropy)又称为KL散度(Kullback-Leibler divergence),KL距离,是两个随机分布间距离的度量。记为DKL(p||q)。它度量当真实分布为p时,假设分布q的无效性。
    DKL(p||q)=Ep[logp(x)q(x)]=∑x∈Xp(x)logp(x)q(x)
    =∑x∈X[p(x)logp(x)−p(x)logq(x)]
    =∑x∈Xp(x)logp(x)−∑x∈Xp(x)logq(x)
    =−H(p)−∑x∈Xp(x)logq(x)
    =−H(p)+Ep[−logq(x)]
    =Hp(q)−H(p)
    并且为了保证连续性,做如下约定:
    0log00=0,0log0q=0,plogp0=∞
    显然,当p=q
    上式最后的Hp(q)表示在真实分布为p的前提下,使用q分布进行编码相对于使用真实分布p进行编码(即最优编码)所多出来的bit数。

    4. 什么是交叉熵?

    交叉熵容易跟相对熵搞混,二者联系紧密,但又有所区别。假设有两个分布p,q,则它们在给定样本集上的交叉熵定义如下:
    CEH(p,q)=Ep[−logq]=−∑x∈Xp(x)logq(x)=H(p)+DKL(p||q)
    可以看出,交叉熵与上一节定义的相对熵仅相差了H(p)(p=q时KL距离为0),因此有的工程文献中将最小化KL距离的方法称为Principle of Minimum Cross-Entropy (MCE)或Minxent方法。
    特别的,在logistic regression中,
    p:真实样本分布,服从参数为p的0-1分布,即X∼B(1,p)
    q:待估计的模型,服从参数为q的0-1分布,即X∼B(1,q)
    两者的交叉熵为:
    CEH(p,q)
    =−∑x∈Xp(x)logq(x)
    =−[Pp(x=1)logPq(x=1)+Pp(x=0)logPq(x=0)]
    =−[plogq+(1−p)log(1−q)]
    =−[yloghθ(x)+(1−y)log(1−hθ(x))]
    对所有训练样本取均值得:
    −1m∑i=1m[y(i)loghθ(x(i))+(1−y(i))log(1−hθ(x(i)))]
    这个结果与通过最大似然估计方法求出来的结果一致。

  • 相关阅读:
    React实现新闻网站--使用动态路由获取不同列表内容
    Bootstrap4 轮播+模态框+提示框+弹出框
    JDK 升级问题小结
    JDK8 指南(译)
    如何学习一门编程语言
    redis 系列5 数据结构之字典(上)
    sql server 临时表(上) Tempdb概述
    redis 系列4 数据结构之链表
    redis 系列3 数据结构之简单动态字符串 SDS
    redis 系列2 知识点概述
  • 原文地址:https://www.cnblogs.com/h694879357/p/12604715.html
Copyright © 2011-2022 走看看