条件随机场(conditional random field, CRF)是给定一组输入随机变量条件下,另一组输出随机变量的条件概率分布模型,这里仅讨论它在标注问题的应用,因此主要讲述线性链(linear chain)条件随机场。
一、概率无向图模型
在介绍条件随机场之前,需要了解概率无向图模型。概率无向图模型(probabilistic undirected graphical model),又称为马尔科夫随机场(Markov random field),它由结点(node)及连接结点的边(edge)组成,表示一个联合概率分布。
概率无向图需要满足以下三种条件:成对马尔科夫性(pairwise Markov property)、局部马尔科夫性(local Markov property)和全局马尔科夫性(global Markov property)。
成对马尔科夫性:设
u
u
u和
v
v
v是无向图
G
G
G中任意两个不直接相连的结点,其他所有结点为
O
O
O,它们对应的随机变量或随机变量组为
Y
u
,
Y
v
,
Y
O
Y_u,Y_v,Y_O
Yu,Yv,YO,成对马尔科夫性是指给定
Y
O
Y_O
YO的条件下,
Y
u
Y_u
Yu与
Y
v
Y_v
Yv是条件独立的,即
P
(
Y
u
,
Y
v
∣
Y
O
)
=
P
(
Y
u
∣
Y
O
)
P
(
Y
v
∣
Y
O
)
P(Y_u,Y_v|Y_O)=P(Y_u|Y_O)P(Y_v|Y_O)
P(Yu,Yv∣YO)=P(Yu∣YO)P(Yv∣YO) 局部马尔科夫性:设
v
v
v是无向图
G
G
G中任意一个节点,
W
W
W是所有与
v
v
v直接相连的结点,其他所有结点为
O
O
O,局部马尔科夫性是指给定
Y
W
Y_W
YW的条件下,
Y
v
Y_v
Yv与
Y
O
Y_O
YO是条件独立的,即
P
(
Y
v
,
Y
O
∣
Y
W
)
=
P
(
Y
v
∣
Y
W
)
P
(
Y
O
∣
Y
W
)
P(Y_v,Y_O|Y_W)=P(Y_v|Y_W)P(Y_O|Y_W)
P(Yv,YO∣YW)=P(Yv∣YW)P(YO∣YW) 全局马尔科夫性:设结点集合
A
,
B
A,B
A,B是在无向图
G
G
G中被结点集合
C
C
C分开的任意结点集合,全局马尔科夫性是指在给定
Y
C
Y_C
YC的条件下,
Y
A
Y_A
YA与
Y
B
Y_B
YB是条件独立的,即
P
(
Y
A
,
Y
B
∣
Y
C
)
=
P
(
Y
A
∣
Y
C
)
P
(
Y
B
∣
Y
C
)
P(Y_A,Y_B|Y_C)=P(Y_A|Y_C)P(Y_B|Y_C)
P(YA,YB∣YC)=P(YA∣YC)P(YB∣YC) 如果联合概率分布
P
(
Y
)
P(Y)
P(Y)满足成对、局部、全局马尔科夫性,就称此联合概率分布为概率无向图模型,或马尔科夫随机场。
接着,为了引出概率无向图的Hammersley-Clifford定理,先介绍团与最大团的概念。无向图
G
G
G中任何两个结点均有边连接的结点子集称为团(clique),若不能再加进任何一个结点使其成为一个更大的团,则称此团为最大团(maximal clique)。
概率无向图模型的因子分解(factorization),可以将联合概率分布
P
(
Y
)
P(Y)
P(Y)写作图中所有最大团
C
C
C上的函数
ψ
C
(
Y
C
)
\psi_C(Y_C)
ψC(YC)的乘积形式,即
P
(
Y
)
=
1
Z
∏
C
ψ
C
(
Y
C
)
P(Y)=\frac{1}{Z}\prod_C\psi_C(Y_C)
P(Y)=Z1C∏ψC(YC) 其中,
Z
Z
Z是规范化因子,有
Z
=
∑
Y
∏
C
ψ
C
(
Y
C
)
Z=\sum_Y\prod_C\psi_C(Y_C)
Z=Y∑C∏ψC(YC) 这便是概率无向图的Hammersley-Clifford定理,函数
ψ
C
(
Y
C
)
\psi_C(Y_C)
ψC(YC)称为势函数(potential function),由于要求
ψ
C
(
Y
C
)
\psi_C(Y_C)
ψC(YC)是严格正的,通常定义为指数函数
ψ
C
(
Y
C
)
=
e
−
E
(
Y
C
)
\psi_C(Y_C)=e^{-E(Y_C)}
ψC(YC)=e−E(YC)
二、条件随机场的定义与形式
首先定义条件随机场,设
X
X
X与
Y
Y
Y是随机变量,若随机变量
Y
Y
Y构成一个马尔科夫随机场,即
P
(
Y
v
∣
X
,
Y
w
,
w
̸
=
v
)
=
P
(
Y
v
∣
X
,
Y
w
,
w
∼
v
)
P(Y_v|X,Y_w,w\not= v)=P(Y_v|X,Y_w,w\sim v)
P(Yv∣X,Yw,w̸=v)=P(Yv∣X,Yw,w∼v)对任意结点
v
v
v成立,则称条件概率分布
P
(
Y
∣
X
)
P(Y|X)
P(Y∣X)为条件随机场,式中
w
∼
v
w\sim v
w∼v表示与
v
v
v有边相连的所有结点
w
w
w,
w
̸
=
v
w\not= v
w̸=v表示结点
v
v
v以外的所有结点。
当
X
,
Y
X,Y
X,Y均为线性链表示的随机变量序列,如果
P
(
Y
∣
X
)
P(Y|X)
P(Y∣X)构成条件随机场,即满足马尔科夫性
P
(
Y
i
∣
X
,
Y
1
,
⋯
 
,
Y
i
−
1
,
Y
i
+
1
,
⋯
 
,
Y
n
)
=
P
(
Y
i
∣
X
,
Y
i
−
1
,
Y
i
+
1
)
P(Y_i|X,Y_1,\cdots,Y_{i-1},Y_{i+1},\cdots,Y_n)=P(Y_i|X,Y_{i-1},Y_{i+1})
P(Yi∣X,Y1,⋯,Yi−1,Yi+1,⋯,Yn)=P(Yi∣X,Yi−1,Yi+1) 则称
P
(
Y
∣
X
)
P(Y|X)
P(Y∣X)为线性链条件随机场。
注意,上面是“
Y
Y
Y构成马尔科夫随机场”
→
\to
→“
P
(
Y
∣
X
)
P(Y|X)
P(Y∣X)为条件随机场”
→
\to
→“
P
(
Y
∣
X
)
P(Y|X)
P(Y∣X)是线性链条件随机场”。
根据上一节的Hammersley-Clifford定理,概率无向图的联合概率分布可以分解为最大团上势函数的乘积,对应到线性链条件随机场
P
(
Y
∣
X
)
P(Y|X)
P(Y∣X)中,其最大团均为两个结点的集合,它有两种,一种是相邻的两个
y
y
y,一种是对应的
x
x
x与
y
y
y。因此线性链条件随机场
P
(
Y
∣
X
)
P(Y|X)
P(Y∣X)在
X
X
X取值为
x
x
x的条件下,
Y
Y
Y取值为
y
y
y的条件概率可写为
P
(
y
∣
x
)
=
1
Z
(
x
)
e
∑
i
,
k
λ
k
t
k
(
y
i
−
1
,
y
i
,
x
,
i
)
+
∑
i
,
l
μ
l
s
l
(
y
i
,
x
,
i
)
P(y|x)=\frac{1}{Z(x)}e^{\sum_{i,k}\lambda_kt_k(y_{i-1},y_i,x,i)+\sum_{i,l}\mu_ls_l(y_i,x,i)}
P(y∣x)=Z(x)1e∑i,kλktk(yi−1,yi,x,i)+∑i,lμlsl(yi,x,i) 其中
Z
(
x
)
Z(x)
Z(x)是规范化因子,即
Z
(
x
)
=
∑
y
e
∑
i
,
k
λ
k
t
k
(
y
i
−
1
,
y
i
,
x
,
i
)
+
∑
i
,
l
μ
l
s
l
(
y
i
,
x
,
i
)
Z(x)=\sum_ye^{\sum_{i,k}\lambda_kt_k(y_{i-1},y_i,x,i)+\sum_{i,l}\mu_ls_l(y_i,x,i)}
Z(x)=y∑e∑i,kλktk(yi−1,yi,x,i)+∑i,lμlsl(yi,x,i) 式中,
t
k
t_k
tk和
s
l
s_l
sl是特征函数,
λ
k
\lambda_k
λk和
μ
l
\mu_l
μl是对应的权值。其中
t
k
t_k
tk是定义在边上的特征函数,称为转移特征;
s
l
s_l
sl是定义在结点上的特征函数,称为状态特征。通常
t
k
t_k
tk与
s
l
s_l
sl的取值为1或0,满足特征条件时取1,否则取0。
由于势函数的形式,线性链条件随机场跟逻辑回归等一样也是对数线性模型(log linear model)。
为了表述方便,考虑将两种特征放在一起表示。设有
K
1
K_1
K1个转移特征,
K
2
K_2
K2个状态特征,总特征数为
K
=
K
1
+
K
2
K=K_1+K_2
K=K1+K2,用
f
k
(
y
i
−
1
,
y
i
,
x
,
i
)
f_k(y_{i-1},y_i,x,i)
fk(yi−1,yi,x,i)来表述
t
k
(
y
i
−
1
,
y
i
,
x
,
i
)
t_k(y_{i-1},y_i,x,i)
tk(yi−1,yi,x,i)与
s
l
(
y
i
,
x
,
i
)
s_l(y_i,x,i)
sl(yi,x,i),则其在各个位置
i
i
i的求和记作
f
k
(
y
,
x
)
=
∑
i
=
1
n
f
k
(
y
i
−
1
,
y
i
,
x
,
i
)
,
k
=
1
,
2
,
⋯
 
,
K
f_k(y,x)=\sum_{i=1}^nf_k(y_{i-1},y_i,x,i), k=1,2,\cdots,K
fk(y,x)=i=1∑nfk(yi−1,yi,x,i), k=1,2,⋯,K 再用
w
k
w_k
wk来表述权值
λ
k
\lambda_k
λk与
μ
l
\mu_l
μl,将特征与权值均用向量表示,即
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),\cdots,f_K(y,x))^T
F(y,x)=(f1(y,x),f2(y,x),⋯,fK(y,x))T
w
=
(
w
1
,
w
2
,
⋯
 
,
w
K
)
T
w=(w_1,w_2,\cdots,w_K)^T
w=(w1,w2,⋯,wK)T 这样条件随机场可以写成向量
w
w
w与
F
(
x
,
y
)
F(x,y)
F(x,y)的内积形式
P
w
(
y
∣
x
)
=
e
w
⋅
F
(
y
,
x
)
Z
w
(
x
)
P_w(y|x)=\frac{e^{w\cdot F(y,x)}}{Z_w(x)}
Pw(y∣x)=Zw(x)ew⋅F(y,x) 其中
Z
w
(
x
)
=
∑
y
e
w
⋅
F
(
y
,
x
)
Z_w(x)=\sum_ye^{w\cdot F(y,x)}
Zw(x)=y∑ew⋅F(y,x) 除了用向量内积表示,条件随机场还可以用矩阵形式表示。首先对每一个位置
i
=
1
,
2
,
⋯
 
,
n
+
1
i=1,2,\cdots,n+1
i=1,2,⋯,n+1,定义一个
m
m
m阶矩阵
M
i
(
x
)
=
[
M
i
(
y
i
−
1
,
y
i
∣
x
)
]
M_i(x)=[M_i(y_{i-1},y_i|x)]
Mi(x)=[Mi(yi−1,yi∣x)]
M
i
(
y
i
−
1
,
y
i
∣
x
)
=
e
∑
k
=
1
K
w
k
f
k
(
y
i
−
1
,
y
i
,
x
,
i
)
M_i(y_{i-1},y_i|x)=e^{\sum_{k=1}^Kw_kf_k(y_{i-1},y_i,x,i)}
Mi(yi−1,yi∣x)=e∑k=1Kwkfk(yi−1,yi,x,i) 式中
m
m
m是
y
i
y_i
yi的可取个数,这样条件概率可表示为
P
w
(
y
∣
x
)
=
1
Z
w
(
x
)
∏
i
=
1
n
+
1
M
i
(
y
i
−
1
,
y
i
∣
x
)
P_w(y|x)=\frac{1}{Z_w(x)}\prod_{i=1}^{n+1}M_i(y_{i-1},y_i|x)
Pw(y∣x)=Zw(x)1i=1∏n+1Mi(yi−1,yi∣x)
Z
w
(
x
)
=
(
M
1
(
x
)
M
2
(
x
)
⋯
M
n
+
1
(
x
)
)
s
t
a
r
t
,
s
t
o
p
Z_w(x)=(M_1(x)M_2(x)\cdots M_{n+1}(x))_{start,stop}
Zw(x)=(M1(x)M2(x)⋯Mn+1(x))start,stop
y
0
=
s
t
a
r
t
y_0=start
y0=start与
y
n
+
1
=
s
t
o
p
y_{n+1}=stop
yn+1=stop表示开始状态与终止状态。
三、条件随机场的概率计算问题
跟上一篇博客中的隐马尔可夫模型相同,条件随机场的概率计算问题是给定输入序列
x
x
x和输出序列
y
y
y,计算条件概率
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)及其相应的数学期望。同样,可以引进前向-后向向量进行递归计算,这样的算法称为前向-后向算法。
首先对初始
i
=
0
i=0
i=0,定义前向向量
α
0
(
x
)
\alpha_0(x)
α0(x)
α
0
(
y
∣
x
)
=
{
1
,
y
=
s
t
a
r
t
0
,
否
则
\alpha_0(y|x)=\left\{\begin{array}{rcl}1,&y=start\\0,&否则 \end{array}\right.
α0(y∣x)={1,0,y=start否则 接着对
i
=
1
,
2
,
⋯
 
,
n
+
1
i=1,2,\cdots,n+1
i=1,2,⋯,n+1递推,递推公式为
α
i
T
(
y
i
∣
x
)
=
α
i
−
1
T
(
y
i
−
1
∣
x
)
[
M
i
(
y
i
−
1
,
y
i
∣
x
)
]
,
i
=
1
,
2
,
⋯
 
,
n
+
1
\alpha_i^T(y_i|x)=\alpha_{i-1}^T(y_{i-1}|x)[M_i(y_{i-1},y_i|x)], i=1,2,\cdots,n+1
αiT(yi∣x)=αi−1T(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
i
i的标记是
y
i
y_i
yi且到位置
i
i
i的前部分标记序列的非规范化概率,
y
i
y_i
yi可取值为
m
m
m个,所以
α
i
(
y
i
∣
x
)
\alpha_i(y_i|x)
αi(yi∣x)是
m
m
m维向量。上式又可以表示为
α
i
T
(
x
)
=
α
i
−
1
T
(
x
)
M
i
(
x
)
\alpha_i^T(x)=\alpha_{i-1}^T(x)M_i(x)
αiT(x)=αi−1T(x)Mi(x) 再来看后向向量,先对
i
=
n
+
1
i=n+1
i=n+1定义后向向量
β
n
+
1
(
x
)
\beta_{n+1}(x)
βn+1(x)
β
n
+
1
(
y
n
+
1
∣
x
)
=
{
1
,
y
n
+
1
=
s
t
o
p
0
,
否
则
\beta_{n+1}(y_{n+1}|x)=\left\{\begin{array}{rcl}1,&y_{n+1}=stop\\0,&否则\end{array}\right.
βn+1(yn+1∣x)={1,0,yn+1=stop否则 接着对
i
=
0
,
1
,
⋯
 
,
n
i=0,1,\cdots,n
i=0,1,⋯,n递推,递推公式为
β
i
(
y
i
∣
x
)
=
[
M
i
+
1
(
y
i
,
y
i
+
1
∣
x
)
]
β
i
+
1
(
y
i
+
1
∣
x
)
\beta_i(y_i|x)=[M_{i+1}(y_i,y_{i+1}|x)]\beta_{i+1}(y_{i+1}|x)
βi(yi∣x)=[Mi+1(yi,yi+1∣x)]βi+1(yi+1∣x) 式中,
β
i
(
y
i
∣
x
)
\beta_i(y_i|x)
βi(yi∣x)表示在位置
i
i
i的标记为
y
i
y_i
yi且从
i
+
1
i+1
i+1到
n
n
n的后部分标记序列的非规范化概率。同样的,上式也可以表示为
β
i
(
x
)
=
M
i
+
1
(
x
)
β
i
+
1
(
x
)
\beta_i(x)=M_{i+1}(x)\beta_{i+1}(x)
βi(x)=Mi+1(x)βi+1(x) 由前向-后向向量定义不难得到
Z
(
x
)
=
α
n
T
(
x
)
⋅
1
=
1
T
⋅
β
1
(
x
)
Z(x)=\alpha_n^T(x)\cdot 1=1^T\cdot \beta_1(x)
Z(x)=αnT(x)⋅1=1T⋅β1(x) 式中,
1
1
1是元素均为1的
m
m
m维列向量。
接着,根据前向-后向向量的定义,可得
P
(
Y
i
=
y
i
∣
x
)
=
α
i
T
(
y
i
∣
x
)
β
i
(
y
i
∣
x
)
Z
(
x
)
P(Y_i=y_i|x)=\frac{\alpha_i^T(y_i|x)\beta_i(y_i|x)}{Z(x)}
P(Yi=yi∣x)=Z(x)αiT(yi∣x)βi(yi∣x)
P
(
Y
i
−
1
=
y
i
−
1
,
Y
i
=
y
i
∣
x
)
=
α
i
−
1
T
(
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}^T(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−1T(yi−1∣x)Mi(yi−1,yi∣x)βi(yi∣x)
四、条件随机场的学习算法
条件随机场的学习问题是估计条件随机场模型参数的问题,学习方法包括极大似然估计和正则化的极大似然估计。具体的优化实现算法有改进迭代尺度法IIS、梯度下降法、拟牛顿法,这里暂时不详细介绍了。
五、条件随机场的预测算法
条件随机场的预测问题,指的是给定条件随机场
P
(
Y
∣
X
)
P(Y|X)
P(Y∣X)和输入序列
x
x
x,求条件概率最大的输出序列
y
∗
y^*
y∗,这里可以类比为隐马尔科夫模型,条件随机场
P
(
Y
∣
X
)
P(Y|X)
P(Y∣X)对应模型参数
λ
\lambda
λ,输入序列
x
x
x对应观测序列
O
O
O,最有可能的输出序列
y
∗
y^*
y∗对应最有可能的状态序列
I
∗
I^*
I∗。
对于预测问题,最有可能的输出序列
y
∗
y^*
y∗为
y
∗
=
arg
max
y
P
w
(
y
∣
x
)
y^*=\arg\max_yP_w(y|x)
y∗=argymaxPw(y∣x) 根据第二节所述,条件随机场可以写成向量
w
w
w与
F
(
x
,
y
)
F(x,y)
F(x,y)的内积形式,代入上式中得
y
∗
=
arg
max
y
e
w
⋅
F
(
y
,
x
)
Z
w
(
x
)
=
arg
max
y
[
w
⋅
F
(
y
,
x
)
]
y^*=\arg\max_y\frac{e^{w\cdot F(y,x)}}{Z_w(x)}=\arg\max_y[w\cdot F(y,x)]
y∗=argymaxZw(x)ew⋅F(y,x)=argymax[w⋅F(y,x)] 需要明确的是,
w
w
w与
F
(
y
,
x
)
F(y,x)
F(y,x)均是
K
K
K维向量,即
w
=
(
w
1
,
w
2
,
⋯
 
,
w
K
)
T
w=(w_1,w_2,\cdots,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),\cdots,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
)
,
k
=
1
,
2
,
⋯
 
,
K
f_k(y,x)=\sum_{i=1}^nf_k(y_{i-1},y_i,x,i), k=1,2,\cdots,K
fk(y,x)=i=1∑nfk(yi−1,yi,x,i), k=1,2,⋯,K 从上面三个式子可以看出,累加在内内积在外,如果我们把它变成累加在外内积在内,
y
∗
y^*
y∗的求解就可以用递推完成,这便是维特比算法。
根据上面三个式子,有
w
⋅
F
(
y
,
x
)
=
w
1
∑
i
=
1
n
f
1
(
y
i
−
1
,
y
i
,
x
,
i
)
+
w
2
∑
i
=
1
n
f
2
(
y
i
−
1
,
y
i
,
x
,
i
)
+
⋯
+
w
K
∑
i
=
1
n
f
K
(
y
i
−
1
,
y
i
,
x
,
i
)
w\cdot F(y,x)=w_1\sum_{i=1}^nf_1(y_{i-1},y_i,x,i)+w_2\sum_{i=1}^nf_2(y_{i-1},y_i,x,i)+\cdots+w_K\sum_{i=1}^nf_K(y_{i-1},y_i,x,i)
w⋅F(y,x)=w1i=1∑nf1(yi−1,yi,x,i)+w2i=1∑nf2(yi−1,yi,x,i)+⋯+wKi=1∑nfK(yi−1,yi,x,i) 即
w
⋅
F
(
y
,
x
)
=
∑
i
=
1
n
[
w
1
f
1
(
y
i
−
1
,
y
i
,
x
,
i
)
+
w
2
f
2
(
y
i
−
1
,
y
i
,
x
,
i
)
+
⋯
+
w
K
f
K
(
y
i
−
1
,
y
i
,
x
,
i
)
]
w\cdot F(y,x)=\sum_{i=1}^n[w_1f_1(y_{i-1},y_i,x,i)+w_2f_2(y_{i-1},y_i,x,i)+\cdots+w_Kf_K(y_{i-1},y_i,x,i)]
w⋅F(y,x)=i=1∑n[w1f1(yi−1,yi,x,i)+w2f2(yi−1,yi,x,i)+⋯+wKfK(yi−1,yi,x,i)] 如果我们令
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),\cdots,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 上式便可写为
w
⋅
F
(
y
,
x
)
=
∑
i
=
1
n
w
⋅
F
i
(
y
i
−
1
,
y
i
,
x
)
w\cdot F(y,x)=\sum_{i=1}^nw\cdot F_i(y_{i-1},y_i,x)
w⋅F(y,x)=i=1∑nw⋅Fi(yi−1,yi,x) 这样,就可以从
i
=
1
i=1
i=1递推到
i
=
n
i=n
i=n,求得最优路径
y
∗
=
(
y
1
∗
,
y
2
∗
,
⋯
 
,
y
n
∗
)
T
y^*=(y_1^*,y_2^*,\cdots,y_n^*)^T
y∗=(y1∗,y2∗,⋯,yn∗)T。
具体过程是是,首先求出
i
=
1
i=1
i=1的各个标记
j
=
1
,
2
,
⋯
 
,
m
j=1,2,\cdots,m
j=1,2,⋯,m的非规范化概率
δ
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,\cdots,m
δ1(j)=w⋅F1(y0=start,y1=j,x), j=1,2,⋯,m 接着递推
δ
i
(
l
)
=
max
1
≤
j
≤
m
{
δ
i
−
1
(
j
)
+
w
⋅
F
i
(
y
i
−
1
=
j
,
y
i
=
l
,
x
)
}
,
l
=
1
,
2
,
⋯
 
,
m
\delta_i(l)=\max_{1\le j\le m}\{\delta_{i-1}(j)+w\cdot F_i(y_{i-1}=j,y_i=l,x)\}, l=1,2,\cdots,m
δi(l)=1≤j≤mmax{δi−1(j)+w⋅Fi(yi−1=j,yi=l,x)}, l=1,2,⋯,m
ψ
i
(
l
)
=
arg
max
1
≤
j
≤
m
{
δ
i
−
1
(
j
)
+
w
⋅
F
i
(
y
i
−
1
=
j
,
y
i
=
l
,
x
)
}
,
l
=
1
,
2
,
⋯
 
,
m
\psi_i(l)=\arg\max_{1\le j\le m}\{\delta_{i-1}(j)+w\cdot F_i(y_{i-1}=j,y_i=l,x)\}, l=1,2,\cdots,m
ψi(l)=arg1≤j≤mmax{δi−1(j)+w⋅Fi(yi−1=j,yi=l,x)}, l=1,2,⋯,m 递推至
i
=
n
i=n
i=n后,可得最优路径的终点
y
n
∗
=
arg
max
1
≤
j
≤
m
δ
n
(
j
)
y_n^*=\arg\max_{1\le j\le m}\delta_n(j)
yn∗=arg1≤j≤mmaxδn(j) 由此终点返回
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,\cdots,1
yi∗=ψi+1(yi+1∗) i=n−1,n−2,⋯,1 最终求得最优路径
y
∗
=
(
y
1
∗
,
y
2
∗
,
⋯
 
,
y
n
∗
)
T
y^*=(y_1^*,y_2^*,\cdots,y_n^*)^T
y∗=(y1∗,y2∗,⋯,yn∗)T。