最大熵原理认为,学习概率模型时,在所有可能的概率模型(分布)中,熵最大的模型是最好的模型。通常用约束条件来确定概率模型的集合,所以,最大熵原理也可以表述为在满足约束条件的模型集合中选取熵最大的模型。
H(P)=−∑xP(x)logP(x)
0≤H(P)≤log|X| ,当 X 服从均匀分布时,熵最大。
假设满足所有约束条件的模型集合为
最大熵模型的学习过程就是求解最大熵模型的过程。
约束最优化问题:
maxP∈C H(P)=−∑x,yP~(x)P(y|x)logP(y|x)
s.t.
Ep(fi)=EP~(fi), i=1,2,⋯,n
∑yP(y|x)=1 $
最大熵模型:
Pω(y|x)=1Zω(x)exp(∑ni=1ωifi(x,y))
其中,
Zω=∑yexp(∑ni=1ωifi(x,y))
对偶函数的极大化等价于最大熵模型的极大似然估计。
常用的方法有改进的迭代尺度法、梯度下降法、牛顿法或拟牛顿法。牛顿法或拟牛顿法一般收敛速度更快。
最大熵模型的对数似然函数:
L(ω)=∑x,yP~(x,y)∑ni=1ωifi(x,y)−∑xP~(x,y)logZomega(x)
目标是通过极大似然估计学习模型参数,即求对数似然函数的极大值 ω~
IIS的想法是:假设最大熵模型当前的参数向量是 w=(w1,w2,…,wn)T ,我们希望找到一个新的参数向量 w+δ=(w1+δ1,w2+δ2,…,wn+δn)T ,使得模型的对数似然函数值增大。如果能有这样一种参数向量更新的方法 (w):w→w+δ ,那么就可以重复使用这一方法,直至找到对数似然函数的最大值。
L(ω+δ)−L(ω) ≥∑x,yP~(x,y)∑ni=1δifi(x,y)+1−∑xP~(x,y)Zω+δ(x)Zω(x) =∑x,yP~(x,y)∑ni=1δifi(x,y)+1−∑xP~(x,y)∑yPω(y|x)exp∑ni=1δifi(x,y)
令 A(δ|ω)=∑x,yP~(x,y)∑ni=1δifi(x,y)+1−∑xP~(x,y)∑yPω(y|x)exp∑ni=1δifi(x,y)
f#(x,y)=∑ifi(x,y)
则A(\delta|\omega)= \sum_{x,y} \tilde P(x,y) \sum_{i=1}^n \delta_i f_i (x,y)+1-\sum_x \tilde P(x,y) \sum_y P_\omega(y|x) exp(f^#(x,y) \sum_{i=1}^n (\frac {f_i (x,y)} {f^#(x,y)})) \
≥ \sum_{x,y} \tilde P(x,y) \sum_{i=1}^n \delta_i f_i (x,y)+1-\sum_x \tilde P(x,y) \sum_y P_\omega(y|x) \sum_{i=1}^n (\frac {f_i (x,y)} {f^#(x,y)}) exp(\delta_i,f^#(x,y))
令 B(δ|ω)=∑x,yP~(x,y)∑ni=1δifi(x,y)+1−∑xP~(x,y)∑yPω(y|x)∑ni=1(fi(x,y)f#(x,y))exp(δi,f#(x,y))
最大熵模型:
Pω(y|x)=exp(∑ni=1ωifi(x,y))∑yexp(∑ni=1ωifi(x,y))
目标函数:
minω∈Rn ∑xP~(x)log∑yexp(∑ni=1ωifi(x,y))−∑x,yP~(x,y)∑ni=1ωifi(x,y)
梯度:
g(ω)=(∂f(ω)∂ω1,∂f(ω)∂ω2,⋯,∂f(ω)∂ωn)