相关数据包
梳理几个信息论相关概念参考:
什么是信息量?如何计算信息量?通俗理解条件熵从编码角度直观理解信息熵计算公式浅谈KL散度简单的交叉熵,你真的懂了吗李航《统计学习方法》
文章目录
0. 引入:三门问题1. 信息量1.1 从 “不确定度” 角度理解1.2 从编码角度理解
2. 信息熵3. 条件熵 & 信息增益3.1 条件熵3.2 信息增益
4. 交叉熵 & 相对熵(KL散度)4.1 交叉熵4.2 相对熵(KL散度)4.3 交叉熵和相对熵的关系4.4 信息投影和矩投影
5. JS散度
0. 引入:三门问题
美国的电视游戏节目Let’s Make a Deal 有一个经典游戏项目,参赛者面都三扇关闭的门,其中一扇门后面有一辆汽车,另外两扇门后面各藏有一只山羊,只要参赛者选中了有汽车的门即可赢得它。游戏开始后,当参赛者选定一扇门但未去开启它的时候,节目主持人会开启剩下两扇门的其中一扇,露出一只山羊,随后主持人会问参赛者要不要换另一扇仍然关上的门。为了最大化赢得汽车的概率,作为玩家要不要换门呢?如果要,中奖概率变成多少?答案是要换,这会使赢得汽车的几率从
1
3
\frac{1}{3}
31 提升到
2
3
\frac{2}{3}
32
这个问题有点反直觉,因为打开一道不相干的门似乎和你最初的选择无关,不会影响你中奖的概率。但事实上,打开不相关门这件事不但和你的初始选择有关(因此概率不会变为
1
2
\frac{1}{2}
21),更会导致中奖概率发生变化。理解它最简单的方法是如下穷举所有的可能性
简单地分析下
三门问题:一开始选择的门有
1
3
\frac{1}{3}
31 的概率中奖,剩下两道则平分
2
3
\frac{2}{3}
32 的概率,打开一道门这件事,使得
2
3
\frac{2}{3}
32 的概率都集中到了最后一道门上,所以换门后中奖概率变成
2
3
\frac{2}{3}
32
n
n
n 门问题:从极限角度考虑,假设一开始有
n
→
∞
n\to \infin
n→∞ 道门,则初次选择中奖概率为
1
n
→
0
\frac{1}{n}\to 0
n1→0,接下来从分担
n
−
1
n
\frac{n-1}{n}
nn−1 中奖概率的
n
−
1
n-1
n−1 道门中排除
n
−
2
n-2
n−2 道不中奖的,
n
−
1
n
\frac{n-1}{n}
nn−1 的中奖概率便全部集中到最后一道门上,换门后中奖概率变成
n
−
1
n
→
1
\frac{n-1}{n}\to 1
nn−1→1 这里我们先建立一个直观的认识,随着门数
n
n
n 增加,事件 “连续打开
n
−
2
n-2
n−2 道门都是不中奖的” 出现的概率
p
=
1
n
+
n
−
1
n
1
C
n
−
1
n
−
2
=
2
n
,
n
≥
3
p = \frac{1}{n} + \frac{n-1}{n}\frac{1}{C_{n-1}^{n-2}} = \frac{2}{n},n \geq 3
p=n1+nn−1Cn−1n−21=n2,n≥3 是不断减小的, 而换门后中奖的概率在不断增大,说明系统的不确定度在不断降低(
n
→
∞
n\to\infin
n→∞ 时几乎可以肯定奖品就在最后一道门后),也就是说一般意义下
某事件发生概率越低,其提供的信息就越多,消除的系统不确定度就越多,系统剩余的不确定度就越低
规范一点说,信息 本质是对(随机实验的/随机变量的/系统的)不确定度减小程度的度量,观察者可用它调整对于各种可能情结果的预测概率;与之相对的,不能够消除观察者对于某件事情不确定性的事物被称为 噪音,比如这里门的形状和颜色等特征。观测者直接接受到的 数据 则是信息和噪音的叠加,即
数据
=
信息
+
噪音
数据=信息+噪音
数据=信息+噪音
1. 信息量
1.1 从 “不确定度” 角度理解
为了对信息的多少进行度量,类似其他物理量,我们需要一个1单位信息的参照物。由于信息是不确定性减小程度的度量,那么就选择一个随机实验的不确定性作为参照物,当参照实验像抛硬币一样有两种等概率事件时,测量单位就叫比特bit。注意到信息是指数增加的,抛
n
n
n 次硬币的可能情况是
2
n
2^n
2n ,所以
当随机实验的各个事件发生概率相等时,设
m
m
m 是被测随机实验等概率的情况个数,
k
k
k 是参照随机实验的等概率情况个数,则被测试随机实验某个等概率事件发生带来的信息 可以表示为
log
k
m
\log_km
logkm
举例来说,记 “一个八面骰子掷出数字 1” 为事件 A,发生后提供的信息量为
I
(
A
)
I(A)
I(A);“硬币掷出正面” 为事件 B,发生后提供的信息量
I
(
B
)
=
1
I(B)=1
I(B)=1 为一单位信息量,有
p
(
A
)
=
1
8
p
(
B
)
,
I
(
A
)
=
log
2
8
=
3
=
3
I
(
B
)
p(A) = \frac{1}{8}p(B),\space I(A) = \log_28=3 = 3I(B)
p(A)=81p(B), I(A)=log28=3=3I(B)
当随机实验的各个事件发生概率不等时,概率为
p
p
p 的事件可以看作来自
1
p
\frac{1}{p}
p1 个等概率事件,概率的倒数等于等概率情况的个数,因此概率为
p
p
p 的事件发生的信息量可以表示为
log
1
p
=
−
log
p
\log\frac{1}{p} = -\log p
logp1=−logp 对数函数不同的底对应信息量的不同单位,相当于用不同的进制数对相同的信息进行编码
当底为 2 时,信息量的单位是 bit当底为
e
e
e 时,信息量的单位是 nat当底为10 时,信息量的单位是 Hart 信息量:给定有限取值离散随机变量
X
X
X 及其概率分布
p
(
X
=
x
i
)
,
i
=
1
,
2
,
.
.
.
,
n
p(X=x_i),i=1,2,...,n
p(X=xi),i=1,2,...,n,则事件
X
=
x
i
X=x_i
X=xi 发生包含的信息量是
I
(
X
=
x
i
)
=
−
log
p
(
X
=
x
i
)
I(X=x_i) = -\log p(X=x_i)
I(X=xi)=−logp(X=xi)
和直觉一致:概率越大的事件,其发生带来的信息量越小,系统剩余的不确定度越大;概率越小的事件,其发生带来的信息量越大,系统剩余的不确定度越小
举例来说,某明星在微博上发了几张自拍,这是个大概率事件,发生后没有带来什么信息,对于他未来发展的不确定性依然很强;另一方面,此明星吸毒被捕,这是个小概率事件,信息量极大,他未来发展的不确定性也大幅下降,因为此人将被封杀
两个极端情况为
必然事件:概率
p
=
1
p=1
p=1,包含的信息量为
−
log
1
=
0
-\log1=0
−log1=0小概率事件:概率
p
→
0
p\to 0
p→0,包含的信息量为
lim
p
→
0
−
log
p
=
∞
\lim_{p\to 0}-\log p=\infin
limp→0−logp=∞ 最后给出信息量的函数图像
1.2 从编码角度理解
“编码” 是理解信息的另一个重要角度,简单说就是要做这样一件事
给定一个若干字符组成的字符集,要为每个字符找到一个唯一的二进制数来表示它,要求任一字符的编码都不能是另一字符编码的前缀(避免在信道上顺序传输时发生误识别)。为了提升效率,我们这里还要求所有字符编码的总长度最短(最优编码)
举个例子,现在要对字符集
{
A
,
B
,
C
,
D
,
E
,
F
,
G
}
\{A,B,C,D,E,F,G\}
{A,B,C,D,E,F,G} 设计编码,至少需要多少个二进制位?注意到这是给定了各个字符出现概率相等,它们都是等价的,显然表示任一字符至少要
log
2
8
=
3
\log_28=3
log28=3 个二进制位,这样总码长为
8
×
3
=
24
8\times 3 = 24
8×3=24 bit
考虑这个编码问题:对字符集
{
A
,
A
,
A
,
A
,
B
,
B
,
C
,
C
}
\{A,A,A,A,B,B,C,C\}
{A,A,A,A,B,B,C,C} 设计编码,至少需要多少个二进制位?注意到这是给定了各个字符出现概率不等,
p
(
A
)
=
1
2
,
p
(
B
)
=
p
(
C
)
=
1
4
p(A)=\frac{1}{2},p(B)=p(C) = \frac{1}{4}
p(A)=21,p(B)=p(C)=41,我们可以使用经典的哈夫曼编码规则,给概率高的字符分配短的编码,概率低的字符分配长的编码。设
N
A
,
N
B
,
N
C
N_A,N_B,N_C
NA,NB,NC 分别代表三种字符的出现次数,
N
N
N 代表总字符数,以
A
A
A 为例,表示
A
A
A 需要的二进制位数至少为
I
(
A
)
=
log
2
N
−
log
2
N
A
=
log
2
N
N
A
=
log
2
1
p
(
A
)
=
−
log
2
p
(
A
)
I(A) = \log_2N-\log_2N_A = \log_2{\frac{N}{N_A}} = \log_2\frac{1}{p(A)} = -\log_2p(A)
I(A)=log2N−log2NA=log2NAN=log2p(A)1=−log2p(A) 这里
log
2
N
−
log
2
N
A
\log_2N-\log_2N_A
log2N−log2NA 可以理解为:先假设
N
N
N 个字符互不相同,需要
log
2
N
\log_2N
log2N 位加以区分,而实际上
N
A
N_A
NA 个字符不需要区分,故减去
l
o
g
2
N
A
log_2N_A
log2NA。按照哈夫曼编码规则,编码长度(位数)和结果为
I
(
A
)
=
−
log
2
1
2
=
1
,
编码
0
I
(
B
)
=
−
log
2
1
4
=
2
,
编码
10
I
(
C
)
=
−
log
2
1
4
=
2
,
编码
11
\begin{aligned} &I(A) = -\log_2\frac{1}{2}=1,\space 编码 0 \\ &I(B) = -\log_2\frac{1}{4}=2,\space 编码 10 \\ &I(C) = -\log_2\frac{1}{4}=2,\space 编码 11 \end{aligned}
I(A)=−log221=1, 编码0I(B)=−log241=2, 编码10I(C)=−log241=2, 编码11 如此编码字符集,总码长为
N
A
×
1
+
N
B
×
2
+
N
C
×
2
=
12
N_A\times 1+N_B\times 2+N_C\times 2 = 12
NA×1+NB×2+NC×2=12 bit,比直接
8
×
log
2
8
=
24
8\times\log_28=24
8×log28=24 bit 要短很多
可见,字符最短编码长度和信息量有着相同的形式,于是信息量也可以理解为事件的最短编码长度。出现概率越高的事件,其信息量越低,编码长度也就越短
举个简单的例子:一天24小时,设当前时刻为
t
t
t,有以下事件
{
A
:
t
∈
[
0
,
12
)
,
B
:
t
∈
[
0
,
6
)
,
C
:
t
∈
[
6
,
12
)
,
D
:
t
∈
[
0
,
2
)
}
\{A:t\in[0,12),B:t\in[0,6),C:t\in[6,12),D:t\in [0,2)\}
{A:t∈[0,12),B:t∈[0,6),C:t∈[6,12),D:t∈[0,2)},可见
p
(
A
)
=
1
2
,
p
(
B
)
=
p
(
C
)
=
1
4
,
p
(
D
)
=
1
12
p(A) = \frac{1}{2},p(B) = p(C)=\frac{1}{4},p(D)=\frac{1}{12}
p(A)=21,p(B)=p(C)=41,p(D)=121,如果对它们编码,最短编码长度分别为
I
(
A
)
=
1
,
I
(
B
)
=
I
(
C
)
=
2
,
I
(
C
)
=
2
l
o
g
2
3
I(A)=1,I(B)=I(C)=2,I(C)=2log_23
I(A)=1,I(B)=I(C)=2,I(C)=2log23,时间判断越是精确,其包含的信息量越大,需要越多的编码来表示
更加直观的理解,不给任何工具,判断当前是白天还是黑夜,只要看天亮不亮就行;判断现在是上午还是下午,要综合考虑现在阳光亮度,气温等特征;判断现在具体是几点,需要的信息就更多了,比如使用日影法等测量方法。随着判断越来越精确,需要考虑的特征越来越多,信息量越来越大,如果给每个特征用一位进行编码,对应的编码就越来越长。从这个例子也可以看出信息对不确定度的削减作用
2. 信息熵
信息熵:信息量的期望,代表通过传递
X
X
X 所传递的信息量,是对
X
X
X 不确定性的度量
对于有限取值离散随机变量
X
X
X,给定概率分布
p
(
X
=
x
i
)
,
i
=
1
,
2
,
.
.
.
,
n
p(X=x_i),i=1,2,...,n
p(X=xi),i=1,2,...,n,随机变量
X
X
X 的信息熵为
H
(
X
)
=
H
(
p
)
=
−
∑
i
=
1
n
p
(
x
i
)
log
p
(
x
i
)
H(X) = H(p) = -\sum_{i=1}^n p(x_i)\log p(x_i)
H(X)=H(p)=−i=1∑np(xi)logp(xi)对于连续随机变量
X
X
X 及其概率密度函数
f
(
X
=
x
)
f(X=x)
f(X=x),
X
X
X 的信息熵为
H
(
X
)
=
H
(
f
)
=
−
∫
f
(
x
)
log
f
(
x
)
d
x
H(X) =H(f) = -\int f(x)\log f(x)dx
H(X)=H(f)=−∫f(x)logf(x)dx 说明:由于信息熵仅依赖于
X
X
X 的分布,而与
X
X
X 取值无关,所以离散、连续随机变量的信息熵通常分别记为
H
(
p
)
H(p)
H(p) 和
H
(
f
)
H(f)
H(f)。当式中的概率
p
,
f
p,f
p,f 由数据估计而得到时(比如极大似然估计),所得的信息熵称为 经验熵
信息熵的性质:
依定义,
n
n
n 个取值的离散随机变量满足
0
≤
H
(
p
)
≤
log
n
0\leq H(p)\leq \log n
0≤H(p)≤logn分布均匀程度相同时,类别越多,信息熵越大。
n
n
n 个取值的离散随机变量,在
X
X
X 服从均匀分布时信息熵最大为
log
n
\log n
logn类别个数相同时,越均匀,信息熵越大。例如随机变量
X
X
X 服从 0-1 分布,即
p
(
X
=
x
)
=
{
p
,
x
=
1
1
−
p
,
x
=
0
p(X=x) =\left\{ \begin{aligned} &p &,x=1\\ &1-p &,x=0\\ \end{aligned} \right.
p(X=x)={p1−p,x=1,x=0,其信息熵
H
(
X
)
H(X)
H(X) 随
p
p
p 取值变化曲线如下(这里选择单位为比特,最高点
log
2
2
=
1
\log_22 = 1
log22=1) 理解信息熵
信息熵是(随机变量)信息量的期望值”:从定义直接能看出来信息熵是(随机变量)最短编码长度的期望值:随机变量每一个取值
X
=
x
i
X=x_i
X=xi 看作一个符号,它有对应的信息量,也就有对应的最短编码长度
−
log
p
(
X
=
x
i
)
-\log p(X=x_i)
−logp(X=xi) ,再根据概率加权求和即为期望信息熵是对(随机变量)不确定性的度量:注意到随机变量
X
X
X 的任意取值
x
i
x_i
xi,都在信息熵中占据了一项
−
p
(
x
i
)
log
p
(
x
i
)
-p(x_i)\log p(x_i)
−p(xi)logp(xi),代表因事件
X
=
x
i
X=x_i
X=xi 发生后,
X
X
X 不确定性的减小程度的期望,而一旦事件
X
=
x
i
X=x_i
X=xi 发生,其不确定度就降为 0 了,因此
−
p
(
x
i
)
log
p
(
x
i
)
-p(x_i)\log p(x_i)
−p(xi)logp(xi) 也代表着
X
=
x
i
X=x_i
X=xi 的不确定度。从这个角度看,信息熵可以理解为随机实验出现各个结果(随机变量出现各个值)不确定性的期望值
3. 条件熵 & 信息增益
3.1 条件熵
条件熵:设有随机变量
(
X
,
Y
)
(X,Y)
(X,Y) 其联合分布为:
P
(
X
=
x
i
,
Y
=
y
j
)
=
p
(
x
i
,
y
j
)
,
i
=
1
,
2
,
.
.
.
,
n
;
j
=
1
,
2
,
.
.
.
,
m
P(X = x_i,Y=y_j) = p(x_i,y_j),\space\space\space i=1,2,...,n;\space\space\space j=1,2,...,m
P(X=xi,Y=yj)=p(xi,yj), i=1,2,...,n; j=1,2,...,m。随机变量
X
X
X 给定条件下的条件熵
H
(
Y
∣
X
)
H(Y|X)
H(Y∣X),定义为
X
X
X 给定条件下
Y
Y
Y 的条件概率分布的的熵对
X
X
X 的数学期望,即
H
(
Y
∣
X
)
=
∑
i
=
1
n
p
(
x
i
)
H
(
Y
∣
X
=
x
i
)
=
−
∑
i
=
1
n
p
(
x
i
)
∑
j
=
1
m
p
(
y
j
∣
x
i
)
l
o
g
p
(
y
j
∣
x
i
)
=
−
∑
i
=
1
n
∑
j
=
1
m
p
(
x
i
,
x
j
)
l
o
g
p
(
y
j
∣
x
i
)
\begin{aligned} H(Y|X) & = \sum_{i=1}^n p(x_i) H(Y|X=x_i) \\ & = -\sum_{i=1}^n p(x_i) \sum_{j=1}^m p(y_j|x_i)logp(y_j|x_i)\\ & = -\sum_{i=1}^n\sum_{j=1}^m p(x_i,x_j)logp(y_j|x_i) \end{aligned}
H(Y∣X)=i=1∑np(xi)H(Y∣X=xi)=−i=1∑np(xi)j=1∑mp(yj∣xi)logp(yj∣xi)=−i=1∑nj=1∑mp(xi,xj)logp(yj∣xi) 其中
p
(
x
i
)
=
P
(
X
+
x
i
)
p(x_i) = P(X+x_i)
p(xi)=P(X+xi) 是
X
X
X 的边缘分布。当式中的概率
p
p
p 由数据估计而得到时(比如极大似然估计),所得的信息熵称为 经验条件熵直观地看,条件熵就是按变量
X
X
X 的每个可能取值
x
i
x_i
xi 对样本进行分类,然后在每一个小类里面,都计算一个
Y
Y
Y 的信息熵,然后乘以此类对应的概率
p
(
x
i
)
p(x_i)
p(xi) 求和
3.2 信息增益
基于条件熵可以进一步定义信息增益的概念:训练数据集
D
D
D 的经验熵与给定特征
A
A
A 条件下
D
D
D 的经验条件熵
H
(
D
∣
A
)
H(D|A)
H(D∣A) 之差定义为特征
A
A
A 对训练数据集
D
D
D 的信息增益,即
g
(
D
,
A
)
=
H
(
D
)
−
H
(
D
∣
A
)
g(D,A) = H(D)-H(D|A)
g(D,A)=H(D)−H(D∣A) 直观地看,给出的条件提供了附加信息,由于
A
,
D
A,D
A,D 相关,显然在随机事件
A
A
A 的条件下,随机变量
D
D
D 的不确定度会减小,信息增益,就是量化了由于特征
A
A
A 而使得对数据集
D
D
D 分类的不确定性减小的程度
一般地,熵
H
(
Y
)
H(Y)
H(Y) 与条件熵
H
(
Y
∣
X
)
H(Y|X)
H(Y∣X) 之差
H
(
Y
)
−
H
(
Y
∣
X
)
H(Y) - H(Y|X)
H(Y)−H(Y∣X) 称为 互信息mutual information,它在数值计算上和信息增益往往是等价的。说 “互信息” 的时候,两个随机变量的地位是相同的;说 “信息增益” 的时候,是把一个变量看成减小另一个变量不确定度的手段
“互信息”或者“信息增益”经常作为决策树中选择特征的标准,两种称呼都很常见。
4. 交叉熵 & 相对熵(KL散度)
4.1 交叉熵
在第 2 节中,我们说明了可以从编码角度理解信息熵。给定一个字符集的概率分布,我们可以设计一种编码,使得表示该字符集组成的字符串平均需要的比特数最少。假设这个字符集是
X
X
X,对
x
i
∈
X
x_i\in X
xi∈X,其出现概率为
P
(
x
i
)
P(x_i)
P(xi),那么其最优编码平均需要的比特数等于这个字符集的信息熵
H
(
P
)
=
−
∑
i
=
1
n
P
(
x
i
)
log
P
(
x
i
)
H(P) = -\sum_{i=1}^n P(x_i)\log P(x_i)
H(P)=−i=1∑nP(xi)logP(xi) 在同样的字符集上,假设存在另一个概率分布
Q
(
X
)
Q(X)
Q(X)。如果**用概率分布
Q
(
X
)
Q(X)
Q(X) 的最优编码,即字符
X
=
x
i
X=x_i
X=xi 的编码长度等于
−
log
Q
(
x
i
)
-\log Q(x_i)
−logQ(xi),来为符合分布
P
(
X
)
P(X)
P(X) 的字符集编码,得到的最优编码长度期望值(信息熵)就称为 “交叉熵”,即
H
P
(
Q
)
=
−
∑
i
=
1
n
P
(
x
i
)
log
Q
(
x
i
)
H_P(Q) = -\sum_{i=1}^n P(x_i)\log Q(x_i)
HP(Q)=−i=1∑nP(xi)logQ(xi) 注意,由于没有对
P
P
P 分布使用对应的最优编码,此时表示这些字符会比理想情况多用一些比特数
交叉熵:用一个猜测的分布
Q
Q
Q 的编码去编码真实的分布
P
P
P,得到的最优编码长度期望值 / 用分布
Q
Q
Q 拟合分布
P
P
P,得到的信息熵
C
E
H
(
P
,
Q
)
=
−
∑
x
∈
X
P
(
x
)
l
o
g
Q
(
x
)
CEH(P,Q) = -\sum\limits_{x\in X}P(x)logQ(x)
CEH(P,Q)=−x∈X∑P(x)logQ(x)
交叉熵有一个重要的性质:最小化交叉熵等价于做最大似然估计,下面分有标签和无标签两类情况加以说明
无标签情况(这时模型表示样本值的分布,例如重复投一个骰子来估计其各个面出现的概率)
数据集
X
=
{
x
(
1
)
,
x
(
2
)
,
.
.
.
,
x
(
m
)
}
\pmb{X} = \{x^{(1)},x^{(2)},...,x^{(m)}\}
X={x(1),x(2),...,x(m)},其中任意样本
x
(
i
)
x^{(i)}
x(i) 是一个
p
p
p 维向量真实分布
p
d
a
t
a
(
x
)
p_{data}(x)
pdata(x),由它采样生成数据集经验分布
p
^
d
a
t
a
(
x
)
\hat{p}_{data}(x)
p^data(x),这是数据集上的统计结果,有
lim
m
→
∞
p
^
d
a
t
a
(
x
)
=
p
d
a
t
a
(
x
)
\lim_{m\to\infin}\hat{p}_{data}(x) = p_{data}(x)
limm→∞p^data(x)=pdata(x)模型分布
p
m
o
d
e
l
(
x
;
θ
)
p_{model}(x;\theta)
pmodel(x;θ),这是一族由参数
θ
\theta
θ 确定的在相同空间上的概率分布 使用最大似然估计法估计模型参数如下
θ
M
L
E
=
arg max
θ
∏
i
=
1
m
p
m
o
d
e
l
(
x
(
i
)
;
θ
)
=
arg max
θ
∑
i
=
1
m
log
p
m
o
d
e
l
(
x
(
i
)
;
θ
)
=
arg max
θ
1
m
∑
i
=
1
m
log
p
m
o
d
e
l
(
x
(
i
)
;
θ
)
=
arg max
θ
E
x
∼
p
^
d
a
t
a
log
p
m
o
d
e
l
(
x
;
θ
)
=
arg max
θ
∫
x
p
^
d
a
t
a
(
x
)
log
p
m
o
d
e
l
(
x
;
θ
)
d
x
=
arg min
θ
−
∫
x
p
^
d
a
t
a
(
x
)
log
p
m
o
d
e
l
(
x
;
θ
)
d
x
=
arg min
θ
C
E
H
(
p
^
d
a
t
a
,
p
m
o
d
e
l
)
\begin{aligned} \theta_{MLE} &= \argmax_{\theta}\prod_{i=1}^mp_{model}(x^{(i)};\theta)\\ &= \argmax_{\theta}\sum_{i=1}^m\log p_{model}(x^{(i)};\theta)\\ &= \argmax_{\theta}\frac{1}{m}\sum_{i=1}^m\log p_{model}(x^{(i)};\theta)\\ &= \argmax_{\theta}\mathbb{E}_{x\sim\hat{p}_{data}}\log p_{model}(x;\theta)\\ &= \argmax_{\theta}\int_x\hat{p}_{data}(x)\log p_{model}(x;\theta)dx\\ &= \argmin_{\theta}-\int_x\hat{p}_{data}(x)\log p_{model}(x;\theta)dx\\ &= \argmin_{\theta} CEH(\hat{p}_{data},{p}_{model}) \end{aligned}
θMLE=θargmaxi=1∏mpmodel(x(i);θ)=θargmaxi=1∑mlogpmodel(x(i);θ)=θargmaxm1i=1∑mlogpmodel(x(i);θ)=θargmaxEx∼p^datalogpmodel(x;θ)=θargmax∫xp^data(x)logpmodel(x;θ)dx=θargmin−∫xp^data(x)logpmodel(x;θ)dx=θargminCEH(p^data,pmodel) 当样本数量
lim
m
→
∞
\lim_{m\to\infin}
limm→∞ 时,有
θ
M
L
E
=
arg min
θ
C
E
H
(
p
d
a
t
a
,
p
m
o
d
e
l
)
\theta_{MLE} = \argmin_{\theta} CEH(p_{data},{p}_{model})
θMLE=argminθCEH(pdata,pmodel)
有标签情况(这时模型表示某样本值下标签的条件分布,一般的机器学习任务,无论分类还是回归都是这个形式)
数据集
(
X
,
Y
)
=
{
(
x
(
1
)
,
y
(
1
)
)
,
(
x
(
2
)
,
y
(
2
)
)
,
.
.
.
,
(
x
(
m
)
,
y
(
m
)
)
}
(\pmb{X,Y}) = \{(x^{(1)},y^{(1)}),(x^{(2)},y^{(2)}),...,(x^{(m)},y^{(m)})\}
(X,Y)={(x(1),y(1)),(x(2),y(2)),...,(x(m),y(m))}真实分布
p
d
a
t
a
(
x
,
y
)
p_{data}(x,y)
pdata(x,y),由它采样生成数据集,
p
d
a
t
a
(
x
)
,
p
d
a
t
a
(
y
)
p_{data}(x),p_{data}(y)
pdata(x),pdata(y) 是两个边缘分布经验分布
p
^
d
a
t
a
(
x
,
y
)
\hat{p}_{data}(x,y)
p^data(x,y),这是数据集上的统计结果,有
lim
m
→
∞
p
^
d
a
t
a
(
x
,
y
)
=
p
d
a
t
a
(
x
,
y
)
\lim_{m\to\infin}\hat{p}_{data}(x,y) = p_{data}(x,y)
limm→∞p^data(x,y)=pdata(x,y),同样有边缘分布
p
^
d
a
t
a
(
x
)
,
p
^
d
a
t
a
(
y
)
\hat{p}_{data}(x),\hat{p}_{data}(y)
p^data(x),p^data(y)模型分布
p
m
o
d
e
l
(
y
∣
x
;
θ
)
p_{model}(y|x;\theta)
pmodel(y∣x;θ),这是一族由参数
θ
\theta
θ 确定的在相同空间上的概率分布 使用最大似然估计法估计模型参数如下
θ
M
L
E
=
arg max
θ
∏
i
=
1
m
p
m
o
d
e
l
(
y
(
i
)
∣
x
(
i
)
;
θ
)
=
arg max
θ
∑
i
=
1
m
log
p
m
o
d
e
l
(
y
(
i
)
∣
x
(
i
)
;
θ
)
=
arg max
θ
1
m
∑
i
=
1
m
log
p
m
o
d
e
l
(
y
(
i
)
∣
x
(
i
)
;
θ
)
=
arg max
θ
E
x
,
y
∼
p
^
d
a
t
a
log
p
m
o
d
e
l
(
y
∣
x
;
θ
)
=
arg max
θ
∫
x
,
y
p
^
d
a
t
a
(
x
,
y
)
log
p
m
o
d
e
l
(
y
∣
x
;
θ
)
d
x
d
y
=
arg max
θ
∫
x
,
y
p
^
d
a
t
a
(
y
∣
x
)
p
^
d
a
t
a
(
x
)
log
p
m
o
d
e
l
(
y
∣
x
;
θ
)
d
x
d
y
=
arg max
θ
∫
x
p
^
d
a
t
a
(
x
)
[
∫
y
p
^
d
a
t
a
(
y
∣
x
)
log
p
m
o
d
e
l
(
y
∣
x
;
θ
)
d
y
]
d
x
=
arg max
θ
E
x
∼
p
^
d
a
t
a
[
∫
y
p
^
d
a
t
a
(
y
∣
x
)
log
p
m
o
d
e
l
(
y
∣
x
;
θ
)
d
y
]
=
arg min
θ
E
x
∼
p
^
d
a
t
a
[
−
∫
y
p
^
d
a
t
a
(
y
∣
x
)
log
p
m
o
d
e
l
(
y
∣
x
;
θ
)
d
y
]
=
arg min
θ
E
x
∼
p
^
d
a
t
a
[
C
E
H
(
p
^
d
a
t
a
,
p
m
o
d
e
l
)
]
\begin{aligned} \theta_{MLE} &= \argmax_{\theta}\prod_{i=1}^mp_{model}(y^{(i)}|x^{(i)};\theta)\\ &= \argmax_{\theta}\sum_{i=1}^m\log p_{model}(y^{(i)}|x^{(i)};\theta)\\ &= \argmax_{\theta}\frac{1}{m}\sum_{i=1}^m\log p_{model}(y^{(i)}|x^{(i)};\theta)\\ &= \argmax_{\theta}\mathbb{E}_{x,y\sim\hat{p}_{data}}\log p_{model}(y|x;\theta)\\ &= \argmax_{\theta}\int_{x,y}\hat{p}_{data}(x,y)\log p_{model}(y|x;\theta)dxdy\\ &= \argmax_{\theta}\int_{x,y}\hat{p}_{data}(y|x)\hat{p}_{data}(x)\log p_{model}(y|x;\theta)dxdy\\ &= \argmax_{\theta}\int_x\hat{p}_{data}(x)\Big[\int_y\hat{p}_{data}(y|x)\log p_{model}(y|x;\theta)dy\Big]dx\\ &= \argmax_{\theta}\mathbb{E}_{x\sim\hat{p}_{data}}\Big[\int_y\hat{p}_{data}(y|x)\log p_{model}(y|x;\theta)dy\Big]\\ &= \argmin_{\theta}\mathbb{E}_{x\sim\hat{p}_{data}}\Big[-\int_y\hat{p}_{data}(y|x)\log p_{model}(y|x;\theta)dy\Big]\\ &= \argmin_{\theta} \mathbb{E}_{x\sim\hat{p}_{data}}[CEH(\hat{p}_{data},{p}_{model})] \end{aligned}
θMLE=θargmaxi=1∏mpmodel(y(i)∣x(i);θ)=θargmaxi=1∑mlogpmodel(y(i)∣x(i);θ)=θargmaxm1i=1∑mlogpmodel(y(i)∣x(i);θ)=θargmaxEx,y∼p^datalogpmodel(y∣x;θ)=θargmax∫x,yp^data(x,y)logpmodel(y∣x;θ)dxdy=θargmax∫x,yp^data(y∣x)p^data(x)logpmodel(y∣x;θ)dxdy=θargmax∫xp^data(x)[∫yp^data(y∣x)logpmodel(y∣x;θ)dy]dx=θargmaxEx∼p^data[∫yp^data(y∣x)logpmodel(y∣x;θ)dy]=θargminEx∼p^data[−∫yp^data(y∣x)logpmodel(y∣x;θ)dy]=θargminEx∼p^data[CEH(p^data,pmodel)] 当样本数量
lim
m
→
∞
\lim_{m\to\infin}
limm→∞ 时,有
θ
M
L
E
=
arg min
θ
E
x
∼
p
d
a
t
a
[
C
E
H
(
p
d
a
t
a
,
p
m
o
d
e
l
)
]
\theta_{MLE} =\argmin_{\theta} \mathbb{E}_{x\sim p_{data}}[CEH(p_{data},{p}_{model})]
θMLE=argminθEx∼pdata[CEH(pdata,pmodel)]
由上面的分析我们注意到,最大似然估计往往将损失建模为负对数似然,这样的损失一定等价于定义在训练集上的经验分布和定义在模型上的概率分布间的交叉熵
由最大似然法导出的交叉熵,在模型定义不同时往往可以变形成不同的损失,比如在线性回归中就变形为 MSE 损失。这里又有一个知识点:分类问题常常使用交叉熵而非 MSE 作为损失函数,这是因为
优化 MSE 等价于对高斯分布模型做极大似然估计,简单回归中做服从高斯分布的假设是比较合理的优化交叉熵损失等价于对多项式分布模型做极大似然估计,多分类问题通常服从多项式分布 具体可以参考:分类问题为什么用交叉熵损失不用 MSE 损失
4.2 相对熵(KL散度)
第 5 节中的交叉熵可以看作对分布
P
P
P 的非最优编码的信息熵,使用这种编码会产生信息冗余(多用一些比特数),而KL散度就是用来衡量这种非最优编码导致的冗余的度量,可以用来衡量两个分布的距离KL散度(相对熵):用来描述两个概率分布
P
P
P 和
Q
Q
Q 的差异的一种非对称性度量方法。
离散随机变量
D
K
L
(
P
∣
∣
Q
)
=
C
E
H
(
P
,
Q
)
−
H
(
P
)
=
−
∑
i
∈
X
P
(
i
)
[
l
o
g
Q
(
i
)
−
l
o
g
P
(
i
)
]
=
∑
i
∈
X
P
(
i
)
[
l
o
g
P
(
i
)
Q
(
i
)
]
\begin{aligned} D_{KL}(P || Q) &= CEH(P,Q) - H(P) \\ &= -\sum\limits_{i\in X}P(i)[logQ(i)-logP(i)] \\ &= \sum\limits_{i\in X}P(i)[log\frac{P(i)}{Q(i)}] \end{aligned}
DKL(P∣∣Q)=CEH(P,Q)−H(P)=−i∈X∑P(i)[logQ(i)−logP(i)]=i∈X∑P(i)[logQ(i)P(i)]连续随机变量
D
K
L
(
P
∣
∣
Q
)
=
C
E
H
(
P
,
Q
)
−
H
(
P
)
=
−
∫
x
P
(
x
)
[
l
o
g
Q
(
x
)
−
l
o
g
P
(
x
)
]
=
∫
x
P
(
x
)
[
l
o
g
P
(
x
)
Q
(
x
)
]
d
x
\begin{aligned} D_{KL}(P || Q) &= CEH(P,Q) - H(P) \\ &= -\int_x P(x)[logQ(x)-logP(x)] \\ &=\int_x P(x)[log\frac{P(x)}{Q(x)}]dx \end{aligned}
DKL(P∣∣Q)=CEH(P,Q)−H(P)=−∫xP(x)[logQ(x)−logP(x)]=∫xP(x)[logQ(x)P(x)]dx 理解KL散度
D
K
L
(
P
∣
∣
Q
)
D_{KL}(P||Q)
DKL(P∣∣Q)
用概率分布
Q
Q
Q 的最优编码,为符合分布
P
P
P 的字符编码导致的冗余比特数。也就是说使用了分布
P
P
P 的次优的编码来表示它,会出现冗余信息使用拟合分布
Q
Q
Q 拟合真实分布
P
P
P 时产生的信息损失(其实就是冗余信息量)。信息论中,相对熵等价于两个概率分布的信息熵的差值,这里
P
P
P 为真实分布,
Q
Q
Q 为拟合分布 KL 散度的性质
非对称性:
D
K
L
(
P
∣
∣
Q
)
≠
D
K
L
(
Q
∣
∣
P
)
D_{KL}(P||Q) \neq D_{KL}(Q||P)
DKL(P∣∣Q)=DKL(Q∣∣P)非负性:
D
K
L
(
P
∣
∣
Q
)
≥
0
D_{KL}(P||Q) \geq 0
DKL(P∣∣Q)≥0,当且仅当
P
=
Q
P=Q
P=Q 时等号成立,可以用 Jensen 不等式证明
D
K
L
(
P
∣
∣
Q
)
=
∑
x
∈
X
P
(
x
)
[
l
o
g
P
(
x
)
Q
(
x
)
]
=
E
P
[
l
o
g
P
(
x
)
Q
(
x
)
]
=
−
E
P
[
l
o
g
Q
(
x
)
P
(
x
)
]
≥
−
l
o
g
E
P
[
Q
(
x
)
P
(
x
)
]
=
−
l
o
g
∑
x
∈
X
Q
(
x
)
=
−
l
o
g
1
=
0
\begin{aligned} D_{KL}(P||Q) &= \sum_{x\in X} P(x)\big[log\frac{P(x)}{Q(x)}\big] \\ &= \mathbb{E}_{P}\big[log\frac{P(x)}{Q(x)}\big] \\ &= -\mathbb{E}_{P}\big[log\frac{Q(x)}{P(x)}\big] \\ &\geq -log \mathbb{E}_{P}\big[\frac{Q(x)}{P(x)}\big] \\ &=-log\sum_{x\in X} Q(x) \\ &=-log 1 = 0 \end{aligned}
DKL(P∣∣Q)=x∈X∑P(x)[logQ(x)P(x)]=EP[logQ(x)P(x)]=−EP[logP(x)Q(x)]≥−logEP[P(x)Q(x)]=−logx∈X∑Q(x)=−log1=0
4.3 交叉熵和相对熵的关系
由KL散度(相对熵)定义
D
K
L
(
P
∣
∣
Q
)
=
C
H
E
(
P
,
Q
)
−
H
(
P
)
D_{KL}(P || Q) = CHE(P,Q) - H(P)
DKL(P∣∣Q)=CHE(P,Q)−H(P) 即可看出:条件熵和相对熵间差了一个分布
P
P
P 的信息熵,当我们考虑用分布
Q
Q
Q 拟合真实分布
P
P
P 时,若
H
(
P
)
H(P)
H(P) 是一个常数,则拟合性能完全由
C
E
H
(
P
,
Q
)
CEH(P,Q)
CEH(P,Q) 确定,也就是说目标分布不变时,交叉熵和相对熵(KL散度)在行为上是等价的,都反应了
P
,
Q
P,Q
P,Q 分布的相似程度,最小化交叉熵
C
H
E
(
P
,
Q
)
CHE(P,Q)
CHE(P,Q) 等价于最小化KL散度
D
K
L
(
P
∣
∣
Q
)
D_{KL}(P || Q)
DKL(P∣∣Q)
机器学习中,有时我们选择 KL 散度来评估 predict 和 label 之间的差别,当目标分布不变时可以使用交叉熵
C
H
E
(
l
a
b
e
l
,
p
r
e
d
i
c
t
)
CHE(label ,predict )
CHE(label,predict) 代替
D
K
L
D_{KL}
DKL 作为损失函数
4.4 信息投影和矩投影
从数据集学习的一种常见方法是考虑将该数据集 “投影” 到模型空间中。信息论强调两种投影:信息投影(I-projection)和矩投影(M-projection)
使用KL散度,I-projection为
P
∗
=
a
r
g
min
P
D
K
L
(
P
∣
∣
Q
)
P^* = arg\min\limits_{P}D_{KL}(P||Q)
P∗=argPminDKL(P∣∣Q)使用KL散度,M-projection为
P
∗
=
a
r
g
min
P
D
K
L
(
Q
∣
∣
P
)
P^* = arg\min\limits_{P}D_{KL}(Q||P)
P∗=argPminDKL(Q∣∣P) 由于KL散度不是对称的,当给定的分布是多模态时,这两个投影会产生不同的解,如图所示。m投影会在在几个模式上进行平均,i投影则集中在单个模式上。在训练集上最大似然就可以相对容易地执行m投影,而执行I投影比较复杂
5. JS散度
KL散度的不对称性使得在训练过程中可能存在一些问题,为了解决这个问题,在KL散度基础上引入JS散度
D
J
S
(
P
∣
∣
Q
)
=
1
2
D
K
L
(
P
∣
∣
P
+
Q
2
)
+
1
2
D
K
L
(
Q
∣
∣
P
+
Q
2
)
D_{JS}(P||Q) = \frac{1}{2}D_{KL}(P||\frac{P+Q}{2}) + \frac{1}{2}D_{KL}(Q||\frac{P+Q}{2})
DJS(P∣∣Q)=21DKL(P∣∣2P+Q)+21DKL(Q∣∣2P+Q)JS 散度的性质
对称性:
D
J
S
(
P
∣
∣
Q
)
=
D
J
S
(
Q
∣
∣
P
)
D_{JS}(P||Q) = D_{JS}(Q||P)
DJS(P∣∣Q)=DJS(Q∣∣P)上下界:
0
≤
D
J
S
(
P
∣
∣
Q
)
≤
1
0\leq D_{JS}(P||Q) \leq 1
0≤DJS(P∣∣Q)≤1,当
P
=
Q
P=Q
P=Q 时
D
J
S
(
P
∣
∣
Q
)
=
0
D_{JS}(P||Q) =0
DJS(P∣∣Q)=0,参考此处当
P
P
P 和
Q
Q
Q 完全不重合时,
D
J
S
(
P
∣
∣
Q
)
=
log
2
D_{JS}(P||Q) = \log 2
DJS(P∣∣Q)=log2 是一个常数,参考此处
D
J
S
(
P
∣
∣
Q
)
=
H
(
P
+
Q
2
)
−
H
(
P
)
+
H
(
Q
)
2
D_{JS}(P||Q) = H(\frac{P+Q}{2})-\frac{H(P)+H(Q)}{2}
DJS(P∣∣Q)=H(2P+Q)−2H(P)+H(Q) ,参考此处 KL散度、JS 散度的一个重要问题是:当
P
,
Q
P,Q
P,Q 完全不重合时,
D
J
S
(
P
∣
∣
Q
)
=
log
2
D_{JS}(P||Q)=\log 2
DJS(P∣∣Q)=log2 梯度消失,
D
K
L
(
P
∣
∣
Q
)
=
∞
D_{KL}(P||Q)=\infin
DKL(P∣∣Q)=∞ 无意义,因此有了一个重要推广:Wasserstein 距离,这个可以参考 WGAN 的论文