6.1 逻辑斯谛回归模型
6.1.1 逻辑斯谛分布
分布函数:
F
(
x
)
=
P
(
X
≤
x
)
=
1
1
+
e
−
(
x
−
μ
)
/
γ
F(x)=P(X\leq x)=\frac{1}{1+e^-(x-\mu)/\gamma }
F(x)=P(X≤x)=1+e−(x−μ)/γ1
密度函数:
f
(
x
)
=
F
′
(
x
)
=
e
−
(
x
−
μ
)
/
γ
1
+
e
−
(
x
−
μ
)
/
γ
f(x)=F'(x)=\frac{e^{-(x-\mu)/\gamma}}{1+e^{-(x-\mu)/\gamma} }
f(x)=F′(x)=1+e−(x−μ)/γe−(x−μ)/γ
其中,
μ
\mu
μ为位置参数,
γ
>
0
\gamma >0
γ>0为形状参数。
6.1.2 二项逻辑斯谛回归模型
二项逻辑斯谛回归模型(binomial logistic regression model)是一种分类模型
定义6.2(逻辑斯谛回归模型) 二项逻辑斯谛回归模型是以下条件分布:
P
(
Y
=
1
∣
X
)
=
e
−
w
.
x
+
b
1
+
e
−
w
.
x
+
b
P(Y=1|X)= \frac{e^{-w.x+b}}{1+e^{-w.x+b}}
P(Y=1∣X)=1+e−w.x+be−w.x+b
P
(
Y
=
0
∣
X
)
=
1
1
+
e
−
w
.
x
+
b
P(Y=0|X)= \frac{1}{1+e^{-w.x+b}}
P(Y=0∣X)=1+e−w.x+b1
其中,
x
∈
R
n
x\in R^n
x∈Rn是输入,
Y
∈
{
0
,
1
}
Y\in \{0,1\}
Y∈{0,1}是输出,
w
∈
R
n
w \in R^n
w∈Rn和
b
∈
R
b\in R
b∈R是参数,
w
w
w是权值向量,
b
b
b称为偏置,
w
.
x
w.x
w.x为
w
w
w和
x
x
x的内积。
6.1.3 模型参数估计
设:
P
(
Y
=
1
∣
x
)
=
π
(
x
)
,
P
(
Y
=
0
∣
x
)
=
1
−
π
(
x
)
P(Y=1|x)=\pi(x),P(Y=0|x)=1-\pi(x)
P(Y=1∣x)=π(x),P(Y=0∣x)=1−π(x)
似然函数为:
∏
i
=
1
N
[
π
(
x
i
)
]
y
i
[
1
−
π
(
x
i
)
]
1
−
y
i
\prod_{i=1}^{N}[\pi(x_i)]^{y_i}[1-\pi(x_i)]^{1-y_i}
i=1∏N[π(xi)]yi[1−π(xi)]1−yi
对数似然函数:
L
(
w
)
=
∑
i
=
1
N
[
y
i
l
o
g
π
(
x
i
)
+
(
1
−
y
i
)
l
o
g
(
1
−
π
(
x
i
)
)
]
L(w)=\sum_{i=1}^{N}[y_ilog\pi(x_i)+(1-y_i)log(1-\pi(x_i))]
L(w)=i=1∑N[yilogπ(xi)+(1−yi)log(1−π(xi))]
=
∑
i
=
1
N
[
y
i
l
o
g
π
(
x
i
)
1
−
π
(
x
i
)
+
l
o
g
(
1
−
π
(
x
i
)
)
]
=\sum_{i=1}^{N}[y_ilog\frac{\pi(x_i)}{1-\pi(x_i)}+log(1-\pi(x_i))]
=i=1∑N[yilog1−π(xi)π(xi)+log(1−π(xi))]
=
∑
[
y
i
(
w
.
x
i
)
−
l
o
g
(
1
+
e
w
.
x
i
)
]
=\sum[y_i(w.x_i)-log(1+e^{w.x_i})]
=∑[yi(w.xi)−log(1+ew.xi)]
对
L
(
w
)
L(w)
L(w)求极大值,得到
w
w
w的估计
6.1.4 多项逻辑斯谛回归
P
(
Y
=
k
∣
X
)
=
e
−
w
.
x
+
b
1
+
∑
i
=
1
K
−
1
e
−
w
.
x
+
b
P(Y=k|X)= \frac{e^{-w.x+b}}{1+ \sum\limits_{i=1}^{K-1}e^{-w.x+b}}
P(Y=k∣X)=1+i=1∑K−1e−w.x+be−w.x+b
P
(
Y
=
K
∣
X
)
=
1
1
+
∑
i
=
1
K
−
1
e
−
w
.
x
+
b
P(Y=K|X)= \frac{1}{1+ \sum\limits_{i=1}^{K-1}e^{-w.x+b}}
P(Y=K∣X)=1+i=1∑K−1e−w.x+b1
这里,
x
∈
R
n
+
1
,
w
k
∈
R
n
+
1
x\in R^{n+1},w_k\in R^{n+1}
x∈Rn+1,wk∈Rn+1
6.2 最大熵模型
6.2.1 最大熵原理
假设离散随机变量
X
X
X的概率分布是
P
(
X
)
P(X)
P(X),则其熵为
H
(
P
)
=
−
∑
x
P
(
x
)
l
o
g
P
(
x
)
H(P)=-\sum_xP(x)logP(x)
H(P)=−x∑P(x)logP(x)
熵满足以下不等式:
0
≤
H
(
P
)
≤
l
o
g
∣
X
∣
0\leq H(P)\leq log|X|
0≤H(P)≤log∣X∣
其中,
∣
X
∣
|X|
∣X∣是
X
X
X的取值个数,当且仅当
X
X
X的分布是均匀分布时右边的等号成立,即X服从均匀分布时,熵最大。
最大熵的原理认为要选择的概率模型首先必须满足已有的事实,即约束条件,在没有更多信息的情况下,那些不确定的部分都是“等可能的”。
6.2.2 最大熵模型的定义
假设分类模型是条件概率分布 P ( y ∣ x ) , X ∈ X ∈ R P(y|x),X\in \mathcal{X}\in R P(y∣x),X∈X∈R表示输入, Y ∈ Y Y\in\mathcal{Y} Y∈Y表示输出, X \mathcal{X} X和 Y \mathcal{Y} Y分别是输入和输出的集合。这个模型表示的是:对给定的输入 X X X,以条件概率 P ( Y ∣ X ) P(Y|X) P(Y∣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
)
\widetilde{P}(X,Y)
P
(X,Y)和
P
~
(
X
)
\widetilde{P}(X)
P
(X)表示,有
P
~
(
X
=
x
,
Y
=
y
)
=
v
(
X
=
x
,
Y
=
y
)
N
\widetilde{P}(X=x,Y=y)=\frac{v(X=x,Y=y)}{N}
P
(X=x,Y=y)=Nv(X=x,Y=y)
P
~
(
X
=
x
)
=
v
(
X
=
x
)
N
\widetilde{P}(X=x)=\frac{v(X=x)}{N}
P
(X=x)=Nv(X=x)
其中,
v
(
X
=
x
,
Y
=
y
)
v(X=x,Y=y)
v(X=x,Y=y)表示训练样本数据中样本
(
x
,
y
)
(x,y)
(x,y)出现的频数,
v
(
X
=
x
)
v(X=x)
v(X=x)表示训练数据中输入
x
x
x出现的频数,
N
N
N表示样本容量。
用特征函数(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)=\begin{cases} 1,&\text{$x$与$y$满足某一事实}\\ 0,&\text否则 \end{cases}
f(x,y)={1,0,x与y满足某一事实否则
特征函数
f
(
x
,
y
)
f(x,y)
f(x,y)关于经验分布
P
~
(
X
,
Y
)
\widetilde{P}(X,Y)
P
(X,Y)的期望值,用
E
p
~
(
f
)
E_{\widetilde{p}}(f)
Ep
(f)表示
E
p
~
(
f
)
=
∑
x
,
y
P
~
(
x
,
y
)
f
(
x
,
y
)
E_{\widetilde{p}}(f)=\sum_{x,y}\widetilde{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
(
X
,
Y
)
P(X,Y)
P(X,Y)的期望值,用
E
P
(
f
)
E_P(f)
EP(f)表示
E
p
(
f
)
=
∑
x
,
y
P
~
(
x
)
p
(
x
,
y
)
f
(
x
,
y
)
E_p(f)=\sum_{x,y}\widetilde{P}(x)p(x,y)f(x,y)
Ep(f)=x,y∑P
(x)p(x,y)f(x,y)
若能获取训练数据中的信息,假设这两个期望值相等
E
p
(
f
)
=
E
p
~
(
f
)
E_p(f)=E_{\widetilde{p}}(f)
Ep(f)=Ep
(f)
或
∑
x
,
y
P
~
(
x
)
p
(
x
,
y
)
f
(
x
,
y
)
=
∑
x
,
y
P
~
(
x
,
y
)
f
(
x
,
y
)
\sum_{x,y}\widetilde{P}(x)p(x,y)f(x,y)=\sum_{x,y}\widetilde{P}(x,y)f(x,y)
x,y∑P
(x)p(x,y)f(x,y)=x,y∑P
(x,y)f(x,y)
定义6.3(最大熵模型) 假设满足所有约束条件的模型集合为
C
≡
{
P
∈
P
∣
E
p
(
f
i
)
=
E
p
~
(
f
i
)
,
i
=
1
,
2
,
.
.
.
,
n
}
\mathcal{C}\equiv\{P\in \mathcal{P}|E_p(f_i)=E_{\widetilde{p}}(f_i),i=1,2,...,n\}
C≡{P∈P∣Ep(fi)=Ep
(fi),i=1,2,...,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}\widetilde{P}(x)P(y|x)logP(y|x)
H(P)=−x,y∑P
(x)P(y∣x)logP(y∣x)
则模型集合
C
\mathcal{C}
C中条件熵
H
(
P
)
H(P)
H(P)成为最大熵模型
6.2.3 最大熵模型的估计
最大熵模型的学习等价于约束最优化问题:
m
a
x
P
∈
C
H
(
P
)
=
−
∑
x
,
y
P
~
(
x
)
P
(
y
∣
x
)
l
o
g
P
(
y
∣
x
)
\mathop{max}\limits_{P\in C}H(P)=-\sum_{x,y}\widetilde{P}(x)P(y|x)logP(y|x)
P∈CmaxH(P)=−x,y∑P
(x)P(y∣x)logP(y∣x)
s
.
t
.
E
p
(
f
i
)
=
E
P
~
(
f
i
)
,
i
=
1
,
2
,
.
.
.
,
n
s.t. E_p(f_i)=E_{\widetilde{P}}(f_i),i=1,2,...,n
s.t.Ep(fi)=EP
(fi),i=1,2,...,n
∑
y
P
(
y
∣
x
)
=
1
\sum_yP(y|x)=1
y∑P(y∣x)=1
利用其对偶问题,结合拉格朗日乘子,求得
P
(
y
∣
x
)
=
e
∑
i
=
1
n
w
i
f
i
(
x
,
y
)
e
1
−
w
0
P(y|x)=\frac{e^{\sum\limits_{i=1}^nw_if_i(x,y)}}{e^{1-w_0}}
P(y∣x)=e1−w0ei=1∑nwifi(x,y)
由
∑
x
P
(
y
∣
x
)
=
1
\sum_xP(y|x)=1
x∑P(y∣x)=1
得,
P
w
(
y
∣
x
)
=
1
Z
w
(
x
)
e
∑
i
=
1
n
w
i
f
i
(
x
,
y
)
P_w(y|x)=\frac{1}{Z_w(x)}e^{\sum\limits_{i=1}^nw_if_i(x,y)}
Pw(y∣x)=Zw(x)1ei=1∑nwifi(x,y)
其中,
Z
w
(
x
)
=
∑
y
e
∑
i
=
1
n
w
i
f
i
(
x
,
y
)
Z_w(x)=\sum_y e^{\sum\limits_{i=1}^nw_if_i(x,y)}
Zw(x)=y∑ei=1∑nwifi(x,y)
Z
w
(
x
)
Z_w(x)
Zw(x)称为规范化因子,
f
i
(
x
,
y
)
f_i(x,y)
fi(x,y)是特征函数;
w
i
w_i
wi是特征的权值,以上两式表示的模型为
P
w
=
P
w
(
x
,
y
)
P_w=P_w(x,y)
Pw=Pw(x,y)就是最大熵模型,这里的
w
w
w是最大熵模型的参数向量。
之后,求解对偶问题外部的极大化问题
m
a
x
w
Ψ
(
w
)
\mathop{max}\limits_w\Psi(w)
wmaxΨ(w)
将其解记为
w
∗
w^*
w∗,即
w
∗
=
a
r
g
m
a
x
w
Ψ
(
w
)
w^*=arg\mathop{max}\limits_w\Psi(w)
w∗=argwmaxΨ(w)
这里可运用最优化算法求对偶问题
Ψ
(
w
)
\Psi(w)
Ψ(w)的极大化,得到
w
∗
w^*
w∗,用来表示
P
∈
C
P\in \mathcal{C}
P∈C,这里
P
∗
=
P
w
∗
=
P
w
∗
(
y
∣
x
)
P^*=P_{w^*}=P_{w^*}(y|x)
P∗=Pw∗=Pw∗(y∣x)是学习到的最优模型(最大熵模型)。
6.2.4 极大似然估计
最大熵模型和逻辑斯谛回归模型有类似的行式,又称为对数线性模型(log linear model),模型学习就是在给定的训练数据条件下对模型进行极大似然估计或正则化。
6.3 模型学习的最优化算法
6.3.1 改进的迭代尺度法
改进的迭代尺度法(Improved iterative scaling,IIS)是一种最大熵模型学习的最优化算法。
已知最大熵模型为
P w ( y ∣ x ) = 1 Z w ( x ) e ∑ i = 1 n w i f i ( x , y ) P_w(y|x)=\frac{1}{Z_w(x)}e^{\sum\limits_{i=1}^nw_if_i(x,y)} Pw(y∣x)=Zw(x)1ei=1∑nwifi(x,y)
其中,
Z
w
(
x
)
=
∑
y
e
∑
i
=
1
n
w
i
f
i
(
x
,
y
)
Z_w(x)=\sum_y e^{\sum\limits_{i=1}^nw_if_i(x,y)}
Zw(x)=y∑ei=1∑nwifi(x,y)
对数似然函数为
L
(
w
)
=
∑
x
,
y
P
~
(
x
,
y
)
∑
i
=
1
n
w
i
f
i
(
x
,
y
)
−
∑
x
P
~
(
x
)
l
o
g
Z
w
(
x
)
L(w)=\sum\limits_{x,y}\widetilde{P}(x,y)\sum\limits_{i=1}^nw_if_i(x,y)-\sum_x\widetilde{P}(x)logZ_w(x)
L(w)=x,y∑P
(x,y)i=1∑nwifi(x,y)−x∑P
(x)logZw(x)
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
+
δ
\tau:w\longrightarrow{w+\delta}
τ:w⟶w+δ,重复使用这一方法,直至找到对数似然函数的最大值。
对于给定的经验分布
P
~
(
x
,
y
)
\widetilde{P}(x,y)
P
(x,y),模型参数从
w
w
w到
w
+
δ
w+\delta
w+δ,对数似然函数的改变是
L
(
w
+
δ
)
−
L
(
w
)
=
∑
x
,
y
P
~
(
x
,
y
)
l
o
g
P
w
+
δ
(
y
∣
x
)
−
∑
x
,
y
P
~
(
x
,
y
)
l
o
g
P
w
(
y
∣
x
)
L(w+\delta)-L(w)=\sum_{x,y}\widetilde{P}(x,y)logP_{w+\delta}(y|x)-\sum_{x,y}\widetilde{P}(x,y)logP_w(y|x)
L(w+δ)−L(w)=x,y∑P
(x,y)logPw+δ(y∣x)−x,y∑P
(x,y)logPw(y∣x)
利用不等式
−
l
o
g
α
≥
1
−
α
,
α
>
0
-log\alpha\geq1-\alpha,\alpha>0
−logα≥1−α,α>0
对数似然函数的下界
A
(
δ
∣
w
)
=
∑
x
,
y
P
~
(
x
,
y
)
∑
i
=
1
n
δ
i
f
i
(
x
,
y
)
+
1
−
∑
x
P
~
(
x
)
∑
y
P
w
(
y
∣
x
)
e
∑
i
=
1
n
δ
i
f
i
(
x
,
y
)
A(\delta|w)=\sum_{x,y}\widetilde{P}(x,y)\sum\limits_{i=1}^n\delta_if_i(x,y)+1-\sum_x\widetilde{P}(x)\sum_yP_w(y|x)e^{\sum\limits_{i=1}^n\delta_if_i(x,y)}
A(δ∣w)=x,y∑P
(x,y)i=1∑nδifi(x,y)+1−x∑P
(x)y∑Pw(y∣x)ei=1∑nδifi(x,y)
于是,
L
(
w
+
δ
)
−
L
(
w
)
≥
A
(
δ
+
w
)
L(w+\delta)-L(w)\geq A(\delta+w)
L(w+δ)−L(w)≥A(δ+w)
IIS每次只优化一个变量
δ
i
\delta_i
δi,而固定其他变量
δ
i
,
i
≠
j
\delta_i,i\neq j
δi,i̸=j
为达到这一目的,进一步降低IIS的下界
A
(
δ
∣
w
)
A(\delta|w)
A(δ∣w),具体地,引入一个变量
f
#
(
x
,
y
)
f^\#(x,y)
f#(x,y)
f
#
(
x
,
y
)
=
∑
i
f
i
(
x
,
y
)
f^\#(x,y)=\sum_if_i(x,y)
f#(x,y)=i∑fi(x,y)
f
i
f_i
fi是二值函数,故
f
#
(
x
,
y
)
f^\#(x,y)
f#(x,y)表示所有特征在
(
x
,
y
)
(x,y)
(x,y)出现的次数。这样,
A
(
δ
∣
w
)
A(\delta|w)
A(δ∣w)可以改写成
A
(
δ
∣
w
)
=
∑
x
,
y
P
~
(
x
,
y
)
∑
i
=
1
n
δ
i
f
i
(
x
,
y
)
+
1
−
∑
x
P
~
(
x
)
∑
y
P
w
(
y
∣
x
)
e
f
#
(
x
,
y
)
∑
i
=
1
n
δ
i
f
i
(
x
,
y
)
f
#
(
x
,
y
)
A(\delta|w)=\sum_{x,y}\widetilde{P}(x,y)\sum\limits_{i=1}^n\delta_if_i(x,y)+1-\sum_x\widetilde{P}(x)\sum_yP_w(y|x)e^{f^\#(x,y)\sum\limits_{i=1}^n\frac{\delta_if_i(x,y)}{f^\#(x,y)}}
A(δ∣w)=x,y∑P
(x,y)i=1∑nδifi(x,y)+1−x∑P
(x)y∑Pw(y∣x)ef#(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)}\geq0
f#(x,y)fi(x,y)≥0且
∑
i
=
1
n
f
i
(
x
,
y
)
f
#
(
x
,
y
)
=
1
\sum\limits_{i=1}^n\frac{f_i(x,y)}{f^\#(x,y)}=1
i=1∑nf#(x,y)fi(x,y)=1这一事实,根据
J
e
n
s
e
n
Jensen
Jensen不等式,得到
e
∑
i
=
1
n
f
i
(
x
,
y
)
f
#
(
x
,
y
)
δ
i
f
#
(
x
,
y
)
≤
∑
i
=
1
n
f
i
(
x
,
y
)
f
#
(
x
,
y
)
e
δ
i
f
#
(
x
,
y
)
e^{\sum\limits_{i=1}^n\frac{f_i(x,y)}{f^\#(x,y)}\delta_if^\#(x,y)}\leq\sum\limits_{i=1}^n\frac{f_i(x,y)}{f^\#(x,y)}e^{\delta_if^\#(x,y)}
ei=1∑nf#(x,y)fi(x,y)δif#(x,y)≤i=1∑nf#(x,y)fi(x,y)eδif#(x,y)
于是,
A
(
δ
∣
w
)
≥
∑
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
)
e
δ
i
f
#
(
x
,
y
)
A(\delta|w)\geq\sum_{x,y}\widetilde{P}(x,y)\sum\limits_{i=1}^n\delta_if_i(x,y)+1-\sum_x\widetilde{P}(x)\sum_yP_w(y|x)\sum\limits_{i=1}^n\frac{f_i(x,y)}{f^\#(x,y)}e^{\delta_if^\#(x,y)}
A(δ∣w)≥x,y∑P
(x,y)i=1∑nδifi(x,y)+1−x∑P
(x)y∑Pw(y∣x)i=1∑nf#(x,y)fi(x,y)eδif#(x,y)
上述不等式右边记为
B
(
δ
∣
w
)
=
∑
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
)
e
δ
i
f
#
(
x
,
y
)
B(\delta|w)=\sum_{x,y}\widetilde{P}(x,y)\sum\limits_{i=1}^n\delta_if_i(x,y)+1-\sum_x\widetilde{P}(x)\sum_yP_w(y|x)\sum\limits_{i=1}^n\frac{f_i(x,y)}{f^\#(x,y)}e^{\delta_if^\#(x,y)}
B(δ∣w)=x,y∑P
(x,y)i=1∑nδifi(x,y)+1−x∑P
(x)y∑Pw(y∣x)i=1∑nf#(x,y)fi(x,y)eδif#(x,y)
于是
L
(
w
+
δ
)
−
L
(
w
)
≥
B
(
δ
∣
w
)
L(w+\delta)-L(w)\geq B(\delta|w)
L(w+δ)−L(w)≥B(δ∣w)
这里,
B
(
δ
∣
w
)
B(\delta|w)
B(δ∣w)是对数似然函数改变量的一个新的下界
求
B
(
δ
∣
w
)
B(\delta|w)
B(δ∣w)对
δ
i
\delta_i
δi的偏导数:
∂
B
(
δ
∣
w
)
∂
δ
i
=
∑
x
,
y
P
~
(
x
,
y
)
f
i
(
x
,
y
)
−
∑
x
P
~
(
x
)
∑
y
P
w
(
y
∣
x
)
f
i
(
x
,
y
)
e
δ
i
f
#
(
x
,
y
)
\frac{\partial B(\delta|w)}{\partial \delta_i}=\sum_{x,y}\widetilde{P}(x,y)f_i(x,y)-\sum_x\widetilde{P}(x)\sum_yP_w(y|x)f_i(x,y)e^{\delta_if^\#(x,y)}
∂δi∂B(δ∣w)=x,y∑P
(x,y)fi(x,y)−x∑P
(x)y∑Pw(y∣x)fi(x,y)eδif#(x,y)
令偏导数为0,则
∑
x
,
y
P
~
(
x
)
P
w
(
y
∣
x
)
f
i
(
x
,
y
)
e
δ
i
f
#
(
x
,
y
)
=
E
P
~
(
f
i
)
\sum_{x,y}\widetilde{P}(x)P_w(y|x)f_i(x,y)e^{\delta_if^\#(x,y)}=E_{\widetilde{P}}(f_i)
x,y∑P
(x)Pw(y∣x)fi(x,y)eδif#(x,y)=EP
(fi)
依次对
δ
i
\delta_i
δi求解方程可以求出
δ
\delta
δ
算法6.1 (改进的迭代尺度算法IIS)
输入:特征函数
f
1
,
f
2
,
.
.
.
,
f
n
f_1,f_2,...,f_n
f1,f2,...,fn;经验分布
P
~
(
x
,
y
)
\widetilde{P}(x,y)
P
(x,y),模型
P
w
(
y
∣
x
)
P_w(y|x)
Pw(y∣x)
输出:最优参数值
w
i
∗
w_i^*
wi∗;最优模型
P
w
∗
P_{w^*}
Pw∗
(1)对所有的
i
∈
{
1
,
2
,
.
.
.
,
n
}
i\in \{1,2,...,n\}
i∈{1,2,...,n},取初值
w
i
=
0
w_i=0
wi=0
(2)对每一
i
∈
{
1
,
2
,
.
.
.
,
n
}
i\in \{1,2,...,n\}
i∈{1,2,...,n}:
(a)令
δ
i
\delta_i
δi是方程
∑
x
,
y
P
~
(
x
)
P
(
y
∣
x
)
f
i
(
x
,
y
)
e
δ
i
f
#
(
x
,
y
)
=
E
p
~
(
f
i
)
\sum_{x,y}\widetilde{P}(x)P(y|x)f_i(x,y)e^{\delta_if^\#(x,y)}=E_{\widetilde{p}(f_i)}
x,y∑P
(x)P(y∣x)fi(x,y)eδif#(x,y)=Ep
(fi)
的解,这里
f
#
(
x
,
y
)
=
∑
i
=
1
n
f
i
(
x
,
y
)
f^\#(x,y)=\sum\limits_{i=1}^nf_i(x,y)
f#(x,y)=i=1∑nfi(x,y)
(b)更新
w
i
w_i
wi的值:
w
i
←
w
i
+
δ
i
w_i \leftarrow{w_i+\delta_i}
wi←wi+δi
(3)如果不是所有的
w
i
w_i
wi都收敛,重复步(2)
若
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
l
o
g
E
p
~
(
f
i
)
E
p
(
f
i
)
\delta_i=\frac{1}{M}log\frac{E_{\widetilde{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,需通过牛顿法,以
g
(
δ
i
)
=
0
g(\delta_i)=0
g(δi)=0表示方程
∑
x
,
y
P
~
(
x
)
P
(
y
∣
x
)
f
i
(
x
,
y
)
e
δ
i
f
#
(
x
,
y
)
=
E
p
~
(
f
i
)
\sum\limits_{x,y}\widetilde{P}(x)P(y|x)f_i(x,y)e^{\delta_if^\#(x,y)}=E_{\widetilde{p}(f_i)}
x,y∑P
(x)P(y∣x)fi(x,y)eδif#(x,y)=Ep
(fi),牛顿法通过迭代求
δ
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)即可
6.3.2 拟牛顿法
对于最大熵模型
P
w
(
y
∣
x
)
=
e
∑
i
=
1
n
w
i
f
i
(
x
,
y
)
∑
y
e
w
i
f
i
(
x
,
y
)
P_w(y|x)=\frac{e^{\sum\limits_{i=1}^nw_if_i(x,y)}}{\sum\limits_ye^{w_if_i(x,y)}}
Pw(y∣x)=y∑ewifi(x,y)ei=1∑nwifi(x,y)
目标函数:
m
i
n
w
∈
R
n
f
(
w
)
=
∑
x
P
~
(
x
)
l
o
g
∑
y
e
∑
i
=
1
n
w
i
f
i
(
x
,
y
)
−
∑
x
,
y
P
~
(
x
,
y
)
∑
i
=
1
n
w
i
f
i
(
x
,
y
)
\mathop{min}\limits_{w\in R^n}f(w)=\sum_x\widetilde{P}(x)log\sum_ye^{\sum\limits_{i=1}^nw_if_i(x,y)}-\sum_{x,y}\widetilde{P}(x,y)\sum\limits_{i=1}^nw_if_i(x,y)
w∈Rnminf(w)=x∑P
(x)logy∑ei=1∑nwifi(x,y)−x,y∑P
(x,y)i=1∑nwifi(x,y)
梯度:
g
(
w
)
=
(
∂
f
(
w
)
∂
w
1
,
∂
f
(
w
)
∂
w
2
,
.
.
.
,
∂
f
(
w
)
∂
w
n
)
T
g(w)=(\frac{\partial f(w)}{\partial w_1},\frac{\partial f(w)}{\partial w_2},...,\frac{\partial f(w)}{\partial w_n})^T
g(w)=(∂w1∂f(w),∂w2∂f(w),...,∂wn∂f(w))T
其中,
∂
f
(
w
)
∂
w
i
=
∑
x
,
y
P
~
(
x
)
P
w
(
y
∣
x
)
f
i
(
x
,
y
)
−
E
P
~
(
f
i
)
,
i
=
1
,
2
,
.
.
.
,
n
\frac{\partial f(w)}{\partial w_i}=\sum_{x,y}\widetilde{P}(x)P_w(y|x)f_i(x,y)-E_{\widetilde{P}(f_i)},i=1,2,...,n
∂wi∂f(w)=x,y∑P
(x)Pw(y∣x)fi(x,y)−EP
(fi),i=1,2,...,n
相应的拟牛顿法BFGS算法如下
算法6.2 (最大熵学习的BFGS算法)
输入:特征函数
f
1
,
f
2
,
.
.
.
,
f
n
f_1,f_2,...,f_n
f1,f2,...,fn;经验分布
P
~
(
x
,
y
)
\widetilde{P}(x,y)
P
(x,y),目标函数
f
(
w
)
f(w)
f(w),梯度
g
(
w
)
=
▽
f
(
w
)
g(w)=\triangledown f(w)
g(w)=▽f(w),精度要求
ε
\varepsilon
ε;
输出:最优参数值
w
i
∗
w_i^*
wi∗;最优模型
P
w
∗
(
y
∣
x
)
P_{w^*}(y|x)
Pw∗(y∣x)
(1)选定初始点
w
(
0
)
w^{(0)}
w(0),取$B_0为正定对称矩阵,置
k
=
0
k=0
k=0
(2)计算
g
k
=
g
(
w
(
k
)
)
g_k=g(w^{(k)})
gk=g(w(k)).若
∣
∣
g
k
∣
∣
<
ε
||g_k||<\varepsilon
∣∣gk∣∣<ε,则停止计算,得
w
∗
=
w
(
k
)
w^*=w^{(k)}
w∗=w(k) ;否则转(3)
(3)
B
k
p
k
=
−
g
k
B_kp_k=-g_k
Bkpk=−gk求出
p
k
p_k
pk
(4)一维搜索:求
λ
k
\lambda _k
λk使得
f
(
w
(
k
)
+
λ
k
p
k
)
=
m
i
n
λ
≥
0
f
(
w
(
k
)
+
λ
p
k
)
f(w^{(k)}+\lambda _kp_k)=\mathop{min}\limits_{\lambda \geq0}f(w^{(k)}+\lambda p_k)
f(w(k)+λkpk)=λ≥0minf(w(k)+λpk)
(5)置
w
(
k
+
1
)
=
w
(
k
)
+
λ
k
p
k
w^{(k+1)}=w^{(k)}+\lambda _kp_k
w(k+1)=w(k)+λkpk
(6)计算
g
k
+
1
=
g
(
w
(
k
+
1
)
)
g_{k+1}=g(w^{(k+1)})
gk+1=g(w(k+1)),若
∣
∣
g
k
+
1
∣
∣
<
ε
||g_{k+1}||<\varepsilon
∣∣gk+1∣∣<ε,则停止计算,得
w
∗
=
w
(
k
+
1
)
w^*=w^{(k+1)}
w∗=w(k+1);否则按下式计算
B
k
+
1
B_{k+1}
Bk+1
B
k
+
1
=
B
k
+
y
k
y
k
T
y
k
T
δ
k
−
B
k
δ
k
δ
k
T
B
k
δ
k
T
B
k
δ
k
B_{k+1}=B_k+\frac{y_ky_k^T}{y_k^T\delta_k}-\frac{B_k\delta_k\delta_k^TB_k}{\delta_k^TB_k\delta_k}
Bk+1=Bk+ykTδkykykT−δkTBkδkBkδkδkTBk
其中,
y
k
=
g
k
+
1
−
g
k
,
δ
k
=
w
(
k
+
1
)
−
w
(
k
)
y_k=g_{k+1}-g_k,\delta_k=w^{(k+1)}-w^{(k)}
yk=gk+1−gk,δk=w(k+1)−w(k)
(7)置
k
=
k
+
1
k=k+1
k=k+1,转(3)