信息(Information)、熵(Entropy)、交叉熵(Cross-Entropy)和KL散度(KL-Divergence)

一,信息(Information)

1.1 信息量的定义

信息量:不确定性减小的度量

1.2 信息的性质

某一信息的概率越小,提供的信息量就越大

当一个罕见的信息到达时,比一个常见的信息有着更多的信息量,因为它排除了别的很多的可能性,告诉了我们一个确切的信息。

例如,某地某段时间下雨的概率为12.5%,晴朗的概率为50%,多云的概率为37.5%。那么当天气预报提供下雨的信息时,我们减少了87.5%的不确定性。如果天气预报提供晴朗的信息,那我们仅减少了50%的不确定性。

1.2 信息量的公式

I ( x ) = − log ⁡ 2 P ( x ) I(x)=-\log_2P(x) I(x)=log2P(x)

为何用负对数?

  • 为了满足P越小,I越大的性质。

  • 方便地将分布在(0,1)的概率映射到分布在(0, ∞ \infty )的信息量

  • 为了满足独立可加性。

    独立事件同时发生的概率是二者概率相乘。而直观上二者提供的信息量应该是相加的。而对数恰好可以化加为乘。

为何以2为底?

  • 在计算机科学中,我们一般以01事件为参照事件。 log ⁡ 2 \log_2 log2表示在不等长编码中,该事件需要用多少个01事件来表示。即编码长度

二,熵(Entropy)

1.1 熵的定义

香农对熵的定义:无损编码事件信息的最小平均编码长度。

1.2 熵的直观解释

通常熵可以解释为混乱程度、不确定性等等。

如果熵比较大,即最小平均编码长度较长,意味着该事件有较多的可能状态。我们较难对其做出预测。或者说,此时每个信息的可能性都相对较低,从而每个信息能提供的不确定性减少量很大。

1.3 熵的公式

熵用H§表示,P为概率分布

E n t r o p y = H ( P ) = E x ∼ P [ − log ⁡ 2 P ( x ) ] = − ∑ i P ( i ) log ⁡ 2 P ( i ) Entropy =H(P)= \mathbb{E}_{x\sim P}[-\log_2P(x)]=-\sum_i P(i) \log_2 P(i) Entropy=H(P)=ExP[log2P(x)]=iP(i)log2P(i)

解释:

  • 为何取负对数?

    因为信息的定义是负对数

  • 为何是把P(i)放到对数里?

    从信息传输的角度来说,为了节省资源,应该把短的编码留给概率大的状态,而概率越小的状态编码应该越长。这样的编码是最优的。

  • 为何用的是期望函数?

    因为熵的定义是最小的“平均编码长度”

三,交叉熵(Cross-Entropy)

2.1 交叉熵的定义

只要我们知道了任何事件的概率分布,我们就可以计算它的熵。那如果我们不知道事件的概率分布,又该怎么办呢?那就只能对熵做一个估计,用我们预估的概率分布Q来代替P,估计熵。这个估计就是交叉熵。

2.2 交叉熵的公式

交叉熵用H(P,Q)表示。P为真实的概率分布分布,Q为预估的概率分布

C r o s s E n t r o p y = E x ∼ P [ − log ⁡ 2 Q ( x ) ] = − ∑ i P ( i ) log ⁡ 2 Q ( i ) CrossEntropy = \mathbb{E}_{x\sim P}[-\log_2Q(x)]=-\sum_i P(i) \log_2 Q(i) CrossEntropy=ExP[log2Q(x)]=iP(i)log2Q(i)

2.3 交叉熵的性质

C r o s s E n t r o p y ≥ E n t r o p y CrossEntropy \ge Entropy CrossEntropyEntropy

因为熵是理论上的最小平均编码长度,所以用其他任何概率分布Q估计出来的值都不会小于这个值。实际上我们总会因为模型的准确度,以及一些取整问题等,导致概率分布Q不严格等于P。所以交叉熵≥熵。

2.4 交叉熵的应用

当Q越接近P时,交叉熵就越小。所以可以将交叉熵作为损失函数,训练模型,使其得到的Q接近于目标分布P。

例:假设一个动物照片的数据集中有5种动物,且每张照片中只有一只动物,每张照片的标签都是one-hot编码。

img

假设有两个机器学习模型对第一张照片P1分别作出了预测:Q1和Q2,而第一张照片的真实标签为[1,0,0,0,0]。

img

H ( P 1 , Q 1 ) = − ∑ i P 1 ( i ) log ⁡ 2 Q 1 ( i ) = − ( 1 log ⁡ 2 0.4 + 0 log ⁡ 2 0.3 + . . . + 0 log ⁡ 2 0.2 ) ≈ 0.916 H(P_1,Q_1)=-\sum_i P_1(i) \log_2 Q_1(i)=-(1\log_20.4+0\log_20.3+...+0\log_20.2)\approx 0.916 H(P1,Q1)=iP1(i)log2Q1(i)=(1log20.4+0log20.3+...+0log20.2)0.916

H ( P 1 , Q 2 ) = − ∑ i P 1 ( i ) log ⁡ 2 Q 2 ( i ) = − ( 1 log ⁡ 2 0.98 + 0 log ⁡ 2 0.01 + . . . + 0 log ⁡ 2 0.2 ) ≈ 0.02 H(P_1,Q_2)=-\sum_i P_1(i) \log_2 Q_2(i)=-(1\log_20.98+0\log_20.01+...+0\log_20.2)\approx 0.02 H(P1,Q2)=iP1(i)log2Q2(i)=(1log20.98+0log20.01+...+0log20.2)0.02

可见,预测准确度更高的Q2模型,其预测结果对应的交叉熵越小。因此交叉熵可以作为损失函数。

四,KL散度(KL-Divergence)

4.1 KL散度的定义

KL散度是一种量化两种概率分布P和Q之间差异的方式,又称为“相对熵”

4.2 KL散度的公式

D K L ( P ∣ ∣ Q ) = E x ∼ P [ log ⁡ 2 P ( x ) − log ⁡ 2 Q ( x ) ] = − ∑ i P ( i ) ( log ⁡ 2 P ( i ) − log ⁡ 2 Q ( i ) ) = − ∑ i P ( i ) log ⁡ 2 P ( i ) Q ( i ) D_{KL}(P||Q)= \mathbb{E}_{x\sim P}[\log_2P(x)-\log_2Q(x)]\\=-\sum_i P(i) (\log_2 P(i)-\log_2Q(i))\\=-\sum_i P(i) \log_2\frac{P(i)}{Q(i)} DKL(P∣∣Q)=ExP[log2P(x)log2Q(x)]=iP(i)(log2P(i)log2Q(i))=iP(i)log2Q(i)P(i)

4.3 KL散度的应用

可见这篇文章

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值