zoukankan      html  css  js  c++  java
  • 交叉熵(Cross Entropy)

    本文介绍交叉熵的概念,涉及到信息量、熵、相对熵、交叉熵;

    信息量

    信息量是用来衡量一个事件发生的不确定性,一个事件发生的概率越大,不确定性越小,则信息携带的信息量则越小;

    假设(X)是一个离散随机变量,其取值为集合(X=x_0, x_1, cdots,x_n),其概率分布函数为:

    [p(x) = Pr(X=x), xin X ]

    则定义事件(X=x_0)的信息量为:

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

    (p(x_0) = 1)时,该事件必定发生,其信息量就为0;

    下面详细说明为什么选择(log)用于计算信息量:
    单调递减:

    首先,事件的概率越大,不确定性越小,则携带的信息量越小;所以是一个单调递减的函数;

    随机变量独立性:

    假设(x_1, x_2)是两个独立的随机变量,则其联合概率有:

    [p(x_1, x_2) = p(x_1) cdot p(x_2) ]

    那么,对于两个独立的事件(X=x_1)(X=x_2),其联合后的信息量就有:

    [I(x_1, x_2) = I(x_1) + I(x_2) ]

    因此,考虑随机变量的独立性,概率的乘法能转换到信息量的加法,可以使用(log)方法,同时为了满足单调递减的性质,再取负;

    就有了:

    [I(x) = -log(p(x)) ]

    其中(p(x))的取值为([0, 1])

    如下图所示,横轴表示事件发生的概率,纵轴表示其携带的信息量;

    熵是用来衡量一个系统的混乱程度,代表系统中信息量的总和;

    熵值越大,则表明这个系统越不稳定;

    信息量是衡量一个事件的不确定性,而熵是衡量一个系统(所有事件)的不确定性;

    熵的计算公式如下:

    [H(x) = -sum_{i=1}^{n}p(x_i) log(p(x_1)) ]

    其中,(p(x_i))表示事件(X=x_i)发生的概率,(-log(p(x_i)))表示事件(X=x_i)的信息量;

    可以看出,熵是信息量的期望值,是一个随机变量不确定性的度量;

    熵值越大,随机变量的取值就越难确定,系统就越不稳定;

    熵值越低,随机变量的取值就越容易确定,系统就越稳定;

    相对熵(Relative Entropy)

    相对熵也称为KL散度(Kullback-Leibler divergence),表示同一个随机变量的两个不同分布间的距离;

    假设,(p(x), q(x))分别是 离散随机变量(X)的两个概率分布,则(p)(q)的相对熵是:

    [D_{KL}(p||q) = sum_i p(x_i) log(dfrac{p(x_i)}{q(x_i)}) ]

    具有以下性质:

    • 如果(p(x))(q(x))的分布相同,则相对熵为0;
    • 相对熵不具有对称性,即(D_{KL}(p||q) ot = D_{KL}(q||p)),即KL散度也不是一种度量方式;
    • (D_{KL}(p||q) ge 0)

    总的来说,相对熵是用来衡量同一个随机变量的两个不同分布之间的距离;在实际应用中,(p(x))表示目标分布,(q(x))表示预测得到的分布,任务的目标就是让两个分布尽可能的相似,这就需要最小化KL散度;

    交叉熵(Cross Entropy)

    对相对熵的计算公式做一步拆分:

    [egin{align} D_{KL}(p||q) & = sum_i p(x_i) log(dfrac{p(x_i)}{q(x_i)}) \ & = sum_i p(x_i)log p(x_i) - sum_i p(x_i) log q(x_i) \ end{align} ]

    在机器学习中,假设(p)是目标分布,则分布(p)的熵就是一个固定的值,其计算方式就是上式的第一项;

    那么,上式的第二项,即

    [H(p, q) = - sum_i p(x_i) log q(x_i) ]

    称为交叉熵;

    (p(x))是目标分布,我们的目标就是让训练得到的分布(q(x))尽可能地接近(p(x)),这时候就可以最小化(D_{KL}(p||q)),等价于最小化交叉熵(H(p, q))

    因此,交叉熵衡量的是两个部分之间的差异,所以在用于分类任务的深度卷积神经网络中,常在最后一层中加上Softmax层;

    Reference:

  • 相关阅读:
    shell script数组使用函数输出
    Yii2文件上传
    ubuntu 安装遇到黑屏
    使用函数
    ionCube 安装
    记录LNMP环境彻底删除绑定域名及网站文件夹/文件的过程
    lnmp环境 开启pathinfo
    国外知名设计教程网址收集
    26个国外在线教育网站
    前端学习网站汇总
  • 原文地址:https://www.cnblogs.com/chenzhen0530/p/14699463.html
Copyright © 2011-2022 走看看