一,信息(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)=Ex∼P[−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=Ex∼P[−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 CrossEntropy≥Entropy
因为熵是理论上的最小平均编码长度,所以用其他任何概率分布Q估计出来的值都不会小于这个值。实际上我们总会因为模型的准确度,以及一些取整问题等,导致概率分布Q不严格等于P。所以交叉熵≥熵。
2.4 交叉熵的应用
当Q越接近P时,交叉熵就越小。所以可以将交叉熵作为损失函数,训练模型,使其得到的Q接近于目标分布P。
例:假设一个动物照片的数据集中有5种动物,且每张照片中只有一只动物,每张照片的标签都是one-hot编码。
假设有两个机器学习模型对第一张照片P1分别作出了预测:Q1和Q2,而第一张照片的真实标签为[1,0,0,0,0]。
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)=Ex∼P[log2P(x)−log2Q(x)]=−∑iP(i)(log2P(i)−log2Q(i))=−∑iP(i)log2Q(i)P(i)
4.3 KL散度的应用
可见这篇文章