信息论相关概念:熵 交叉熵 KL散度 JS散度

不羁岁月 提交于 2020-01-07 22:58:09

机器学习基础--信息论相关概念总结以及理解

摘要:
熵(entropy)、KL 散度(Kullback-Leibler (KL) divergence)和交叉熵(cross-entropy)以及JS散度,在深度学习以及机器学习很多地方都用的到,尤其是对于目标函数和损失函数的定义。在逻辑回归问题中,目标函数就是用交叉熵定义的。

1. 信息量

信息论是应用数学的一个分支,主要研究的是对一个信号包含信息的多少进行量化。信息论的基本想法是一个不太可能的事件发生了,要比一个非常可能的事件发生,能提供更多的信息。事件发生的可能性大,信息量少;事件发生的可能性小,其信息量大。

比如:早上你出门碰到一个朋友,他告诉你今天是晴天,这句话的信息量就很小,因为天气你已经知道了,而且是个确定性事件,等同于废话。
要是他再告诉你,明天可能下雪,这句话的信息量就比刚刚的话要大好多。
可以看出信息量的大小与事件发生的可能性成反比。

  1. 非常可能发生的事件信息量要比较少。在极端情况下,确保能够发生的事件应该没有信息量。
  2. 较不可能发生的事件具有更高的信息量。
  3. 独立事件应具有增量的信息。例如,投掷的硬币两次正面朝上传递的信息量,应该是投掷一次硬币正面朝上的信息量的两倍。
      为了满足上面 3 个性质,定义了一事件 x=X 的自信息(self-information)为:
    \[ I(x)=-log(P(x)) \tag{1} \]
    使用 \(x\) 表示随机变量,使用 \(x1,x2,...,xi,...,xN\) 或者 \(x\) 表示随机变量 \(x\) 可能的取值。当式(1)中 log 以 2 为底数时,\(I(x)\) 单位是比特(bit)或者香农(shannons);当 log 以自然常数 e 为底数时,\(I(x)\) 单位是奈特(nats)。这两个单位之间可以互相转换,通过比特度量的信息只是通过奈特度量信息的常数倍。(使用对数换底公式转化)在机器学习中大部分是以\(e\)为底。
    自信息只能处理单个的输出。我们可以使用香农熵(Shannon entropy)来对整个概率分布中的不确定性总量进行量化:
    \[ H(P)=H(x)= E_{x∼P}[I(x)]=\sum_{i=1}^NP(x_i)I(x_i)=−\sum_{i=1}^NP(x_i)logP(x_i)\tag{2} \]
    式(2)后两个等号是在离散型变量的情况下成立,对于连续型变量,则需要求积分。当 x 是连续的,香农熵被称为微分熵(differential entropy)。
    熵的一些性质:
  • 那些接近确定性的分布(输出几乎可以确定)具有较低的熵。
  • 那些接近均匀分布的概率分布具有较高的熵。
    当一个事件的发生概率为\(p(x)\) 时,它的信息量就是\(−log(p(x))\)。那么我们将这个事件的所有可能发生的结果都罗列出来,求的该事件信息量的期望(信息量的算术平均)

2. KL散度

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!