熵是衡量不确定性的度量,最大熵原理是统计学习的常用原则。最大熵原理引用到分类模型即可得到最大熵模型。最大熵原理,符合观察(条件)的所有模型中,熵最大的模型为最好的模型。直观的说就是概率模型要符合已有事实,也就是约束条件。而对于不确定的部分,认为都是等可能的。这里利用熵最大来表示等可能性。
假设分类模型是一个条件概率分布
P
(
Y
∣
X
)
P(Y|X)
P(Y∣X),最大熵模型最大化的是条件熵:
H
(
Y
∣
X
)
=
∑
x
P
(
x
)
H
(
Y
∣
x
)
=
−
∑
x
P
(
x
)
∑
y
P
(
y
∣
x
)
l
o
g
(
P
(
y
∣
x
)
)
H(Y|X)=\sum\limits_xP(x)H(Y|x)=-\sum\limits_xP(x)\sum\limits_yP(y|x)log(P(y|x))
H(Y∣X)=x∑P(x)H(Y∣x)=−x∑P(x)y∑P(y∣x)log(P(y∣x))
H
(
Y
∣
X
)
=
−
∑
x
,
y
P
‾
(
x
)
P
(
y
∣
x
)
l
o
g
(
P
(
y
∣
x
)
)
H(Y|X)=-\sum\limits_{x,y} \overline P(x)P(y|x)log(P(y|x))
H(Y∣X)=−x,y∑P(x)P(y∣x)log(P(y∣x))
约束条件:
∑
x
,
y
P
‾
(
x
,
y
)
f
i
(
x
,
y
)
=
∑
x
,
y
P
(
y
∣
x
)
P
‾
(
x
)
f
i
(
x
,
y
)
,
i
=
1
,
.
.
.
,
n
\sum\limits_{x,y} \overline{P}(x,y)f_i(x,y)=\sum\limits_{x,y} P(y|x)\overline{P}(x)f_i(x,y), i=1,...,n
x,y∑P(x,y)fi(x,y)=x,y∑P(y∣x)P(x)fi(x,y),i=1,...,n
∑
y
P
(
y
∣
x
)
=
1
\sum\limits_y P(y|x)=1
y∑P(y∣x)=1
由带约束的最大条件熵原则,原本通过拉格朗日乘子法以及对偶性求解,但是中间过程可以导出最大熵模型的对数线性模型模式。又因为对偶函数极大化等价于最大熵模型的极大似然估计,所以利用最大似然估计原则对导出的对数线性模型求解。
最大熵分类模型关键点:
- P ( Y ∣ X ) P(Y|X) P(Y∣X) 中的X是一个样本,含有多个特征 [ x 1 , . . . x d ] [x_1,...x_d] [x1,...xd],所以有多个特征函数 f ( x i , y ) f(x_i,y) f(xi,y)
-
X
X
X可以接受不同维数的样本。预测时,所有维度与
Y
Y
Y形成的数据对被送往特征函数集匹配,匹配上时取出其对应权重。如果用词袋模型对文本建模,则每个样本维度是一样的。实际上任意维数的样本对
(
X
,
Y
)
(X,Y)
(X,Y)都可以通过特征函数集
{
f
i
(
x
,
y
)
}
i
=
1
d
\{f_i(x,y)\}_{i=1}^{d}
{fi(x,y)}i=1d被映射成一个
d
d
d维向量,然后与
d
d
d维的权重
w
w
w相乘。如下式:
P ( y ∣ x ) = 1 Z w ( x ) e x p ( ∑ i = 1 d w i f i ( x , y ) ) P(y|x)=\frac{1}{Z_w(x)}exp(\sum\limits_{i=1}^dw_if_i(x,y)) P(y∣x)=Zw(x)1exp(i=1∑dwifi(x,y))
Z w ( x ) = ∑ y e x p ( ∑ i = 1 d w i f i ( x , y ) ) Z_w(x)=\sum\limits_yexp(\sum\limits_{i=1}^dw_if_i(x,y)) Zw(x)=y∑exp(i=1∑dwifi(x,y))
因此与逻辑回归非常类似。 - 注意最大熵模型和逻辑回归,条件随机场的区别与联系。
https://blog.csdn.net/wkebj/article/details/77965714
http://yjliu.net/blog/2012/07/22/easy-implementation-on-maxent.html
https://blog.csdn.net/littlely_ll/article/details/79082776
https://zhuanlan.zhihu.com/p/51638729
https://zhuanlan.zhihu.com/p/29978153