改进的迭代尺度算法(Improved Iterative Scaling ,IIS)
改进的迭代尺度算法是一种最大熵模型学习的最优化方法,其核心思想是:假设最大熵模型当前的参数向量是 w w w,希望找到一个新的参数向量 w + δ w+\delta w+δ,使得当前模型的对数似然函数值 Ψ \Psi Ψ 增加。重复这一过程,直至找到对数似然函数的最大值。
已知最大熵模型为:
(1)
P
w
(
y
∣
x
)
=
1
Z
w
(
x
)
exp
(
∑
i
=
1
n
w
i
f
i
(
x
,
y
)
)
P_{w}(y|x)=\frac{1}{Z_{w}(x)}\exp\left (\sum_{i=1}^{n}w_{i}f_{i}(x,y)\right ) \tag{1}
Pw(y∣x)=Zw(x)1exp(i=1∑nwifi(x,y))(1)
其中
(2)
Z
w
(
x
)
=
∑
y
exp
(
∑
i
=
1
n
w
i
f
i
(
x
,
y
)
)
(
规
范
化
因
子
)
Z_{w}(x)=\sum_{y}\exp\left (\sum_{i=1}^{n}w_{i}f_{i}(x,y)\right )(规范化因子)\tag{2}
Zw(x)=y∑exp(i=1∑nwifi(x,y))(规范化因子)(2)
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,否则
对数似然函数:
(3)
Ψ
(
w
)
=
∑
x
,
y
p
~
(
x
,
y
)
∑
i
=
1
n
w
i
f
i
(
x
,
y
)
−
∑
x
p
~
(
x
)
log
Z
w
(
x
)
\Psi(w) =\sum_{x,y}\tilde{p}(x,y)\sum_{i=1}^{n}w_{i}f_{i}(x,y)-\sum_{x}\tilde{p}(x)\log Z_{w}(x)\tag{3}
Ψ(w)=x,y∑p~(x,y)i=1∑nwifi(x,y)−x∑p~(x)logZw(x)(3)
其中,
∑
x
,
y
p
~
(
x
,
y
)
=
∑
x
p
~
(
x
)
\sum_{x,y}\tilde{p}(x,y)=\sum_{x}\tilde{p}(x)
∑x,yp~(x,y)=∑xp~(x)
可以看到 Ψ ≤ 0 \Psi \leq 0 Ψ≤0,所以, Ψ ( w ) = 0 \Psi(w)=0 Ψ(w)=0 是最优的。
现在我们需要求的就是使 Ψ ( w ) \Psi(w) Ψ(w) 值最大时所对应的参数 w w w 的值。
给定特征函数集
f
1
,
f
2
,
.
.
.
,
f
n
{f_{1},f_{2},...,f_{n}}
f1,f2,...,fn,最大熵模型(1)和经验分布
P
~
(
x
,
y
)
\tilde{P}(x,y)
P~(x,y),下面求
W
∗
W^{*}
W∗,使得
W
∗
=
arg
max
w
Ψ
(
w
)
W^{*}=\arg \max_{w}\Psi(w)
W∗=argmaxwΨ(w)
由定义:
(4)
Ψ
(
w
)
=
∑
x
,
y
p
~
(
x
,
y
)
log
p
w
(
y
∣
x
)
\Psi(w)=\sum_{x,y}\tilde{p}(x,y)\log p_{w}(y|x)\tag{4}
Ψ(w)=x,y∑p~(x,y)logpw(y∣x)(4)
IIS 的想法是:假设最大熵模型当前的参数向量是 w = ( w 1 , w 2 , . . . , w n ) T w=(w_{1},w_{2},...,w_{n})^T w=(w1,w2,...,wn)T,我们希望找到一个新的参数向量 w + δ = ( w 1 + δ 1 , w 2 + δ 2 , , . . . , w n + δ n ) T w+\delta=(w_{1}+\delta_{1},w_{2}+\delta_{2},,...,w_{n}+\delta_{n})^{T} w+δ=(w1+δ1,w2+δ2,,...,wn+δn)T,使得模型的对数似然函数值增大。如果能有一种向量的更新方法: w : w + δ w:w+\delta w:w+δ,那么就可以重复使用这一方法直到找到对数似然函数得最大值。
第一步:
由(4)得,模型参数从
w
w
w 到
w
+
δ
w+\delta
w+δ,对数似然函数得改变量为:
Ψ
(
w
+
δ
)
−
Ψ
(
w
)
=
由
(
4
)
式
∑
x
,
y
p
~
(
x
,
y
)
log
p
w
+
δ
(
y
∣
x
)
−
∑
x
,
y
p
~
(
x
,
y
)
log
p
w
(
y
∣
x
)
=
由
(
3
)
式
∑
x
,
y
p
~
(
x
,
y
)
∑
i
=
1
n
(
w
i
+
δ
i
)
f
i
(
x
,
y
)
−
∑
x
p
~
(
x
)
log
Z
w
+
δ
(
x
)
−
(
∑
x
,
y
p
~
(
x
,
y
)
∑
i
=
1
n
w
i
f
i
(
x
,
y
)
−
∑
x
p
~
(
x
)
log
Z
w
(
x
)
)
=
∑
x
,
y
p
~
(
x
,
y
)
∑
i
=
1
n
δ
i
f
i
(
x
,
y
)
−
∑
x
p
~
(
x
)
log
Z
w
+
δ
(
x
)
Z
w
(
x
)
\Psi(w+\delta)-\Psi(w)\overset{由(4)式}{=}\sum_{x,y}\tilde{p}(x,y)\log p_{w+\delta}(y|x)-\sum_{x,y}\tilde{p}(x,y)\log p_{w}(y|x)\\ \overset{由(3)式}{=}\sum_{x,y}\tilde{p}(x,y)\sum_{i=1}^{n}(w_{i}+\delta_{i})f_{i}(x,y)-\sum_{x}\tilde{p}(x)\log Z_{w+\delta}(x)-\left (\sum_{x,y}\tilde{p}(x,y)\sum_{i=1}^{n}w_{i}f_{i}(x,y)-\sum_{x}\tilde{p}(x)\log Z_{w}(x)\right )\\ =\sum_{x,y}\tilde{p}(x,y)\sum_{i=1}^{n}\delta_{i}f_{i}(x,y)-\sum_{x}\tilde{p}(x)\log \frac{Z_{w+\delta}(x)}{Z_{w}(x)}
Ψ(w+δ)−Ψ(w)=由(4)式x,y∑p~(x,y)logpw+δ(y∣x)−x,y∑p~(x,y)logpw(y∣x)=由(3)式x,y∑p~(x,y)i=1∑n(wi+δi)fi(x,y)−x∑p~(x)logZw+δ(x)−(x,y∑p~(x,y)i=1∑nwifi(x,y)−x∑p~(x)logZw(x))=x,y∑p~(x,y)i=1∑nδifi(x,y)−x∑p~(x)logZw(x)Zw+δ(x)
利用不等式: − log α ≥ 1 − α ( α > 0 ) -\log \alpha\geq1-\alpha (\alpha>0) −logα≥1−α(α>0) ( 由 x ≤ e x − 1 ( x > 0 ) ⇒ log x ≤ x − 1 ( x > 0 ) x\leq e^{x-1}(x>0)\Rightarrow \log x\leq x-1(x>0) x≤ex−1(x>0)⇒logx≤x−1(x>0) 得到上述不等式)
建立对数似然函数改变量的下界:
⇒
Ψ
(
w
+
δ
)
−
Ψ
(
w
)
≥
∑
x
,
y
p
~
(
x
,
y
)
∑
i
=
1
n
δ
i
f
i
(
x
,
y
)
−
∑
x
p
~
(
x
)
(
Z
w
+
δ
(
x
)
Z
w
(
x
)
−
1
)
=
∑
x
,
y
p
~
(
x
,
y
)
∑
i
=
1
n
δ
i
f
i
(
x
,
y
)
+
1
−
∑
x
p
~
(
x
)
Z
w
+
δ
(
x
)
Z
w
(
x
)
\Rightarrow \Psi(w+\delta)-\Psi(w)\geq \sum_{x,y}\tilde{p}(x,y)\sum_{i=1}^{n}\delta_{i}f_{i}(x,y)-\sum_{x}\tilde{p}(x)\left ( \frac{Z_{w+\delta}(x)}{Z_{w}(x)}-1\right )\\ =\sum_{x,y}\tilde{p}(x,y)\sum_{i=1}^{n}\delta_{i}f_{i}(x,y)+1-\sum_{x}\tilde{p}(x)\frac{Z_{w+\delta}(x)}{Z_{w}(x)}
⇒Ψ(w+δ)−Ψ(w)≥x,y∑p~(x,y)i=1∑nδifi(x,y)−x∑p~(x)(Zw(x)Zw+δ(x)−1)=x,y∑p~(x,y)i=1∑nδifi(x,y)+1−x∑p~(x)Zw(x)Zw+δ(x)
对于
Z
w
+
δ
(
x
)
Z
w
(
x
)
\frac{Z_{w+\delta}(x)}{Z_{w}(x)}
Zw(x)Zw+δ(x),根据
Z
w
(
x
)
=
∑
y
exp
(
∑
i
=
1
n
w
i
f
i
(
x
,
y
)
)
Z_{w}(x)=\sum_{y}\exp (\sum_{i=1}^{n}w_{i}f_{i}(x,y))
Zw(x)=∑yexp(∑i=1nwifi(x,y))
⇒
Z
w
+
δ
(
x
)
Z
w
(
x
)
=
1
Z
w
(
x
)
⋅
∑
y
exp
(
∑
i
=
1
n
(
w
i
+
δ
i
)
f
i
(
x
,
y
)
)
=
1
Z
w
(
x
)
⋅
∑
y
exp
(
∑
i
=
1
n
w
i
f
i
(
x
,
y
)
+
∑
i
=
1
n
δ
i
f
i
(
x
,
y
)
)
=
1
Z
w
(
x
)
∑
y
exp
(
∑
i
=
1
n
w
i
f
i
(
x
,
y
)
)
exp
(
∑
i
=
1
n
δ
i
f
i
(
x
,
y
)
)
=
∑
y
1
Z
w
(
x
)
exp
(
∑
i
=
1
n
w
i
f
i
(
x
,
y
)
)
exp
(
∑
i
=
1
n
δ
i
f
i
(
x
,
y
)
)
=
∑
y
p
w
(
y
∣
x
)
⋅
exp
(
∑
i
=
1
n
δ
i
f
i
(
x
,
y
)
)
\Rightarrow \frac{Z_{w+\delta}(x)}{Z_{w}(x)}=\frac{1}{Z_{w}(x)}\cdot \sum_{y}\exp\left (\sum_{i=1}^{n}(w_{i}+\delta_{i})f_{i}(x,y)\right )\\ =\frac {1}{Z_{w}(x)}\cdot\sum_{y}\exp\left (\sum_{i=1}^{n}w_{i}f_{i}(x,y)+\sum_{i=1}^{n}\delta_{i}f_{i}(x,y)\right )\\ =\frac{1}{Z_{w}(x)}\sum_{y}\exp\left (\sum_{i=1}^{n}w_{i}f_{i}(x,y)\right )\exp\left (\sum_{i=1}^{n}\delta_{i}f_{i}(x,y)\right )\\ =\sum_{y}\frac{1}{Z_{w}(x)}\exp\left (\sum_{i=1}^{n}w_{i}f_{i}(x,y)\right )\exp\left (\sum_{i=1}^{n}\delta_{i}f_{i}(x,y)\right )\\ =\sum_{y}p_{w}(y|x)\cdot \exp\left (\sum_{i=1}^{n}\delta_{i}f_{i}(x,y)\right )
⇒Zw(x)Zw+δ(x)=Zw(x)1⋅y∑exp(i=1∑n(wi+δi)fi(x,y))=Zw(x)1⋅y∑exp(i=1∑nwifi(x,y)+i=1∑nδifi(x,y))=Zw(x)1y∑exp(i=1∑nwifi(x,y))exp(i=1∑nδifi(x,y))=y∑Zw(x)1exp(i=1∑nwifi(x,y))exp(i=1∑nδifi(x,y))=y∑pw(y∣x)⋅exp(i=1∑nδifi(x,y))
将上述式子代入
Ψ
(
w
+
δ
)
−
Ψ
(
w
)
\Psi(w+\delta)-\Psi(w)
Ψ(w+δ)−Ψ(w) 中
⇒
Ψ
(
w
+
δ
)
−
Ψ
(
w
)
≥
∑
x
,
y
p
~
(
x
,
y
)
∑
i
=
1
n
δ
i
f
i
(
x
,
y
)
+
1
−
∑
x
p
~
(
x
)
∑
y
p
w
(
y
∣
x
)
exp
(
∑
i
=
1
n
δ
i
f
i
(
x
,
y
)
)
\Rightarrow\Psi(w+\delta)-\Psi(w)\geq\sum_{x,y}\tilde{p}(x,y)\sum_{i=1}^{n}\delta_{i}f_{i}(x,y)+1-\sum_{x}\tilde{p}(x)\sum_{y}p_{w}(y|x)\exp\left (\sum_{i=1}^{n}\delta_{i}f_{i}(x,y)\right )
⇒Ψ(w+δ)−Ψ(w)≥x,y∑p~(x,y)i=1∑nδifi(x,y)+1−x∑p~(x)y∑pw(y∣x)exp(i=1∑nδifi(x,y))
将不等式右端记为
(5)
A
(
δ
∣
w
)
=
∑
x
,
y
p
~
(
x
,
y
)
∑
i
=
1
n
δ
i
f
i
(
x
,
y
)
+
1
−
∑
x
p
~
(
x
)
∑
y
p
w
(
y
∣
x
)
exp
(
∑
i
=
1
n
δ
i
f
i
(
x
,
y
)
)
A(\delta|w)=\sum_{x,y}\tilde{p}(x,y)\sum_{i=1}^{n}\delta_{i}f_{i}(x,y)+1-\sum_{x}\tilde{p}(x)\sum_{y}p_{w}(y|x)\exp\left (\sum_{i=1}^{n}\delta_{i}f_{i}(x,y)\right )\tag{5}
A(δ∣w)=x,y∑p~(x,y)i=1∑nδifi(x,y)+1−x∑p~(x)y∑pw(y∣x)exp(i=1∑nδifi(x,y))(5)
于是
⇒
Ψ
(
w
+
δ
)
−
Ψ
(
w
)
≥
A
(
δ
∣
w
)
\Rightarrow\Psi(w+\delta)-\Psi(w)\geq A(\delta|w)
⇒Ψ(w+δ)−Ψ(w)≥A(δ∣w)
即
A
(
δ
∣
w
)
A(\delta|w)
A(δ∣w) 是对数似然函数改变量的一个下界。
第二步
现目标是:找到适当的 δ \delta δ ,使得下界 A ( δ ∣ w ) A(\delta|w) A(δ∣w) 提高,则似然函数也会提高,但 A ( δ ∣ w ) A(\delta|w) A(δ∣w) 是一个 n n n维向量,不易于同时优化,IIS 试图一次优化其中一个 δ i \delta_{i} δi ,而固定其它 δ j \delta_{j} δj 不变, i ≠ j i\neq j i̸=j。
注意:
这里的目的就是最大化两次迭代之间的差值。
1.差值的最大值如果小于 0,说明这时已经达到了最大值,在当前位置向任何方向走,对数似然函数都会变小,而我们要求的是极大似然函数,所以已经达到最大的似然函数了,此时的参数即为我们所求的参数。
2.差值如果大于 0,那么我们现在就是要最大化这个差值,这里得到了差值的下界
A
(
δ
∣
w
)
A(\delta|w)
A(δ∣w) ,可以通过不断地最大化此下界,从而得到最大的差值,而最大化下界的方法是:首先对
A
(
δ
∣
w
)
A(\delta|w)
A(δ∣w) 求关于
δ
i
\delta_{i}
δi 的偏导数,并令其为 0,但看这个求出的偏导数:
∂
(
A
(
δ
∣
w
)
)
∂
δ
i
=
∑
x
,
y
p
~
(
x
,
y
)
f
i
(
x
,
y
)
−
∑
x
p
~
(
x
)
∑
y
p
w
(
y
∣
x
)
exp
(
∑
i
=
1
n
δ
i
f
i
(
x
,
y
)
)
f
i
(
x
,
y
)
\frac{\partial (A(\delta|w))}{\partial \delta_{i}}=\sum_{x,y}\tilde{p}(x,y)f_{i}(x,y)-\sum_{x}\tilde{p}(x)\sum_{y}p_{w}(y|x)\exp\left(\sum_{i=1}^{n}\delta_{i}f_{i}(x,y)\right)f_{i}(x,y)
∂δi∂(A(δ∣w))=x,y∑p~(x,y)fi(x,y)−x∑p~(x)y∑pw(y∣x)exp(i=1∑nδifi(x,y))fi(x,y)
里面含有多个变量,不易同时优化。
因此为达到这一目的并进一步降低下界
A
(
δ
∣
w
)
A(\delta|w)
A(δ∣w) ,IIS 引进一个新的量:
f
#
(
x
,
y
)
=
∑
i
f
i
(
x
,
y
)
f^{\#}(x,y)=\sum_{i}f_{i}(x,y)
f#(x,y)=i∑fi(x,y)
因为
f
i
(
x
,
y
)
f_{i}(x,y)
fi(x,y) 是一个二值函数,所以
f
#
(
x
,
y
)
f^{\#}(x,y)
f#(x,y) 表示所有特征在
(
x
,
y
)
(x,y)
(x,y) 出现的次数。
所以(5)式可改写为:
⇒
A
(
δ
∣
w
)
=
∑
x
,
y
p
~
(
x
,
y
)
∑
i
=
1
n
δ
i
f
i
(
x
,
y
)
+
1
−
∑
x
p
~
(
x
)
∑
y
p
w
(
y
∣
x
)
exp
(
f
#
(
x
,
y
)
∑
i
=
1
n
δ
i
f
i
(
x
,
y
)
f
#
(
x
,
y
)
)
\Rightarrow A(\delta|w)=\sum_{x,y}\tilde{p}(x,y)\sum_{i=1}^{n}\delta_{i}f_{i}(x,y)+1-\sum_{x}\tilde{p}(x)\sum_{y}p_{w}(y|x)\exp\left (f^{\#}(x,y)\sum_{i=1}^{n}\frac {\delta_{i}f_{i}(x,y)}{f^{\#}(x,y)} \right )
⇒A(δ∣w)=x,y∑p~(x,y)i=1∑nδifi(x,y)+1−x∑p~(x)y∑pw(y∣x)exp(f#(x,y)i=1∑nf#(x,y)δifi(x,y))
利用指数函数的凸函数性质,及对任意
i
i
i,有
f
i
(
x
,
y
)
f
#
(
x
,
y
)
≥
0
\frac{f_{i}(x,y)}{f^{\#}(x,y)}\geq 0
f#(x,y)fi(x,y)≥0 且
∑
i
=
1
n
f
i
(
x
,
y
)
f
#
(
x
,
y
)
=
1
\sum_{i=1}^{n}\frac{f_{i}(x,y)}{f^{\#}(x,y)}=1
∑i=1nf#(x,y)fi(x,y)=1,利用詹森不等式:
exp
(
∑
x
p
(
x
)
q
(
x
)
)
≤
∑
x
p
(
x
)
exp
q
(
x
)
\exp\left(\sum_{x}p(x)q(x)\right)\leq\sum_{x}p(x)\exp q(x)
exp(x∑p(x)q(x))≤x∑p(x)expq(x)
令
p
(
x
)
=
f
i
(
x
,
y
)
f
#
(
x
,
y
)
p(x)=\frac{f_{i}(x,y)}{f^{\#}(x,y)}
p(x)=f#(x,y)fi(x,y),
q
(
x
)
=
δ
i
f
#
(
x
,
y
)
q(x)=\delta_{i}f^{\#}(x,y)
q(x)=δif#(x,y)
(6)
⇒
A
(
δ
∣
w
)
=
∑
x
,
y
p
~
(
x
,
y
)
∑
i
=
1
n
δ
i
f
i
(
x
,
y
)
+
1
−
∑
x
p
~
(
x
)
∑
y
p
w
(
y
∣
x
)
exp
(
∑
i
=
1
n
δ
i
f
i
(
x
,
y
)
f
#
(
x
,
y
)
f
#
(
x
,
y
)
)
≥
∑
x
,
y
p
~
(
x
,
y
)
∑
i
=
1
n
δ
i
f
i
(
x
,
y
)
+
1
−
∑
x
p
~
(
x
)
∑
y
p
w
(
y
∣
x
)
∑
i
=
1
n
(
f
i
(
x
,
y
)
f
#
(
x
,
y
)
)
exp
(
δ
i
f
#
(
x
,
y
)
)
\Rightarrow A(\delta|w)=\sum_{x,y}\tilde{p}(x,y)\sum_{i=1}^{n}\delta_{i}f_{i}(x,y)+1-\sum_{x} \tilde{p}(x)\sum_{y}p_{w}(y|x)\exp \left (\sum_{i=1}^{n}\frac{\delta_{i}f_{i}(x,y)f^{\#}(x,y)}{f^{\#}(x,y)}\right)\tag{6} \\ \geq\sum_{x,y}\tilde{p}(x,y)\sum_{i=1}^{n}\delta_{i}f_{i}(x,y)+1-\sum_{x}\tilde{p}(x)\sum_{y}p_{w}(y|x)\sum_{i=1}^{n}\left(\frac{f_{i}(x,y)}{f^{\#}(x,y)}\right)\exp({\delta_{i}f^{\#}(x,y)})
⇒A(δ∣w)=x,y∑p~(x,y)i=1∑nδifi(x,y)+1−x∑p~(x)y∑pw(y∣x)exp(i=1∑nf#(x,y)δifi(x,y)f#(x,y))≥x,y∑p~(x,y)i=1∑nδifi(x,y)+1−x∑p~(x)y∑pw(y∣x)i=1∑n(f#(x,y)fi(x,y))exp(δif#(x,y))(6)
将上述不等式右边记为
B
(
δ
∣
w
)
B(\delta|w)
B(δ∣w) ,则:
Ψ
(
w
+
δ
)
−
Ψ
(
w
)
≥
B
(
δ
∣
w
)
\Psi(w+\delta)-\Psi(w)\geq B(\delta|w)
Ψ(w+δ)−Ψ(w)≥B(δ∣w)
这里,
B
(
δ
∣
w
)
B(\delta|w)
B(δ∣w) 是对数似然函数改变量的一个新的下界。
第三步
对于新下界
B
(
δ
∣
w
)
B(\delta|w)
B(δ∣w),对
δ
i
\delta_{i}
δi 求偏导得(注意:这里是对一项
δ
i
\delta_{i}
δi 求偏导,而非所有
δ
\delta
δ)
∂
(
B
(
δ
∣
w
)
)
∂
δ
i
=
∑
x
,
y
p
~
(
x
,
y
)
f
i
(
x
,
y
)
−
∑
x
p
~
(
x
)
∑
y
p
w
(
y
∣
x
)
f
i
(
x
,
y
)
exp
(
δ
i
f
#
(
x
,
y
)
)
\frac{\partial (B(\delta|w))}{\partial \delta_{i}}=\sum_{x,y}\tilde{p}(x,y)f_{i}(x,y)-\sum_{x}\tilde{p}(x)\sum_{y}p_{w}(y|x)f_{i}(x,y)\exp(\delta_{i}f^{\#}(x,y))
∂δi∂(B(δ∣w))=x,y∑p~(x,y)fi(x,y)−x∑p~(x)y∑pw(y∣x)fi(x,y)exp(δif#(x,y))
其中,
(
∑
i
=
1
n
(
f
i
(
x
,
y
)
f
#
(
x
,
y
)
)
exp
(
δ
i
f
#
(
x
,
y
)
)
)
δ
i
′
=
(
∑
a
⋅
e
δ
i
b
)
δ
i
′
=
a
b
⋅
e
δ
i
b
f
i
(
x
,
y
)
f
#
(
x
,
y
)
⋅
f
#
(
x
,
y
)
⋅
exp
(
δ
i
f
#
(
x
,
y
)
)
\left(\sum_{i=1}^{n}(\frac {f_{i}(x,y)}{f^{\#}(x,y)})\exp(\delta_{i}f^{\#}(x,y))\right)_{\delta_{i}}^{'}\overset{(\sum a\cdot e^{\delta_{i}b})_{\delta_{i}}^{'}=a b\cdot e^{\delta_{i}b}}{=}\frac{f_{i}(x,y)}{f^{\#}(x,y)~}\cdot f^{\#}(x,y)\cdot \exp(\delta_{i}f^{\#}(x,y))
(∑i=1n(f#(x,y)fi(x,y))exp(δif#(x,y)))δi′=(∑a⋅eδib)δi′=ab⋅eδibf#(x,y) fi(x,y)⋅f#(x,y)⋅exp(δif#(x,y))
这里,偏导数
∂
(
B
(
δ
∣
w
)
)
∂
δ
i
\frac{\partial (B(\delta|w))}{\partial \delta_{i}}
∂δi∂(B(δ∣w)) 中除
δ
i
\delta_{i}
δi 以外,不含任何其他变量,令
∂
(
B
(
δ
∣
w
)
)
∂
δ
i
=
0
\frac{\partial (B(\delta|w))}{\partial \delta_{i}}=0
∂δi∂(B(δ∣w))=0
(7)
⇒
∑
x
p
~
(
x
)
∑
y
p
w
(
y
∣
x
)
f
i
(
x
,
y
)
exp
(
δ
i
f
#
(
x
,
y
)
)
=
∑
x
,
y
p
~
(
x
,
y
)
f
i
(
x
,
y
)
⇒
∑
x
,
y
p
~
(
x
)
p
w
(
y
∣
x
)
f
i
(
x
,
y
)
exp
(
δ
i
f
#
(
x
,
y
)
)
=
E
p
~
(
f
i
)
\Rightarrow\sum_{x}\tilde{p}(x)\sum_{y}p_{w}(y|x)f_{i}(x,y)\exp(\delta_{i}f^{\#}(x,y))=\sum_{x,y}\tilde{p}(x,y)f_{i}(x,y)\\ \Rightarrow \sum_{x,y}\tilde{p}(x)p_{w}(y|x)f_{i}(x,y)\exp(\delta_{i}f^{\#}(x,y))=E_{\tilde{p}}(f_{i})\tag{7}
⇒x∑p~(x)y∑pw(y∣x)fi(x,y)exp(δif#(x,y))=x,y∑p~(x,y)fi(x,y)⇒x,y∑p~(x)pw(y∣x)fi(x,y)exp(δif#(x,y))=Ep~(fi)(7)
依次对
δ
i
\delta_{i}
δi 求解方程(7),从而求出
δ
\delta
δ ,这样就可以
W
∗
=
(
w
1
,
w
2
,
.
.
.
,
w
n
)
W^{*}=(w_{1},w_{2},...,w_{n})
W∗=(w1,w2,...,wn) 的值进行更新了。
算法描述
改进的迭代尺度算法IIS
输入:特征函数
f
1
,
f
2
,
.
.
,
f
n
f_{1},f_{2},..,{f_{n}}
f1,f2,..,fn;经验分布函数
p
~
(
X
,
Y
)
\tilde{p}(X,Y)
p~(X,Y),模型
P
w
(
y
∣
x
)
P_{w}(y|x)
Pw(y∣x);
输出:最优参数值
w
∗
w^{*}
w∗;最优模型
P
w
∗
P_{w^{*}}
Pw∗。
(1)对所有
i
∈
{
1
,
2
,
.
.
.
,
n
}
i \in \left \{ 1,2,...,n\right \}
i∈{1,2,...,n},取初值
w
i
=
0
w_{i}=0
wi=0;
(2)对每一个
i
∈
{
1
,
2
,
.
.
.
,
n
}
i \in \left \{ 1,2,...,n\right \}
i∈{1,2,...,n}:
- (a)令 δ i \delta_{i} δi 是方程 ∑ x , y p ~ ( x ) p w ( y ∣ x ) f i ( x , y ) exp ( δ i f # ( x , y ) ) = E p ~ ( f i ) \sum_{x,y}\tilde{p}(x)p_{w}(y|x)f_{i}(x,y)\exp(\delta_{i}f^{\#}(x,y))=E_{\tilde{p}}(f_{i}) ∑x,yp~(x)pw(y∣x)fi(x,y)exp(δif#(x,y))=Ep~(fi) 的解,这里, f # ( x , y ) = ∑ i f ( x , y ) f^{\#}(x,y)=\sum_{i}f_{}(x,y) f#(x,y)=∑if(x,y)
- (b)更新 w i w_{i} wi 值: w i → w i + δ i w_{i}\rightarrow w_{i}+\delta_{i} wi→wi+δi
(3)如果不是所有的 w i w_{i} wi 都收敛,重复(2)。
这一算法关键是(a),即求解方程(7)中的
δ
i
\delta_{i}
δi 。
如果
f
#
(
x
,
y
)
f^{\#}(x,y)
f#(x,y) 是常数,即对任何
x
,
y
x,y
x,y 有
f
#
(
x
,
y
)
=
M
f^{\#}(x,y)=M
f#(x,y)=M,那么
δ
i
\delta_{i}
δi 可以显示地表示成
δ
i
=
1
M
log
E
p
~
(
f
i
)
E
p
(
f
i
)
\delta_{i}=\frac{1}{M}\log\frac{E_{\tilde{p}}(f_{i})}{E_{p}(f_{i})}
δi=M1logEp(fi)Ep~(fi) ;
如果
f
#
(
x
,
y
)
f^{\#}(x,y)
f#(x,y) 不是常数,那么必须通过数值计算求
δ
i
\delta_{i}
δi 。
(注意:这里
f
#
f^{\#}
f# 是
f
f
f 的加权和,为什么
f
#
f^{\#}
f#可能不为常数呢?因为离线训练中是常数,在线训练(增量式训练样本)中就不是常数。)
简单有效的方法是:牛顿法。以
g
(
δ
i
)
=
0
g(\delta_{i})=0
g(δi)=0 表示方程(7),牛顿法通过迭代求得
δ
i
∗
\delta_{i}^{*}
δi∗ ,使得
g
(
δ
i
∗
)
=
0
g(\delta_{i}^{*})=0
g(δi∗)=0
迭代公式为:
δ
i
(
k
+
1
)
=
δ
i
(
k
)
−
g
(
δ
i
(
k
)
)
g
′
(
δ
i
(
k
)
)
\delta_{i}^{({k+1})}=\delta_{i}^{(k)}-\frac{g(\delta_{i}^{(k)})}{g^{'}(\delta_{i}^{(k)})}
δi(k+1)=δi(k)−g′(δi(k))g(δi(k))
只要适当选取初始值
δ
i
(
0
)
\delta_{i}^{(0)}
δi(0) ,由于
δ
i
\delta_{i}
δi 的方程(7)有单根,因此牛顿法恒收敛,而且收敛的速度很快。