熵,信息量,交叉熵

熵(Entropy)

维基百科Entropy(information theory).

定义:Information entropy is the average rate at which information is produced by a stochastic source of data.

在信息论中,(entropy)是接收的每条消息中包含的信息的平均量,又被称为信息熵等。这里,“消息”代表来自分布或数据流中的事件、样本或特征。(熵最好理解为不确定性的量度而不是确定性的量度,因为越随机的信源的熵越大。)来自信源的另一个特征是样本的概率分布。这里的想法是,比较不可能发生的事情,当它发生了,会提供更多的信息

事件的概率分布和每个事件的信息量构成了一个随机变量,这个随机变量的均值(即期望),就是这个分布产生的信息量的平均值(即熵)。有点绕,先从最基础的信息量来看。

信息量

  • 事件 P,“我刚吃完晚饭”,太平淡无奇,听的人只想回一句赶紧洗洗睡
  • 事件 Q,“我刚中了一等奖”,这个信息量就有点大了,听的人会好奇是大乐透还是双色球

越可能发生的事件 P,包含的信息量越小,越不可能发生的事件 Q,但是发生了,信息量越大。

假设 X X X 是一个离散型随机变量,其取值集合为 χ \chi χ ,概率分布函数 p ( x ) = P r ( X = x ) , x ∈ χ p(x)=Pr(X=x),x\in\chi p(x)=Pr(X=x),xχ ,则定义事件 X = x i X=x_i X=xi 的信息量为:
I ( x i ) = − l o g ( p ( x i ) ) I(x_i)=-log(p(x_i)) I(xi)=log(p(xi))
由于是概率所以 p(x_i) 的取值范围是[0,1],而且 p(x_i) 的概率越大,表示越可能发生 X=x_i 这个事件,信息量小。

熵的数学定义

信息论中,而熵用来表示所有信息量的期望,即:
H ( x ) = − ∑ i P ( x i ) l o g b P ( x i ) = E ( P ) H(x)=-\sum_{i}P(x_{i})log_{b}P(x_{i})=E(P) H(x)=iP(xi)logbP(xi)=E(P)
如何衡量两个事件、分布的不同:KL散度

相对熵(relative entropy)又称为KL散度,是两个概率分布 P 和 Q 差别的非对称性的度量。典型情况下,P表示数据的真实分布,Q 表示数据的理论分布,或者模型分布。例如机器学习中的模型,P 表示训练集数据分布,Q 则表示训练好的模型预测的数据分布

对于离散的随机变量,其概率分布 P 和 Q 的 KL 散度可定义为:
D K L ( P ∣ ∣ Q ) = ∑ i P ( i ) l n ( P ( i ) Q ( i ) ) = ∑ i P ( i ) l n ( P ( i ) ) − P ( i ) l n ( Q ( i ) ) = H ( P , Q ) − H ( P ) D_{KL}(P||Q) = \sum_{i}P(i) ln\bigg(\frac{P(i)}{Q(i)} \bigg) = \sum_{i}P(i)ln(P(i))- P(i)ln(Q(i))=H(P,Q)-H(P) DKL(PQ)=iP(i)ln(Q(i)P(i))=iP(i)ln(P(i))P(i)ln(Q(i))=H(P,Q)H(P)
对于连续的随机变量,其概率分布 P 和 Q 的 KL 散度可定义为,p,q 表示概率密度:
D K L ( P ∣ ∣ Q ) = ∫ p ( x ) l n ( p ( x ) q ( x ) ) = ∫ [ p ( x ) l n p ( x ) − p ( x ) l n q ( x ) ] D_{KL}(P||Q) = \int p(x) ln\bigg(\frac{p(x)}{q(x)} \bigg)=\int [p(x)lnp(x)-p(x)lnq(x)] DKL(PQ)=p(x)ln(q(x)p(x))=[p(x)lnp(x)p(x)lnq(x)]

以离散的为例,
− ∑ i P ( i ) l n P ( i ) , 实 际 表 示 P 的 熵 H ( P ) -\sum_{i}P(i)lnP(i),实际表示 P 的熵H(P) iP(i)lnP(i)PH(P)

− ∑ i P ( i ) l n Q ( i ) , 实 际 表 示 P , Q 的 交 叉 熵 H ( P , Q ) -\sum_{i}P(i)lnQ(i),实际表示 P,Q的交叉熵H(P,Q) iP(i)lnQ(i),PQH(P,Q)

那么实际有,KL 散度 = 交叉熵 - 熵。

为何交叉熵可用于代价函数

机器学习的过程的最终目的是,模型学习到的分布Q,尽可能的接近真实数据的分布 R,我们无法收集所有的真实数据,训练集的数据分布 P 在一定意义程度上近似真实数据分布 R,因此,我们希望模型学习到的分布 Q 尽可能的接近训练集数据分布 P.

上文中已经描述了用 KL 散度衡量两个分布的不同,那么要使得模型学习到的分布 Q 尽可能接近训练集数据分布 P,那么就是要最小化二者的 KL 散度,而交叉熵可以表示为
H ( P , Q ) = D K L ( P ∣ ∣ Q ) + H ( P ) H(P,Q)=D_{KL}(P||Q)+H(P) H(P,Q)=DKL(PQ)+H(P)
其中 H§ 表示训练集的熵,因此是已知的常数,因此 交叉熵 = KL散度 + 常数,最小化 KL 散度可等效于最小化交叉熵

参考:

微调. 为什么交叉熵(cross-entropy)可以用于计算代价?https://www.zhihu.com/question/65288314/answer/244557337>.

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值