熵
熵在概率论中是很重要的概念。表示随机变量不确定性的度量。设随机变量
X
X
X其概率分布为
P
(
X
=
x
i
)
=
p
i
,
i
=
1
,
2...
n
P(X=x_i)=p_i,i=1,2...n
P(X=xi)=pi,i=1,2...n
则
X
X
X的熵可以表示为
H
(
p
)
=
−
∑
i
=
1
n
p
i
l
o
g
(
p
i
)
H(p)=-\sum_{i=1}^{n}p_ilog(p_i)
H(p)=−i=1∑npilog(pi)
这里由于
X
X
X的熵与其取值没有关系,所以直接表示为
H
(
p
)
H(p)
H(p).
对于一个随机变量来说,其随机性越大,那么熵就越大。那么最极致的情况是什么呢?一个随机变量每一个取值对应一个概率,某个值概率越大,那么随机变量就越可能取这个值,那么其确定性也就越大。当某个值为1时,随机变量就是确定的了。因此可以看出当每个值的概率相等时,随机变量的不确定性最大,也就是
p
=
1
/
n
p=1/n
p=1/n。此时熵为
l
o
g
(
n
)
log(n)
log(n)
熵越大,随机性越大,那么可知熵满足:
0
≤
H
(
p
)
≤
l
o
g
(
n
)
0\leq H(p) \leq log(n)
0≤H(p)≤log(n)
条件熵
设随机变量
(
X
,
Y
)
(X,Y)
(X,Y),其联合概率分布为:
P
(
X
=
x
i
,
Y
=
y
j
)
=
p
i
,
j
,
i
=
1..
n
,
j
=
1..
m
P(X=x_i,Y=y_j)=p_{i,j} ,i=1..n,j=1..m
P(X=xi,Y=yj)=pi,j,i=1..n,j=1..m
条件熵
H
(
Y
∣
X
)
H(Y|X)
H(Y∣X)表示在已知随机变量
X
X
X的条件下随机变量Y的不确定性。定义为
X
X
X给定条件下
Y
Y
Y的条件概率的熵对
X
X
X的数学期望。
H
(
Y
∣
X
)
=
∑
i
n
p
i
H
(
Y
∣
X
=
x
i
)
H(Y|X)=\sum^n_i p_iH(Y|X=x_i)
H(Y∣X)=i∑npiH(Y∣X=xi)
其中
p
i
=
P
(
X
=
x
i
)
p_i=P(X=x_i)
pi=P(X=xi)
H
(
Y
∣
X
=
x
i
)
=
∑
j
=
1
m
p
(
Y
=
y
j
∣
x
i
)
l
o
g
(
p
(
Y
=
y
j
∣
x
i
)
)
H(Y|X=x_i)=\sum_{j=1}^m p(Y=y_j|x_i)log( p(Y=y_j|x_i))
H(Y∣X=xi)=j=1∑mp(Y=yj∣xi)log(p(Y=yj∣xi)) 由条件概率的性质
p
(
x
)
p
(
y
∣
x
)
=
p
(
x
,
y
)
p(x)p(y|x)=p(x,y)
p(x)p(y∣x)=p(x,y)所以有
H
(
Y
∣
X
)
=
∑
i
n
∑
j
m
p
(
x
i
)
p
(
y
j
∣
x
i
)
l
o
g
(
p
(
y
j
∣
x
i
)
)
=
∑
i
n
∑
j
m
p
(
x
i
,
y
j
)
l
o
g
(
p
(
y
j
∣
x
i
)
H(Y|X)=\sum^n_i\sum^m_j p(x_i) p(y_j|x_i)log(p(y_j|x_i))=\sum^n_i\sum^m_jp(x_i,y_j)log(p(y_j|x_i)
H(Y∣X)=i∑nj∑mp(xi)p(yj∣xi)log(p(yj∣xi))=i∑nj∑mp(xi,yj)log(p(yj∣xi),这个式子在下面最大熵模型中会用到。
最大熵模型
最大熵模型是一种求解概率模型的方法
最大熵模型要说的一件什么事呢。我们想要求解的概率模型在满足已知确定约束的条件下,对于未知情况以相等概率处之,也就是对于未知情况满足最大熵。例如一个不均匀的骰子,我们已知出现3点的概率为1/3,对于其他点数我们并不知道,那么最大熵模型就会认为其他点数出现的概率都是2/15(共享2/3)。这样概率分布具有最大的熵。
下面给出最大熵模型的定义我们所求的目标是一个分类模型,即一个条件概率分布
P
(
Y
∣
X
)
P(Y|X)
P(Y∣X),给定一个输入
X
X
X输出其所属类别
Y
Y
Y。给定一个训练数据集,我们称之为经验:
T
=
{
(
x
1
,
y
1
)
,
(
x
2
,
y
2
)
.
.
.
(
x
N
,
y
N
)
}
T=\{(x_1,y_1),(x_2,y_2)...(x_N,y_N)\}
T={(x1,y1),(x2,y2)...(xN,yN)}
将基于此经验之上的联合分布
P
(
X
,
Y
)
P(X,Y)
P(X,Y)的经验分布和边缘分布
P
(
X
)
P(X)
P(X)的经验分布分别表示为
P
~
(
X
,
Y
)
\tilde{P}(X,Y)
P~(X,Y),
P
~
(
X
)
\tilde{P}(X)
P~(X),这两个都是可以基于已知经验算出来的。比如:
P
~
(
X
=
x
,
Y
=
y
)
=
X
=
x
且
Y
=
y
经
验
的
个
数
N
\tilde{P}(X=x,Y=y)=\frac{X=x且Y=y经验的个数}{N}
P~(X=x,Y=y)=NX=x且Y=y经验的个数
P
~
(
X
=
x
)
=
X
=
x
经
验
的
个
数
N
\tilde{P}(X=x)=\frac{X=x经验的个数}{N}
P~(X=x)=NX=x经验的个数
在实际中,由于数据特征很大,而我们有要求模型有很好的泛化性,即我们希望在数据缺失的区域模型也可以达到很好的效果,因此在最大熵模型中对数据空间进行的压缩,使用特征函数来对数据进行转换:
f
(
x
,
y
)
=
{
1
,
x
与
y
满
足
某
一
事
实
0
,
否
则
f(x,y)=\left\{\begin{matrix} 1,x与y满足某一事实 \\ 0,否则 \end{matrix}\right.
f(x,y)={1,x与y满足某一事实0,否则
这个特征函数描述了输入x,输出y之间的某一个事实,也可以自己定义特征函数,这样就每一对原始数据就可以转化为有限空间中的数据,把问题简化了。
特征函数
f
(
x
,
y
)
f(x,y)
f(x,y)关于经验分布
P
~
(
X
,
Y
)
\tilde{P}(X,Y)
P~(X,Y)的期望可以用
E
p
~
(
f
)
=
∑
x
,
y
P
~
(
x
,
y
)
f
(
x
,
y
)
E_{\tilde{p}}(f)=\sum_{x,y}\tilde{P}(x,y)f(x,y)
Ep~(f)=x,y∑P~(x,y)f(x,y)
相对应的特征函数
f
(
x
,
y
)
f(x,y)
f(x,y)关于模型分布
P
(
Y
∣
X
)
P(Y|X)
P(Y∣X)的期望为:
E
p
(
f
)
=
∑
x
,
y
P
~
(
x
)
P
(
y
∣
x
)
f
(
x
,
y
)
E_{p}(f)=\sum_{x,y}\tilde{P}(x)P(y|x)f(x,y)
Ep(f)=x,y∑P~(x)P(y∣x)f(x,y)
此式中,由条件概率性质
P
~
(
x
)
P
~
(
y
∣
x
)
=
P
~
(
x
,
y
)
\tilde{P}(x)\tilde P(y|x)=\tilde{P}(x,y)
P~(x)P~(y∣x)=P~(x,y),这里由于我们要求的是条件概率模型
P
(
Y
∣
X
)
P(Y|X)
P(Y∣X),所以引入了
P
~
(
x
)
P
(
y
∣
x
)
\tilde{P}(x)P(y|x)
P~(x)P(y∣x),我们希望从经验所求的模型分布
P
(
Y
∣
X
)
P(Y|X)
P(Y∣X)使得:
E
p
(
f
)
=
E
p
~
(
f
)
(
1
)
E_{p}(f)=E_{\tilde{p}}(f) \qquad(1)
Ep(f)=Ep~(f)(1)即
∑
x
,
y
P
~
(
x
)
P
(
y
∣
x
)
f
(
x
,
y
)
=
∑
x
,
y
P
~
(
x
,
y
)
f
(
x
,
y
)
(
2
)
\sum_{x,y}\tilde{P}(x)P(y|x)f(x,y)=\sum_{x,y}\tilde{P}(x,y)f(x,y) \qquad(2)
x,y∑P~(x)P(y∣x)f(x,y)=x,y∑P~(x,y)f(x,y)(2)
上面(1)可以作为模型学习的约束条件。因此最大熵模型可以定义为如下形式:
假设满足所有约束条件的概率分布集合为
C
=
{
P
∣
E
p
(
f
i
)
=
E
p
~
(
f
i
)
,
i
=
1
,
2
,
3...
n
}
C=\{P|E_{p}(f_i)=E_{\tilde{p}}(f_i),i=1,2,3...n\}
C={P∣Ep(fi)=Ep~(fi),i=1,2,3...n}定义在条件概率分布
P
(
Y
∣
X
)
P(Y|X)
P(Y∣X)上的条件熵(见上面条件熵)为
H
(
p
)
=
−
∑
x
,
y
P
~
(
x
)
P
(
y
∣
x
)
l
o
g
(
P
(
y
∣
x
)
)
H(p)=-\sum_{x,y}\tilde{P}(x)P(y|x)log(P(y|x))
H(p)=−x,y∑P~(x)P(y∣x)log(P(y∣x))则模型集合C中条件熵
H
(
p
)
H(p)
H(p)最大的模型称 最大熵模型 式子中对数为自然对数。
最大熵模型也可以从KL散度的角度来解释。
最大熵模型的求解可以使用梯度下降(SGD)求解,也可以使用
改进的迭代尺度(improved iterative scaling, IIS)求解。见下一篇
参考书1:概率论与数理统计 浙江大学 第四版
参考书2:统计学习方法 李航
参考书3:强化学习精要:核心算法与TensorFlow实现