最大熵是概率模型学习的一个准则,将其推广到分类问题得到最大熵模型(maximum entropy model)。 逻辑回归和最大熵模型都属于对数线性回归。
最大熵原理
最大熵原理认为,学习概率模型时,在所有可能的概率模型(分布)中,熵最大的模型是最好的模型。
假设离散随机变量
X
X
X的概率分布是
P
(
X
)
P(X)
P(X),则其熵是
H
(
P
)
=
−
∑
x
P
(
x
)
log
P
(
x
)
H ( P ) = - \sum _ { x } P ( x ) \log P ( x )
H(P)=−x∑P(x)logP(x)
熵满足下列不等式:
0
⩽
H
(
P
)
⩽
log
∣
X
∣
0 \leqslant H ( P ) \leqslant \log | X |
0⩽H(P)⩽log∣X∣
式中,
∣
X
∣
|X|
∣X∣是
X
X
X的取值个数,当
X
X
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
P
~
(
X
=
x
)
=
ν
(
X
=
x
)
N
\begin{array} { l } \tilde { P } ( X = x , Y = y ) = \frac { \nu ( X = x , Y = y ) } { N } \\ \tilde { P } ( X = x ) = \frac { \nu ( X = x ) } { N } \end{array}
P~(X=x,Y=y)=Nν(X=x,Y=y)P~(X=x)=Nν(X=x)
用特征函数(feature function)
f
(
x
,
y
)
f(x,y)
f(x,y)来描述输入
x
x
x和输出
y
y
y之间的某一个事实,其定义是:
f
(
x
,
y
)
=
{
1
,
x
与
y
满足某一事实
0
,
否则
f ( x , y ) = \left\{ \begin{array} { l l } 1 , & x \text { 与 } y \text { 满足某一事实 } \\ 0 , & \text { 否则 } \end{array} \right.
f(x,y)={1,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,yP~(x,y)f(x,y)
特征函数
f
(
x
,
y
)
f(x,y)
f(x,y)关于模型
P
(
Y
∣
X
)
P ( Y \mid X )
P(Y∣X)与经验分布
P
~
(
X
)
\tilde { P } ( X )
P~(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 \mid x ) f ( x , y )
EP(f)=∑x,yP~(x)P(y∣x)f(x,y)
那么我们就可以假设这两个期望值相等
E
P
(
f
)
=
E
P
~
(
f
)
E _ { P } ( f ) = E _ { \tilde { P } } ( f )
EP(f)=EP~(f),得到模型学习的约束条件。
条件概率分布 P ( Y ∣ X ) P(Y|X) P(Y∣X)熵的条件熵为 H ( P ) = − ∑ x , y P ~ ( x ) P ( y ∣ x ) log P ( y ∣ x ) H ( P ) = - \sum _ { x , y } \tilde { P } ( x ) P ( y \mid x ) \log P ( y \mid x ) H(P)=−x,y∑P~(x)P(y∣x)logP(y∣x)熵 H ( P ) H(P) H(P)最大的模型称为最大熵模型。式中的对数为自然对数。
最大熵模型的学习
min P ∈ C − H ( P ) = ∑ x , y P ~ ( x ) P ( y ∣ x ) log P ( y ∣ x ) s.t. E P ( f i ) − E P ~ ( f i ) = 0 , i = 1 , 2 , ⋯ , n ∑ y P ( y ∣ x ) = 1 \begin{array} { l l } \min _ { P \in \mathbf { C } } & - H ( P ) = \sum _ { x , y } \tilde { P } ( x ) P ( y \mid x ) \log P ( y \mid x ) \\ \text { s.t. } & E _ { P } \left( f _ { i } \right) - E _ { \tilde { P } } \left( f _ { i } \right) = 0 , \quad i = 1,2 , \cdots , n \\ & \sum _ { y } P ( y \mid x ) = 1 \end{array} minP∈C s.t. −H(P)=∑x,yP~(x)P(y∣x)logP(y∣x)EP(fi)−EP~(fi)=0,i=1,2,⋯,n∑yP(y∣x)=1