1: 信息量函数
想要用一个函数衡量事件的信息量大小
该函数需要满足三个特征
1):和事件发生的概率成反比(发生的概率越低,信息量就越大)
2):要满足两个事件同时发生时获得的信息量应该等于观察到事件各自发生时获得的信息之和f(x,y)=f(x)+f(y)
3):信息量函数要 > 0
构造满足上述条件的信息量函数为
I
(
x
)
=
log
1
p
(
x
)
=
−
log
p
(
x
)
I(x) =\log \frac{1}{p(x)}=-\log p(x)
I(x)=logp(x)1=−logp(x)
2: 信息熵
定义信息熵函数H(x)为信息量函数的数学期望
E
n
t
r
o
p
y
(
x
)
=
H
(
x
)
=
E
x
[
I
(
x
)
]
=
−
∑
p
(
x
)
log
p
(
x
)
Entropy(x) =H(x) =E_x[I(x)]=- \sum p(x) \log p(x)
Entropy(x)=H(x)=Ex[I(x)]=−∑p(x)logp(x)
有多个变量的信息熵称为联合熵:函数为
H
(
X
,
Y
)
=
−
∑
x
,
y
p
(
x
,
y
)
l
o
g
p
(
x
,
y
)
=
−
∑
i
=
1
n
∑
j
=
1
m
p
(
x
i
,
y
i
)
l
o
g
p
(
x
i
,
y
i
)
H(X,Y)=-\displaystyle\sum_{x,y}p(x,y)logp(x,y)=-\sum_{i=1}^{n}\sum_{j=1}^{m}p(x_i,y_i)logp(x_i,y_i)
H(X,Y)=−x,y∑p(x,y)logp(x,y)=−i=1∑nj=1∑mp(xi,yi)logp(xi,yi)
信息熵函数和概率的曲线图如下:
3:条件熵
条件熵 H(Y|X) 表示在已知随机变量 X 的条件下随机变量 Y 的不确定性。条件熵 H(Y|X) 定义为 X 给定条件下 Y 的条件概率分布的熵对 X 的数学期望
条件熵 H(Y|X) 相当于联合熵 H(X,Y) 减去单独的熵 H(X),即
H(Y|X)=H(X,Y)−H(X),证明如下:
4 :相对熵 (Relative entropy),也称KL散度 (Kullback–Leibler divergence)
设 p(x)、q(x) 是 离散随机变量 X 中取值的两个概率分布,则 p 对 q 的相对熵是:
D
K
L
(
p
∣
∣
q
)
=
∑
x
p
(
x
)
l
o
g
p
(
x
)
q
(
x
)
=
E
p
(
x
)
l
o
g
p
(
x
)
q
(
x
)
D_{KL}(p||q)=\displaystyle\sum_{x}p(x)log\frac{p(x)}{q(x)}=E_{p(x)}log\frac{p(x)}{q(x)}
DKL(p∣∣q)=x∑p(x)logq(x)p(x)=Ep(x)logq(x)p(x)
性质:
1、如果 p(x) 和 q(x) 两个分布相同,那么相对熵等于0
2、DKL(p||q)≠DKL(q||p) ,相对熵具有不对称性。
3、DKL(p||q)≥0
总结:相对熵可以用来衡量两个概率分布之间的差异,上面公式的意义就是求 p 与 q 之间的对数差在 p 上的期望值。
5: 交叉熵 (Cross entropy)
定义:
交叉熵是表示两个概率分布p,q,其中p表示真实分布,q表示非真实分布,在相同的一组事件中,其中,用非真实分布q来表示某个事件发生所需要的平均比特数
现在有关于样本集的两个概率分布 p(x) 和 q(x),其中 p(x) 为真实分布, q(x) 非真实分布。如果用真实分布 p(x) 来衡量识别别一个样本所需要编码长度的期望(平均编码长度)为:
H
(
p
)
=
∑
x
p
(
x
)
log
1
p
(
x
)
=
−
∑
x
p
(
x
)
log
p
(
x
)
H(p) =\displaystyle\sum_{x}p(x)\log\frac{1}{p(x)}=-\displaystyle\sum_{x}p(x)\log p(x)
H(p)=x∑p(x)logp(x)1=−x∑p(x)logp(x)
如果使用非真实分布 q(x) 来表示来自真实分布 p(x) 的平均编码长度,则是:
H
(
p
,
q
)
=
∑
x
p
(
x
)
log
1
q
(
x
)
=
−
∑
x
p
(
x
)
log
q
(
x
)
H(p,q)=\displaystyle\sum _{x}p(x)\log\frac{1}{q(x)}=-\displaystyle\sum_{x}p(x)\log q(x)
H(p,q)=x∑p(x)logq(x)1=−x∑p(x)logq(x)
(因为用 q(x) 来编码的样本来自于分布 q(x) ,所以 H(p,q) 中的概率是 p(x))。
此时就将 H(p,q) 称之为交叉熵。
举个例子。考虑一个随机变量 x,
真实分布
p
(
x
)
=
(
1
2
,
1
4
,
1
8
,
1
8
)
p(x)= \left( \displaystyle\frac{1}{2},\frac{1}{4},\frac{1}{8},\frac{1}{8} \right)
p(x)=(21,41,81,81),
非真实分布
q
(
x
)
=
(
1
4
,
1
4
,
1
4
,
1
4
)
q(x)=\left( \displaystyle\frac{1}{4},\frac{1}{4},\frac{1}{4},\frac{1}{4} \right)
q(x)=(41,41,41,41),
则
H
(
p
)
=
1
2
l
o
g
2
2
+
1
4
l
o
g
2
4
+
1
8
l
o
g
2
8
+
1
8
l
o
g
2
8
=
1.75
b
i
t
s
H(p)=\displaystyle\frac{1}{2}log_22+\frac{1}{4}log_24+\frac{1}{8}log_28+\frac{1}{8}log_28=1.75\ bits
H(p)=21log22+41log24+81log28+81log28=1.75 bits(最短平均码长),
交叉熵
H
(
p
,
q
)
=
1
2
l
o
g
2
4
+
1
4
l
o
g
2
4
+
1
8
l
o
g
2
4
+
1
8
l
o
g
2
4
=
2
b
i
t
s
H(p,q)=\displaystyle\frac{1}{2}log_24+\frac{1}{4}log_24+\frac{1}{8}log_24+\frac{1}{8}log_24=2\ bits
H(p,q)=21log24+41log24+81log24+81log24=2 bits 。
由此可以看出根据非真实分布 q(x) 得到的平均码长大于根据真实分布 p(x) 得到的平均码长。
6: 相对熵和交叉熵的关系
D
K
L
(
p
∣
∣
q
)
=
∑
x
p
(
x
)
l
o
g
p
(
x
)
q
(
x
)
=
∑
x
p
(
x
)
l
o
g
p
(
x
)
−
p
(
x
)
l
o
g
q
(
x
)
D_{KL}(p||q)=\displaystyle\sum_{x}p(x)log\frac{p(x)}{q(x)}=\sum_{x}p(x)logp(x)-p(x)logq(x)
DKL(p∣∣q)=x∑p(x)logq(x)p(x)=x∑p(x)logp(x)−p(x)logq(x)
H
(
p
)
=
−
∑
x
p
(
x
)
l
o
g
p
(
x
)
H(p)=-\displaystyle\sum_{x}p(x)logp(x)
H(p)=−x∑p(x)logp(x)
H
(
p
,
q
)
=
∑
x
p
(
x
)
l
o
g
1
q
(
x
)
=
−
∑
x
p
(
x
)
l
o
g
q
(
x
)
H(p,q)=\displaystyle\sum _{x}p(x)log\frac{1}{q(x)}=-\sum _{x}p(x)logq(x)
H(p,q)=x∑p(x)logq(x)1=−x∑p(x)logq(x)
所以有
D
K
L
(
p
∣
∣
q
)
=
H
(
p
,
q
)
−
H
(
p
)
,
也
就
是
相
对
熵
=
交
叉
熵
−
信
息
熵
D_{KL}(p||q)=H(p,q)-H(p) ,也就是相对熵=交叉熵-信息熵
DKL(p∣∣q)=H(p,q)−H(p),也就是相对熵=交叉熵−信息熵,
在机器学习训练网络时,输入数据与标签常常已经确定,那么真实概率分布
P
(
x
)
P(x)
P(x)也就确定下来了,所以信息熵在这里就是一个常量。由于KL散度的值表示真实概率分布
P
(
x
)
与
预
测
概
率
分
布
Q
(
x
)
P(x)与预测概率分布Q(x)
P(x)与预测概率分布Q(x)之间的差异,值越小表示预测的结果越好,所以需要最小化KL散度,而交叉熵等于KL散度加上一个常量(信息熵),且公式相比KL散度更加容易计算,所以在机器学习中常常使用交叉熵损失函数来计算loss就行了
交叉熵二分类表示形式
多分类表示形式
其中:
- M——类别的数量;
- y i c y_{ic} yic ——指示变量(0或1),如果该类别和样本i的类别相同就是1,否则是0; - p i c p_{ic} pic——对于观测样本i属于类别 [公式] 的预测概率。
7: 信息增益
信息增益=原始信息熵 - 条件熵
g
(
Y
,
X
)
=
H
(
Y
)
-
H
(
Y
∣
X
)
g(Y,X)=H(Y)-H(Y|X)
g(Y,X)=H(Y)-H(Y∣X)
就是说对一个确定的数据集来说,H(Y)是确定的,对于特征
X
i
X^i
Xi ,哪个
H
(
Y
∣
X
i
)
H(Y|X^i)
H(Y∣Xi)的值越小,信息增益就越大,这个特征的表现就越好
信息增益也叫互信息,下图可以很好的帮助理解
互信息计算公式推导:
由于:
I
(
X
,
Y
)
=
H
(
X
,
Y
)
-
H
(
X
∣
Y
)
−
H
(
Y
∣
X
)
I(X,Y)=H(X,Y)-H(X|Y) - H(Y|X)
I(X,Y)=H(X,Y)-H(X∣Y)−H(Y∣X)
I
(
Y
,
X
)
=
−
∑
x
,
y
p
(
x
,
y
)
l
o
g
p
(
x
,
y
)
+
∑
x
,
y
p
(
x
,
y
)
l
o
g
p
(
x
∣
y
)
+
∑
x
,
y
p
(
x
,
y
)
l
o
g
p
(
y
∣
x
)
I(Y,X)=-\displaystyle\sum_{x,y}p(x,y)logp(x,y) +\displaystyle\sum_{x,y}p(x,y)logp(x|y) +\displaystyle\sum_{x,y}p(x,y)logp(y|x)
I(Y,X)=−x,y∑p(x,y)logp(x,y)+x,y∑p(x,y)logp(x∣y)+x,y∑p(x,y)logp(y∣x)
=
∑
x
,
y
p
(
x
,
y
)
log
p
(
x
∣
y
)
p
(
y
∣
x
)
p
(
x
,
y
)
=\displaystyle\sum_{x,y}p(x,y)\log \frac{p(x|y)p(y|x)}{p(x,y)}
=x,y∑p(x,y)logp(x,y)p(x∣y)p(y∣x)
=
∑
x
,
y
p
(
x
,
y
)
log
p
(
y
∣
x
)
p
(
y
)
=\displaystyle\sum_{x,y}p(x,y)\log \frac{p(y|x)}{p(y)}
=x,y∑p(x,y)logp(y)p(y∣x)
=
∑
x
,
y
p
(
x
,
y
)
log
p
(
x
,
y
)
p
(
x
)
p
(
y
)
=\displaystyle\sum_{x,y}p(x,y)\log \frac{p(x,y)}{p(x)p(y)}
=x,y∑p(x,y)logp(x)p(y)p(x,y)