一、条件随机场的概率计算问题
条件随机场的概率计算问题描述:给定 linear-CRF的条件概率分布P(y|x), 在给定输入序列x和输出序列y时,计算条件概率 P ( Y i = y i ∣ x ) P(Y_i=y_i|x) P(Yi=yi∣x)和 P ( Y i − 1 = y i − 1 , Y i = y i ∣ x ) P(Y_{i-1}=y_{i-1}, Y_i=y_i|x) P(Yi−1=yi−1,Yi=yi∣x)以及对应的期望。
回顾一下HMM,当时解决这个问题使用的是前向算法/后向算法。这里类似,对每个位置 i =0,1,…,n+1 ,定义前向向量
α
i
(
x
)
\alpha_i(x)
αi(x) :
α
0
(
y
∣
x
)
=
{
1
,
y
=
s
t
a
r
t
0
,
o
t
h
e
r
w
i
s
e
\alpha_0(y|x)=\begin{cases}1, & y=start\\0, & otherwise\end{cases}
α0(y∣x)={1,0,y=startotherwise
α
i
(
y
i
∣
x
)
=
∑
y
i
−
1
α
i
−
1
(
y
i
−
1
∣
x
)
M
i
(
y
i
−
1
,
y
i
∣
x
)
,
i
=
1
,
2
,
.
.
.
,
n
+
1
\alpha_i(y_i|x)=\sum_{y_{i-1}}\alpha_{i-1}(y_{i-1}|x)M_i(y_{i-1},y_i|x),\quad i=1,2,...,n+1
αi(yi∣x)=∑yi−1αi−1(yi−1∣x)Mi(yi−1,yi∣x),i=1,2,...,n+1
α
i
(
y
i
∣
x
)
\alpha_i(y_i|x)
αi(yi∣x) 的含义是在位置 i 的标记
Y
i
=
y
i
Y_i=y_i
Yi=yi 且从起始位置到位置 i
的局部标记序列的非规范化概率,这个递推式子可以直观地把
M
i
(
y
i
−
1
,
y
i
∣
x
)
M_i(y_{i-1},y_i|x)
Mi(yi−1,yi∣x) 理解为“转移概率”,求和号表示对
y
i
−
1
y_{i-1}
yi−1 的所有可能取值求和。写成矩阵的形式就是下式:
α
i
⊤
(
x
)
=
α
i
−
1
⊤
(
x
)
M
i
(
x
)
\boldsymbol\alpha_i^{\top}(x)=\boldsymbol\alpha_{i-1}^{\top}(x)M_i(x)
αi⊤(x)=αi−1⊤(x)Mi(x)。这里的
α
i
(
x
)
\alpha_i(x)
αi(x) 是 m 维列向量,因为每个位置的标记都有 m 种可能取值,每一个维度都对应一个
α
i
(
y
i
∣
x
)
\alpha_i(y_i|x)
αi(yi∣x) 。
类似地,可以定义后向向量
β
i
(
x
)
\beta_i(x)
βi(x) :
β
n
+
1
(
y
n
+
1
∣
x
)
=
{
1
,
y
n
+
1
=
s
t
o
p
0
,
o
t
h
e
r
w
i
s
e
\beta_{n+1}(y_{n+1}|x)=\begin{cases}1, & y_{n+1}=stop\\0, & otherwise\end{cases}
βn+1(yn+1∣x)={1,0,yn+1=stopotherwise
β
i
(
y
i
∣
x
)
=
∑
y
i
+
1
M
i
+
1
(
y
i
,
y
i
+
1
∣
x
)
β
i
+
1
(
y
i
+
1
∣
x
)
,
i
=
0
,
1
,
.
.
.
,
n
\beta_i(y_i|x)=\sum_{y_{i+1}}M_{i+1}(y_{i},y_{i+1}|x)\beta_{i+1}(y_{i+1}|x),\quad i=0,1,...,n
βi(yi∣x)=∑yi+1Mi+1(yi,yi+1∣x)βi+1(yi+1∣x),i=0,1,...,n
β
i
(
y
i
∣
x
)
\beta_i(y_i|x)
βi(yi∣x) 的含义是在位置 i 的标记
Y
i
=
y
i
Y_i=y_i
Yi=yi 且从位置 i+1 到位置 n
的局部标记序列的非规范化概率。写成矩阵的形式就是:
β
i
⊤
(
x
)
=
M
i
+
1
(
x
)
β
i
+
1
(
x
)
\boldsymbol\beta_i^{\top}(x)=M_{i+1}(x)\boldsymbol\beta_{i+1}(x)
βi⊤(x)=Mi+1(x)βi+1(x)。
另外,规范化因子 Z ( x ) = α n ⊤ ( x ) 1 = 1 ⊤ β 1 ( x ) Z(x)=\boldsymbol\alpha^{\top}_n(x)\boldsymbol 1=\boldsymbol 1^{\top}\boldsymbol\beta_1(x) Z(x)=αn⊤(x)1=1⊤β1(x)。这里的 1 \boldsymbol 1 1是元素均为1的m维列向量。
1. 概率值的计算
给定一个CRF模型,那么 P ( Y i = y i ∣ x ) , P ( Y i − 1 = y i − 1 , Y i = y i ∣ x ) P(Y_i=y_i|x), P(Y_{i-1}=y_{i-1},Y_i=y_i|x) P(Yi=yi∣x),P(Yi−1=yi−1,Yi=yi∣x) 可以利用前向向量和后向向量计算这两个概率值分别为:
P ( Y i = y i ∣ x ) = α i ( y i ∣ x ) β i ( y i ∣ x ) Z ( x ) P(Y_i=y_i|x)=\frac{\alpha_i(y_i|x)\beta_i(y_i|x)}{Z(x)} P(Yi=yi∣x)=Z(x)αi(yi∣x)βi(yi∣x)
P ( Y i − 1 = y i − 1 , Y i = y i ∣ x ) = α i − 1 ( y i − 1 ∣ x ) M i ( y i − 1 , y i ∣ x ) β i ( y i ∣ x ) Z ( x ) P(Y_{i-1}=y_{i-1},Y_i=y_i|x)=\frac{\alpha_{i-1}(y_{i-1}|x)M_i(y_{i-1},y_i|x)\beta_i(y_i|x)}{Z(x)} P(Yi−1=yi−1,Yi=yi∣x)=Z(x)αi−1(yi−1∣x)Mi(yi−1,yi∣x)βi(yi∣x)
2. 期望值的计算
(1) 特征函数 f k f_k fk 关于条件分布 P(Y|X) 的期望:
E P ( Y ∣ x ) [ f k ] = ∑ y P ( Y = y ∣ x ) f k ( y , x ) = ∑ y P ( Y = y ∣ x ) ∑ i = 1 n + 1 f k ( y i − 1 , y i , x , i ) = ∑ i = 1 n + 1 ∑ y i − 1 y i f k ( y i − 1 , y i , x , i ) P ( Y i − 1 = y i − 1 , Y i = y i ∣ x ) = ∑ i = 1 n + 1 ∑ y i − 1 y i f k ( y i − 1 , y i , x , i ) α i − 1 ( y i − 1 ∣ x ) M i ( y i − 1 , y i ∣ x ) β i ( y i ∣ x ) Z ( x ) \begin{aligned}\mathbb E_{P(Y|x)}[f_k]&=\sum_{y}P(Y=y|x)f_k(y,x)\\&=\sum_{y}P(Y=y|x)\sum_{i=1}^{n+1} f_k(y_{i-1},y_i,x,i)\\&=\sum_{i=1}^{n+1}\sum_{y_{i-1}y_i}f_k(y_{i-1},y_i,x,i)P(Y_{i-1}=y_{i-1},Y_i=y_i|x)\\&=\sum_{i=1}^{n+1}\sum_{y_{i-1}y_i}f_k(y_{i-1},y_i,x,i)\frac{\alpha_{i-1}(y_{i-1}|x)M_i(y_{i-1},y_i|x)\beta_i(y_i|x)}{Z(x)}\end{aligned} EP(Y∣x)[fk]=y∑P(Y=y∣x)fk(y,x)=y∑P(Y=y∣x)i=1∑n+1fk(yi−1,yi,x,i)=i=1∑n+1yi−1yi∑fk(yi−1,yi,x,i)P(Yi−1=yi−1,Yi=yi∣x)=i=1∑n+1yi−1yi∑fk(yi−1,yi,x,i)Z(x)αi−1(yi−1∣x)Mi(yi−1,yi∣x)βi(yi∣x)
(2) 特征函数 f k f_k fk 关于联合分布 P(X,Y) 的期望
这里假设已知边缘分布 P(X) 的经验分布为 P ~ ( X ) \widetilde P(X) P (X),经验分布就是根据训练数据,用频数估计的方式得到 P ~ ( X = x ) = # x N \widetilde P(X=x)=\frac{\#x}{N} P (X=x)=N#x。
E P ( X , Y ) [ f k ] = ∑ x , y P ( x , y ) f k ( y , x ) = ∑ x P ~ ( x ) ∑ y P ( Y = y ∣ x ) ∑ i = 1 n + 1 f k ( y i − 1 , y i , x , i ) = ∑ x P ~ ( x ) ∑ i = 1 n + 1 ∑ y i − 1 y i f k ( y i − 1 , y i , x , i ) α i − 1 ( y i − 1 ∣ x ) M i ( y i − 1 , y i ∣ x ) β i ( y i ∣ x ) Z ( x ) \begin{aligned}\mathbb E_{P(X,Y)}[f_k]&=\sum_{x,y}P(x,y)f_k(y,x)\\&=\sum_x\widetilde P(x)\sum_{y}P(Y=y|x)\sum_{i=1}^{n+1} f_k(y_{i-1},y_i,x,i)\\&=\sum_x\widetilde P(x)\sum_{i=1}^{n+1}\sum_{y_{i-1}y_i}f_k(y_{i-1},y_i,x,i)\frac{\alpha_{i-1}(y_{i-1}|x)M_i(y_{i-1},y_i|x)\beta_i(y_i|x)}{Z(x)}\end{aligned} EP(X,Y)[fk]=x,y∑P(x,y)fk(y,x)=x∑P (x)y∑P(Y=y∣x)i=1∑n+1fk(yi−1,yi,x,i)=x∑P (x)i=1∑n+1yi−1yi∑fk(yi−1,yi,x,i)Z(x)αi−1(yi−1∣x)Mi(yi−1,yi∣x)βi(yi∣x)
对于给定的观测序列 x 和标记序列 y ,通过一次前向扫描计算 α i \alpha_i αi 及 Z ( x ) Z(x) Z(x) ,一次后向扫描计算 β i \beta_i βi,进而计算所有的概率值,以及特征的期望。
二、条件概率最大的输出序列预测问题(解码问题)
条件概率最大的输出序列预测问题描述:给定 linear-CRF的条件概率分布P(y|x),和输入序列x, 计算使条件概率最大的输出序列y*。类似于HMM,使用维特比算法可以很方便的解决这个问题。
1. linear-CRF模型维特比算法解码思路
之前已经提到可以将条件随机场用向量w和F(x,y)的内积表示:
P
w
(
y
∣
x
)
=
e
x
p
(
w
⋅
F
(
y
,
x
)
)
Z
w
(
x
)
P_w(y|x)=\frac{exp(w \cdot F(y,x))}{Z_w(x)}
Pw(y∣x)=Zw(x)exp(w⋅F(y,x))
要求的使条件概率最大的输出序列y*满足:
y
∗
=
arg
max
y
P
w
(
y
∣
x
)
=
arg
max
y
e
x
p
(
w
⋅
F
(
y
,
x
)
)
Z
w
(
x
)
=
arg
max
y
exp
(
w
⋅
F
(
y
,
x
)
)
=
arg
max
y
(
w
⋅
F
(
y
,
x
)
)
\begin{aligned} y^* &= \arg \ \max_{y} P_w(y|x)\\ &= \arg\ \max_{y} \frac{exp(w \cdot F(y,x))}{Z_w(x)}\\ &= \arg\ \max_{y} {\ \exp(w \cdot F(y,x))}\\ &= \arg\ \max_{y} {(w \cdot F(y,x))}\\ \end{aligned}
y∗=arg ymaxPw(y∣x)=arg ymaxZw(x)exp(w⋅F(y,x))=arg ymax exp(w⋅F(y,x))=arg ymax(w⋅F(y,x))
于是,条件随机场的预测问题成为求非规范概率最大的最优路径问题
max
y
(
w
⋅
F
(
y
,
x
)
)
(2.1.1)
\max_{y}(w \cdot F(y,x)) \tag{2.1.1}
ymax(w⋅F(y,x))(2.1.1)
这里,路径表示标记序列,其中:
w
=
(
w
1
,
w
2
,
.
.
.
,
w
K
)
T
w=(w_1, w_2,...,w_K)^T
w=(w1,w2,...,wK)T
F
(
y
,
x
)
=
(
f
1
(
y
,
x
)
,
f
2
(
y
,
x
)
,
.
.
.
,
f
K
(
y
,
x
)
)
T
F(y,x)=(f_1(y,x), f_2(y,x),...,f_K(y,x))^T
F(y,x)=(f1(y,x),f2(y,x),...,fK(y,x))T
f
k
(
y
,
x
)
=
∑
i
=
1
n
f
k
(
y
i
−
1
,
y
i
,
x
,
i
)
,
i
=
1
,
2
,
.
.
.
,
K
f_k(y,x)=\sum\limits_{i=1}^n f_k(y_{i-1},y_i,x,i), \ i=1,2,...,K
fk(y,x)=i=1∑nfk(yi−1,yi,x,i), i=1,2,...,K
注意这里只要求非规范化概率,为了求解最优路径,将式(2.1.1)改写为:
max
y
∑
i
=
1
n
(
w
⋅
F
i
(
y
i
−
1
,
y
i
,
x
)
)
\max_y \sum_{i=1}^n(w \cdot F_i(y_{i-1},y_i,x))
ymaxi=1∑n(w⋅Fi(yi−1,yi,x))
其中,
F
i
(
y
i
−
1
,
y
i
,
x
)
=
(
f
1
(
y
i
−
1
,
y
i
,
x
,
i
)
,
f
2
(
y
i
−
1
,
y
i
,
x
,
i
)
,
.
.
.
,
f
K
(
y
i
−
1
,
y
i
,
x
,
i
)
)
T
F_i(y_{i-1},y_i,x)=(f_1(y_{i-1},y_i,x,i),f_2(y_{i-1},y_i,x,i),...,f_K(y_{i-1},y_i,x,i))^T
Fi(yi−1,yi,x)=(f1(yi−1,yi,x,i),f2(yi−1,yi,x,i),...,fK(yi−1,yi,x,i))T 表示局部特征向量。
2. linear-CRF模型维特比算法流程
现在我们总结下 linear-CRF模型维特比算法流程:
输入:模型的特征向量F(y,x),和对应的K维权重向量w。观测序列
x
=
(
x
1
,
x
2
,
.
.
.
x
n
)
x=(x_1,x_2,...x_n)
x=(x1,x2,...xn),可能的标记个数m
输出:最优标记序列
y
∗
=
(
y
1
∗
,
y
2
∗
,
.
.
.
y
n
∗
)
y^* =(y_1^*,y_2^*,...y_n^*)
y∗=(y1∗,y2∗,...yn∗)
(1) 初始化
首先求出位置 1 的各个标记j=1,2,…,m的非规范化概率:
δ 1 ( j ) = w ⋅ F ( y 0 = s t a r t , y 1 = j , x ) = ∑ i = 1 n w i f i ( y 0 = s t a r t , y 1 = j , x , i ) } , j = 1 , 2 , . . . m \delta_{1}(j) =w \cdot F(y_0=start,y_1=j,x) = \sum\limits_{i=1}^nw_if_i(y_{0} =start,y_{1} = j,x,i)\},\; j=1,2,...m δ1(j)=w⋅F(y0=start,y1=j,x)=i=1∑nwifi(y0=start,y1=j,x,i)},j=1,2,...m
Ψ 1 ( j ) = s t a r t , j = 1 , 2 , . . . m \Psi_{1}(j) = start, \;j=1,2,...m Ψ1(j)=start,j=1,2,...m
注意这里默认构造了一个start节点。
(2) 对于i=2, 3, …,n,进行递推
求出位置 i 的各个标记j=1,2,…,m的非规范化概率,同时记录非规范化概率最大值的路径:
δ i ( l ) = max 1 ≤ j ≤ m { δ i − 1 ( j ) + ∑ i = 1 n w i f i ( y i − 1 = j , y i = l , x , i ) } , l = 1 , 2 , . . . m \delta_{i}(l) = \max_{1 \leq j \leq m}\{\delta_{i-1}(j) + \sum\limits_{i=1}^nw_if_i(y_{i-1} =j,y_{i} = l,x,i)\}\;, l=1,2,...m δi(l)=1≤j≤mmax{δi−1(j)+i=1∑nwifi(yi−1=j,yi=l,x,i)},l=1,2,...m
Ψ i ( l ) = a r g max 1 ≤ j ≤ m { δ i − 1 ( j ) + ∑ i = 1 n w i f i ( y i − 1 = j , y i = l , x , i ) } , l = 1 , 2 , . . . m \Psi_{i}(l) = arg\;\max_{1 \leq j \leq m}\{\delta_{i-1}(j) + \sum\limits_{i=1}^nw_if_i(y_{i-1} =j,y_{i} = l,x,i)\}\; ,l=1,2,...m Ψi(l)=arg1≤j≤mmax{δi−1(j)+i=1∑nwifi(yi−1=j,yi=l,x,i)},l=1,2,...m
注意这里的 δ i − 1 ( j ) \delta_{i-1}(j) δi−1(j)是要对所有可能的m个比较做比较。
(3) 终止
max y ( w ⋅ F ( y , x ) ) = max 1 ≤ j ≤ m δ n ( j ) \max_y(w \cdot F(y,x))=\max_{1 \leq j \leq m}\delta_n(j) ymax(w⋅F(y,x))=1≤j≤mmaxδn(j)
y n ∗ = a r g max 1 ≤ j ≤ m δ n ( j ) y_n^* = arg\;\max_{1 \leq j \leq m}\delta_n(j) yn∗=arg1≤j≤mmaxδn(j)
(4) 回溯
y i ∗ = Ψ i + 1 ( y i + 1 ∗ ) , i = n − 1 , n − 2 , . . . 1 y_i^* = \Psi_{i+1}(y_{i+1}^*)\;, i=n-1,n-2,...1 yi∗=Ψi+1(yi+1∗),i=n−1,n−2,...1
最终得到最优标记序列 y ∗ = ( y 1 ∗ , y 2 ∗ , . . . y n ∗ ) y^* =(y_1^*,y_2^*,...y_n^*) y∗=(y1∗,y2∗,...yn∗)
3. linear-CRF模型维特比算法实例
假设输入的都是三个词的句子,即
X
=
(
x
1
,
x
2
,
x
3
)
X=(x_1, x_2, x_3)
X=(x1,x2,x3),输出的词性标记为
Y
=
(
y
1
,
y
2
,
y
3
)
Y=(y_1,y_2,y_3)
Y=(y1,y2,y3),其中
Y
∈
{
1
(
名
词
)
,
2
(
动
词
)
}
Y \in \{1(名词), 2(动词)\}
Y∈{1(名词),2(动词)}。此外,设局部特征函数
t
k
t_k
tk、节点特征函数
s
l
s_l
sl和对应的权重
λ
k
,
μ
k
\lambda_k,\mu_k
λk,μk如下(这里只标记出取值为1的特征函数):
t
1
=
t
1
(
y
i
−
1
=
1
,
y
i
=
2
,
x
,
i
)
,
i
=
2
,
3
,
λ
1
=
1
t_1 =t_1(y_{i-1} = 1, y_i =2,x,i), \;\;i =2,3,\;\;\lambda_1=1
t1=t1(yi−1=1,yi=2,x,i),i=2,3,λ1=1
t
2
=
t
2
(
y
1
=
1
,
y
2
=
1
,
x
,
2
)
,
λ
2
=
0.5
t_2 =t_2(y_1 = 1, y_2 =1,x,2),\;\;\lambda_2=0.5
t2=t2(y1=1,y2=1,x,2),λ2=0.5
t
3
=
t
3
(
y
2
=
2
,
y
3
=
1
,
x
,
3
)
,
λ
3
=
1
t_3 =t_3(y_2 = 2, y_3 =1,x,3),\;\;\lambda_3=1
t3=t3(y2=2,y3=1,x,3),λ3=1
t
4
=
t
4
(
y
1
=
2
,
y
2
=
1
,
x
,
2
)
,
λ
4
=
1
t_4 =t_4(y_1 = 2, y_2 =1,x,2),\;\;\lambda_4=1
t4=t4(y1=2,y2=1,x,2),λ4=1
t
5
=
t
5
(
y
2
=
2
,
y
3
=
2
,
x
,
3
)
,
λ
5
=
0.2
t_5 =t_5(y_2 = 2, y_3 =2,x,3),\;\;\lambda_5=0.2
t5=t5(y2=2,y3=2,x,3),λ5=0.2
s
1
=
s
1
(
y
1
=
1
,
x
,
1
)
,
μ
1
=
1
s_1=s_1(y_1=1,x,1),\mu_1=1
s1=s1(y1=1,x,1),μ1=1
s
2
=
s
2
(
y
i
=
2
,
x
,
i
)
,
i
=
1
,
2
,
μ
2
=
0.5
s_2=s_2(y_i=2,x,i),\;\;i=1,2,\;\;\mu_2=0.5
s2=s2(yi=2,x,i),i=1,2,μ2=0.5
s
3
=
s
3
(
y
i
=
1
,
x
,
1
)
,
i
=
2
,
3
,
μ
3
=
0.8
s_3=s_3(y_i=1,x,1),\;\;i=2,3,\;\;\mu_3=0.8
s3=s3(yi=1,x,1),i=2,3,μ3=0.8
s
4
=
s
4
(
y
3
=
2
,
x
,
1
)
,
μ
4
=
0.5
s_4=s_4(y_3=2,x,1),\;\;\mu_4=0.5
s4=s4(y3=2,x,1),μ4=0.5
求最可能的输出标记序列 y ∗ = ( y 1 ∗ , y 2 ∗ , y 3 ∗ ) y^*=(y_1^*,y_2^*,y_3^*) y∗=(y1∗,y2∗,y3∗)。
答:
利用维特比算法求解最优路径问题: max ∑ i = 1 3 w ⋅ F i ( y i − 1 , y i , x ) \max \sum\limits_{i=1}^3 w \cdot F_i(y_{i-1},y_i,x) maxi=1∑3w⋅Fi(yi−1,yi,x),注意这里3是序列长度,对于某个位置i,在求 ∑ i = 1 3 w ⋅ F i ( y i − 1 , y i , x ) \sum\limits_{i=1}^3 w \cdot F_i(y_{i-1},y_i,x) i=1∑3w⋅Fi(yi−1,yi,x)的时候要把节点特征函数和局部特征函数都要加起来。
(1) 初始化
i=1 :
δ
1
(
j
)
=
w
⋅
F
1
(
y
0
=
s
t
a
r
t
,
y
1
=
j
,
x
)
,
j
=
1
,
2
,
.
.
.
,
m
\delta_1(j)=w \cdot F_1(y_0=start,y_1=j,x),\ j=1,2,...,m
δ1(j)=w⋅F1(y0=start,y1=j,x), j=1,2,...,m
δ
1
(
1
)
=
∑
i
=
1
3
w
i
f
i
(
y
o
=
1
,
y
1
=
1
,
x
)
=
μ
1
∗
s
1
=
1
\delta_1(1)=\sum\limits_{i=1}^3w_if_i(y_o=1,y_1=1,x)=\mu_1*s_1=1
δ1(1)=i=1∑3wifi(yo=1,y1=1,x)=μ1∗s1=1
δ
1
(
2
)
=
∑
i
=
1
3
w
i
f
i
(
y
o
=
1
,
y
1
=
2
,
x
)
=
μ
2
∗
s
2
=
0.5
\delta_1(2)=\sum\limits_{i=1}^3w_if_i(y_o=1,y_1=2,x)=\mu_2*s_2=0.5
δ1(2)=i=1∑3wifi(yo=1,y1=2,x)=μ2∗s2=0.5
(2) 递推
i=2 :
δ
2
(
l
)
=
max
j
{
δ
1
(
j
)
+
w
⋅
F
2
(
j
,
l
,
x
)
}
=
max
j
{
δ
1
(
1
)
+
w
⋅
F
2
(
1
,
l
,
x
)
,
δ
1
(
2
)
+
w
⋅
F
2
(
2
,
l
,
x
)
}
\delta_2(l)=\max\limits_j\{\delta_1(j)+w\cdot F_2(j,l,x)\}=\max\limits_j\{\delta_1(1)+w\cdot F_2(1,l,x),\ \delta_1(2)+w\cdot F_2(2,l,x)\}
δ2(l)=jmax{δ1(j)+w⋅F2(j,l,x)}=jmax{δ1(1)+w⋅F2(1,l,x), δ1(2)+w⋅F2(2,l,x)}
δ
2
(
1
)
=
max
j
{
δ
1
(
j
)
+
w
⋅
F
2
(
j
,
l
,
x
)
}
=
max
{
1
+
λ
2
∗
t
2
+
μ
3
∗
s
3
,
0.5
+
λ
4
∗
t
4
+
μ
3
∗
s
3
}
=
2.4
\delta_2(1)=\max\limits_j\{\delta_1(j)+w\cdot F_2(j,l,x)\}=\max\{1+\lambda_2*t_2+\mu_3*s_3,0.5+\lambda_4*t_4+\mu_3*s_3\}=2.4
δ2(1)=jmax{δ1(j)+w⋅F2(j,l,x)}=max{1+λ2∗t2+μ3∗s3,0.5+λ4∗t4+μ3∗s3}=2.4
Ψ
2
(
1
)
=
1
\Psi_2(1)=1
Ψ2(1)=1
δ
2
(
2
)
=
max
j
{
δ
1
(
j
)
+
w
⋅
F
2
(
j
,
l
,
x
)
}
=
max
{
1
+
λ
1
∗
t
1
+
μ
2
∗
s
2
,
0.5
+
μ
2
∗
s
2
}
=
2.5
\delta_2(2)=\max\limits_j\{\delta_1(j)+w\cdot F_2(j,l,x)\}=\max\{1+\lambda_1*t_1+\mu_2*s_2,0.5+\mu_2*s_2\}=2.5
δ2(2)=jmax{δ1(j)+w⋅F2(j,l,x)}=max{1+λ1∗t1+μ2∗s2,0.5+μ2∗s2}=2.5
Ψ
2
(
2
)
=
1
\Psi_2(2)=1
Ψ2(2)=1
i=3 :
δ
3
(
l
)
=
max
j
{
δ
2
(
j
)
+
w
⋅
F
3
(
j
,
l
,
x
)
}
=
max
j
{
δ
2
(
1
)
+
w
⋅
F
3
(
1
,
l
,
x
)
,
δ
2
(
2
)
+
w
⋅
F
3
(
2
,
l
,
x
)
}
\delta_3(l)=\max\limits_j\{\delta_2(j)+w\cdot F_3(j,l,x)\}=\max\limits_j\{\delta_2(1)+w\cdot F_3(1,l,x),\ \delta_2(2)+w\cdot F_3(2,l,x)\}
δ3(l)=jmax{δ2(j)+w⋅F3(j,l,x)}=jmax{δ2(1)+w⋅F3(1,l,x), δ2(2)+w⋅F3(2,l,x)}
δ
3
(
1
)
=
max
{
2.4
+
μ
5
∗
s
5
,
2.5
+
λ
3
∗
t
3
+
μ
3
∗
s
3
}
=
4.3
\delta_3(1)=\max\{2.4+\mu_5*s_5,2.5+\lambda_3*t_3+\mu_3*s_3\}=4.3
δ3(1)=max{2.4+μ5∗s5,2.5+λ3∗t3+μ3∗s3}=4.3
Ψ
3
(
1
)
=
2
\Psi_3(1)=2
Ψ3(1)=2
δ
3
(
2
)
=
max
{
2.4
+
λ
1
∗
t
1
+
μ
4
∗
s
4
,
2.5
+
λ
5
∗
t
5
+
μ
4
∗
s
4
}
=
3.9
\delta_3(2)=\max\{2.4+\lambda_1*t_1+\mu_4*s_4,2.5+\lambda_5*t_5+\mu_4*s_4\}=3.9
δ3(2)=max{2.4+λ1∗t1+μ4∗s4,2.5+λ5∗t5+μ4∗s4}=3.9
Ψ
3
(
2
)
=
1
\Psi_3(2)=1
Ψ3(2)=1
【原书《统计学习方法》有误,见勘误】
(3) 终止
max y ( w ⋅ F ( y , x ) ) = max δ 3 ( l ) = δ 3 ( 1 ) = 4.3 \max\limits_y(w\cdot F(y,x))=\max \ \delta_3(l)=\delta_3(1)=4.3 ymax(w⋅F(y,x))=max δ3(l)=δ3(1)=4.3
y 3 ∗ = arg max l ( δ 3 ( l ) ) = 1 y_3^*=\arg\ \max\limits_l(\delta_3(l))=1 y3∗=arg lmax(δ3(l))=1
(4) 回溯
y
2
∗
=
Ψ
3
(
y
3
∗
)
=
Ψ
3
(
1
)
=
2
y_2^*=\Psi_3(y_3^*)=\Psi_3(1)=2
y2∗=Ψ3(y3∗)=Ψ3(1)=2
y
1
∗
=
Ψ
2
(
y
3
2
∗
)
=
Ψ
2
(
2
)
=
1
y_1^*=\Psi_2(y_32*)=\Psi_2(2)=1
y1∗=Ψ2(y32∗)=Ψ2(2)=1
所以最终求出的最优标记序列是 y ∗ = ( y 1 ∗ , y 2 ∗ , y 3 ∗ ) = ( 1 , 2 , 1 ) y^*=(y_1^*,y_2^*,y_3^*)=(1,2,1) y∗=(y1∗,y2∗,y3∗)=(1,2,1)
三、条件随机场模型参数学习问题
条件随机场模型参数学习问题描述:给定训练数据集X和Y,学习linear-CRF的模型参数 w k w_k wk和条件概率 P w ( y ∣ x ) P_w(y|x) Pw(y∣x),这个问题的求解比HMM的学习算法简单的多,普通的梯度下降法,拟牛顿法都可以解决。
条件随机场模型实际上是定义在时序数据上的对数线形模型,其学习方法包括极大似然估计和正则化的极大似然估计。具体的优化实现算法有改进的迭代尺度法IIS、梯度下降法以及拟牛顿法。(其中,主流的CRF软件之CRF++采用了拟牛顿法+L-BFGS优化,所以着重看这种训练方法即可。)
已知训练数据集,由此可知经验概率分布
P
~
(
X
,
Y
)
\widetilde P(X,Y)
P
(X,Y) 可以通过极大化训练数据的对数似然函数来求模型参数
。
训练数据 { ( x ( j ) , y ( j ) ) } j = 1 N \{(x^{(j)},y^{(j)})\}_{j=1}^N {(x(j),y(j))}j=1N 的对数似然函数为:
L ( w ) = L P ~ ( P w ) = ln ∏ j = 1 N P w ( Y = y ( j ) ∣ x ( j ) ) = ∑ j = 1 N ln P w ( Y = y ( j ) ∣ x ( j ) ) = ∑ j = 1 N ln exp ∑ k = 1 K w k f k ( y ( j ) , x ( j ) ) Z w ( x ( j ) ) = ∑ j = 1 N ( ∑ k = 1 K w k f k ( y ( j ) , x ( j ) ) − ln Z w ( x ( j ) ) ) = ∑ j = 1 N ∑ k = 1 K w k f k ( y j , x j ) − ∑ j = 1 N ln Z w ( x j ) \begin{aligned}L(\textbf w)=L_{\widetilde P}(P_\textbf w) &=\ln\prod_{j=1}^NP_{\textbf w}(Y=y^{(j)}|x^{(j)})\\ &=\sum_{j=1}^N\ln P_{\textbf w}(Y=y^{(j)}|x^{(j)})\\ &=\sum_{j=1}^N\ln \frac{\exp\sum_{k=1}^Kw_kf_k(y^{(j)},x^{(j)})}{Z_{\textbf w}(x^{(j)})}\\ &=\sum_{j=1}^N\biggl(\sum_{k=1}^Kw_kf_k(y^{(j)},x^{(j)})-\ln Z_{\textbf w}(x^{(j)})\biggr)\\ &=\sum_{j=1}^N\sum_{k=1}^K w_kf_k(y_j,x_j)-\sum_{j=1}^N\ln Z_{\textbf w}(x_j)\\ \end{aligned} L(w)=LP (Pw)=lnj=1∏NPw(Y=y(j)∣x(j))=j=1∑NlnPw(Y=y(j)∣x(j))=j=1∑NlnZw(x(j))exp∑k=1Kwkfk(y(j),x(j))=j=1∑N(k=1∑Kwkfk(y(j),x(j))−lnZw(x(j)))=j=1∑Nk=1∑Kwkfk(yj,xj)−j=1∑NlnZw(xj)
改进的迭代尺度法通过迭代的方法不断优化对数似然函数改变量的下界,达到极大化对数似然函数的目的。
参考: