这是统计学习方法第十一章条件随机场的阅读笔记,包含所有公式的详细推导。
条件随机场(conditional random field,CRF)是给定一组输入随机变量条件下另一组输出随机变量的条件概率分布模型,其特点是假设输出随机变量构成马尔可夫随机场。
建议先阅读概率图简介,了解一些概率图的知识。
这一小节,建议先阅读最优化简介。
已知训练数据集,由此可知经验概率分布 P ~ ( X , Y ) \tilde P(X,Y) P~(X,Y)。可以通过极大化训练数据的对数似然函数来求模型参数。
训练数据的对数似然函数为
L ( w ) = L P ~ ( P w ) = log ∏ x , y P w ( y ∣ x ) P ~ ( x , y ) = ∑ x , y P ~ ( x , y ) log P w ( y ∣ x ) L(w) = L_{\tilde P}(P_w) = \log \prod_{x,y} P_w(y|x)^{\tilde P(x,y)} = \sum_{x,y}\tilde P(x,y) \log P_w(y|x) L(w)=LP~(Pw)=logx,y∏Pw(y∣x)P~(x,y)=x,y∑P~(x,y)logPw(y∣x)
当 P w P_w Pw是一个由式 ( 11.15 ) (11.15) (11.15)和式 ( 11.16 ) (11.16) (11.16)给出的条件随机场模型时,对数似然函数为
L ( w ) = ∑ x , y P ~ ( x , y ) log P w ( y ∣ x ) = ∑ x , y [ P ~ ( x , y ) log ( exp ∑ k = 1 K w k f k ( y , x ) Z w ( x ) ) ] = ∑ x , y [ P ~ ( x , y ) ( ∑ k = 1 K w k f k ( y , x ) − log Z w ( x ) ) ] = ∑ x , y [ P ~ ( x , y ) ∑ k = 1 K w k f k ( y , x ) − P ~ ( x , y ) log Z w ( x ) ] = ∑ x , y P ~ ( x , y ) ∑ k = 1 K w k f k ( y , x ) − ∑ x P ~ ( x ) ∑ y log Z w ( x ) P ( y ∣ x ) = ∑ x , y P ~ ( x , y ) ∑ k = 1 K w k f k ( y , x ) − ∑ x P ~ ( x ) ∑ y P ( y ∣ x ) log Z w ( x ) = ∑ x , y P ~ ( x , y ) ∑ k = 1 K w k f k ( y , x ) − ∑ x P ~ ( x ) log Z w ( x ) \begin{aligned} L(w) &=\sum_{x,y} \tilde P(x,y) \log P_w(y|x) \\ &= \sum_{x,y} \left[ \tilde P(x,y) \log \left(\frac{\exp \sum_{k=1}^K w_kf_k(y,x)}{Z_w(x)} \right) \right] \\ &= \sum_{x,y} \left[ \tilde P(x,y) \left( \sum_{k=1}^K w_kf_k(y,x) - \log Z_w(x) \right )\right] \\ &= \sum_{x,y} \left[ \tilde P(x,y) \sum_{k=1}^K w_kf_k(y,x) - \tilde P(x,y) \log Z_w(x)\right] \\ &= \sum_{x,y} \tilde P(x,y) \sum_{k=1}^K w_kf_k(y,x) - \sum_x \tilde P(x) \sum_y \log Z_w(x) P(y|x) \\ &= \sum_{x,y} \tilde P(x,y) \sum_{k=1}^K w_kf_k(y,x) - \sum_x \tilde P(x) \sum_y P(y|x) \log Z_w(x) \\ &= \sum_{x,y} \tilde P(x,y) \sum_{k=1}^K w_kf_k(y,x) - \sum_x \tilde P(x) \log Z_w(x) \end{aligned} L(w)=x,y∑P~(x,y)logPw(y∣x)=x,y∑[P~(x,y)log(Zw(x)exp∑k=1Kwkfk(y,x))]=x,y∑[P~(x,y)(k=1∑Kwkfk(y,x)−logZw(x))]=x,y∑[P~(x,y)k=1∑Kwkfk(y,x)−P~(x,y)logZw(x)]=x,y∑P~(x,y)k=1∑Kwkfk(y,x)−x∑P~(x)y∑logZw(x)P(y∣x)=x,y∑P~(x,y)k=1∑Kwkfk(y,x)−x∑P~(x)y∑P(y∣x)logZw(x)=x,y∑P~(x,y)k=1∑Kwkfk(y,x)−x∑P~(x)logZw(x)
改进的迭代尺度法通过迭代的方法不断优化对数似然函数改变量的下界,达到极大化对数似然函数的目的。
假设模型的当前参数向量为 w = ( w 1 , w 2 , ⋯ , w K ) T w=(w_1,w_2,\cdots,w_K)^T w=(w1,w2,⋯,wK)T,向量的增量为 δ = ( δ 1 , δ 2 , ⋯ , δ K ) T \delta=(\delta_1,\delta_2,\cdots,\delta_K)^T δ=(δ1,δ2,⋯,δK)T,更新参数向量为 w + δ = ( w 1 + δ 1 , w 2 + δ 2 , ⋯ , w K + δ K ) T w+\delta = (w_1+\delta_1,w_2+\delta_2,\cdots, w_K+ \delta_K)^T w+δ=(w1+δ1,w2+δ2,⋯,wK+δK)T。在每步迭代过程中,改进的迭代尺度法通过依次求解式 ( 11.36 ) (11.36) (11.36)和 ( 11.37 ) (11.37) (11.37),得到 δ = ( δ 1 , ⋯ , δ K ) T \delta=(\delta_1,\cdots,\delta_K)^T δ=(δ1,⋯,δK)T。
关于转移特征 t k t_k tk的更新方程为
E P ~ [ t k ] = ∑ x , y P ~ ( x , y ) ∑ i = 1 n + 1 t k ( y i − 1 , y i , x , i ) = ∑ x , y P ~ ( x ) P ( y ∣ x ) ∑ i = 1 n + 1 t k ( y i − 1 , y i , x , i ) exp ( δ k T ( x , y ) ) , k = 1 , ⋯ , K 1 (11.36) \begin{aligned} E_{\tilde P}[t_k] &= \sum_{x,y} \tilde P(x,y) \sum_{i=1}^{n+1} t_k(y_{i-1},y_i,x,i) \\ &= \sum_{x,y} \tilde P(x)P(y|x) \sum_{i=1}^{n+1} t_k(y_{i-1},y_i,x,i)\exp(\delta_k T(x,y)),\quad k=1,\cdots, K_1 \end{aligned} \tag{11.36} EP~[tk]=x,y∑P~(x,y)i=1∑n+1tk(yi−1,yi,x,i)=x,y∑P~(x)P(y∣x)i=1∑n+1tk(yi−1,yi,x,i)exp(δkT(x,y)),k=1,⋯,K1(11.36)
这里 T ( x , y ) T(x,y) T(x,y)是在数据 ( x , y ) (x,y) (x,y)中出现所有特征数的总和:
T ( x , y ) = ∑ k f k ( y , x ) = ∑ k = 1 K ∑ i = 1 n + 1 f k ( y i − 1 , y i , x , i ) (11.38) T(x,y) = \sum_k f_k(y,x) = \sum_{k=1}^K \sum_{i=1}^{n+1} f_k(y_{i-1},y_i,x,i) \tag{11.38} T(x,y)=k∑fk(y,x)=k=1∑Ki=1∑n+1fk(yi−1,yi,x,i)(11.38)
即在最优化简介改进的迭代尺度法中的$f^#(x,y) ,其中的公式 ,其中的公式 ,其中的公式(65)$中我们得到
∑ 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_if^\#(x,y)) = E_{\tilde P}(f_i) x,y∑P~(x)Pw(y∣x)fi(x,y)exp(δif#(x,y))=EP~(fi)
改成 T ( x , y ) T(x,y) T(x,y)即可得到 ( 11.36 ) (11.36) (11.36)式。
关于状态特征 s l s_l sl的更新方程为
E P ~ [ s l ] = ∑ x , y P ~ ( x , y ) ∑ i = 1 n + 1 s l ( y i , x , i ) = ∑ x , y P ~ ( x ) P ( y ∣ x ) ∑ i = 1 n + 1 s l ( y i , x , i ) exp ( δ K 1 + l T ( x , y ) ) , l = 1 , ⋯ , K 2 (11.37) \begin{aligned} E_{\tilde P}[s_l] &= \sum_{x,y} \tilde P(x,y) \sum_{i=1}^{n+1} s_l(y_i,x,i) \\ &= \sum_{x,y} \tilde P(x)P(y|x) \sum_{i=1}^{n+1} s_l(y_i,x,i)\exp(\delta_{K_1+l} T(x,y)),\quad l=1,\cdots, K_2 \end{aligned} \tag{11.37} EP~[sl]=x,y∑P~(x,y)i=1∑n+1sl(yi,x,i)=x,y∑P~(x)P(y∣x)i=1∑n+1sl(yi,x,i)exp(δK1+lT(x,y)),l=1,⋯,K2(11.37)
算法 11.1 (条件随机场模型学习的改进的迭代尺度法)
输入: 特征函数 t 1 , t 2 , ⋯ , t K 1 , s 1 , s 2 , ⋯ , s K 2 t_1,t_2,\cdots,t_{K_1},s_1,s_2,\cdots,s_{K_2} t1,t2,⋯,tK1,s1,s2,⋯,sK2;经验分布 P ~ ( X , Y ) \tilde P(X,Y) P~(X,Y);
输出: 最优参数值 w ^ \hat w w^;最优模型 P w ^ P_{\hat w} Pw^。
(1) 对所有 k ∈ { 1 , 2 , ⋯ , K } k \in \{1,2,\cdots,K\} k∈{1,2,⋯,K},取初值 w k = 0 w_k=0 wk=0。
(2) 对每一 k ∈ { 1 , 2 , ⋯ , K } k \in \{1,2,\cdots, K\} k∈{1,2,⋯,K}
(a) 当 k = 1 , 2 , ⋯ , K 1 k=1,2,\cdots,K_1 k=1,2,⋯,K1时,令 δ k \delta_k δk是方程
∑ x , y P ~ ( x ) P ( y ∣ x ) ∑ i = 1 n + 1 t k ( y i − 1 , y i , x , i ) exp ( δ k T ( x , y ) ) = E P ~ [ t k ] \sum_{x,y} \tilde P(x)P(y|x) \sum_{i=1}^{n+1} t_k(y_{i-1},y_i,x,i)\exp(\delta_k T(x,y)) =E_{\tilde P}[t_k] x,y∑P~(x)P(y∣x)i=1∑n+1tk(yi−1,yi,x,i)exp(δkT(x,y))=EP~[tk]
的解;
当 k = K 1 + l , l = 1 , 2 , ⋯ , K 2 k=K_1+l,l=1,2,\cdots,K_2 k=K1+l,l=1,2,⋯,K2时,令 δ K 1 + l \delta_{K_1+l} δK1+l是方程
∑ x , y P ~ ( x ) P ( y ∣ x ) ∑ i = 1 n + 1 s l ( y i , x , i ) exp ( δ K 1 + l T ( x , y ) ) = E P ~ [ s l ] \sum_{x,y} \tilde P(x)P(y|x) \sum_{i=1}^{n+1} s_l(y_i,x,i)\exp(\delta_{K_1+l} T(x,y)) = E_{\tilde P}[s_l] x,y∑P~(x)P(y∣x)i=1∑n+1sl(yi,x,i)exp(δK1+lT(x,y))=EP~[sl]
的解,式中 T ( x , y ) T(x,y) T(x,y)由式 ( 11.38 ) (11.38) (11.38)给出。
(b) 更新 w k w_k wk值: w k ← w k + δ k w_k \leftarrow w_k + \delta_k wk←wk+δk。
(3) 如果不是所有 w k w_k wk都收敛,重复步(2)。
条件随机场模型学习还可以应用牛顿法或拟牛顿法。对于条件随机场模型
P w ( y ∣ x ) = exp ( ∑ i = 1 n w i f i ( x , y ) ) ∑ y exp ( ∑ i = 1 n w i f i ( x , y ) ) (11.49) P_w(y|x) = \frac{\exp \left(\sum_{i=1}^n w_if_i(x,y) \right)}{\sum_y \exp \left(\sum_{i=1}^n w_if_i(x,y) \right)} \tag{11.49} Pw(y∣x)=∑yexp(∑i=1nwifi(x,y))exp(∑i=1nwifi(x,y))(11.49)
学习的优化目标函数是
min w ∈ R n f ( w ) = ∑ x P ~ ( x ) log ∑ y exp ( ∑ i = 1 n w i f i ( x , y ) ) − ∑ x , y P ~ ( x , y ) ∑ i = 1 n w i f i ( x , y ) (11.50) \min_{w\in \Bbb R^n} f(w) = \sum_{x} \tilde P(x)\log \sum_y \exp \left(\sum_{i=1}^n w_if_i(x,y)\right) - \sum_{x,y} \tilde P(x,y) \sum_{i=1}^n w_i f_i(x,y) \tag{11.50} w∈Rnminf(w)=x∑P~(x)logy∑exp(i=1∑nwifi(x,y))−x,y∑P~(x,y)i=1∑nwifi(x,y)(11.50)
梯度函数是
g ( w ) = ∑ x , y P ~ ( x ) P w ( y ∣ x ) f ( x , y ) − E P ~ ( f ) (11.51) g(w) = \sum_{x,y} \tilde P(x)P_w(y|x) f(x,y) - E_{\tilde P}(f) \tag{11.51} g(w)=x,y∑P~(x)Pw(y∣x)f(x,y)−EP~(f)(11.51)
算法11.2 条件随机场模型学习的BFGS算法
输入:特征函数 f 1 , f 2 , ⋯ , f n f_1,f_2,\cdots,f_n f1,f2,⋯,fn;经验分布 P ~ ( x , y ) \tilde P(x,y) P~(x,y);
输出:最优化参数 w ^ \hat w w^;最优模型 P w ^ ( y ∣ x ) P_{\hat w}(y|x) Pw^(y∣x)。
(1) 选定初始值 w ( 0 ) w^{(0)} w(0),取 B 0 B_0 B0为正定对称矩阵,置 k = 0 k=0 k=0。
(2) 计算 g k = g ( w ( k ) ) g_k=g(w^{(k)}) gk=g(w(k))。若 ∣ ∣ g k ∣ ∣ = 0 ||g_k||=0 ∣∣gk∣∣=0,则停止计算;否则转(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 ) = min λ ≥ 0 f ( w ( k ) + λ p k ) f(w^{(k)} + \lambda_k p_k) = \min_{\lambda \geq 0} 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 ∣ ∣ = 0 ||g_{k+1} || = 0 ∣∣gk+1∣∣=0,则停止计算;否则,按式下式算出 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^T_k}{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,\quad \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)。
条件随机场的预测问题是给定条件随机场 P ( Y ∣ X ) P(Y|X) P(Y∣X)和输入序列(观测序列) x x x,求条件概率最大的输出序列(标记序列) y ∗ y^* y∗,即对观测序列进行标注。条件随机场的预测算法是著名的维特比算法,可以参考隐马尔可夫模型那一章。
由式 ( 11.19 ) (11.19) (11.19)可得:
y ∗ = arg max y P w ( y ∣ x ) = arg max y exp ( w ⋅ F ( y , x ) ) Z w ( x ) = arg max y exp ( w ⋅ F ( y , x ) ) Z w ( x ) 与 y 无关 = 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)) & Z_w(x)与y无关\\ &= \arg\,\max_y (w \cdot F(y,x)) & 指数函数可以去掉 \end{aligned} y∗=argymaxPw(y∣x)=argymaxZw(x)exp(w⋅F(y,x))=argymaxexp(w⋅F(y,x))=argymax(w⋅F(y,x))Zw(x)与y无关指数函数可以去掉
于是,条件随机场的预测问题成为求非规范化概率最大的最优路径问题
max y ( w ⋅ F ( y , x ) ) (11.52) \max_y (w \cdot F(y,x)) \tag{11.52} ymax(w⋅F(y,x))(11.52)
这里,路径表示标记序列。其中,
w = ( w 1 , w 2 , ⋯ , w K ) T F ( y , x ) = ( f 1 ( y , x ) , f 2 ( y , x ) , ⋯ , f K ( y , x ) ) T f k ( y , x ) = ∑ i = 1 n f k ( y i − 1 , y i , x , i ) , k = 1 , 2 , ⋯ , K w=(w_1,w_2,\cdots,w_K)^T \\ F(y,x) = (f_1(y,x),f_2(y,x),\cdots,f_K(y,x))^T \\ f_k(y,x) = \sum_{i=1}^n f_k(y_{i-1},y_i,x,i),\quad k=1,2,\cdots, K w=(w1,w2,⋯,wK)TF(y,x)=(f1(y,x),f2(y,x),⋯,fK(y,x))Tfk(y,x)=i=1∑nfk(yi−1,yi,x,i),k=1,2,⋯,K
注意,这里只需要计算非规范化概率,而不必计算概率,可以大大提高效率。
为了求解最优路径,将式 ( 11.52 ) (11.52) (11.52)写成如下形式:
max y ∑ i = 1 n w ⋅ F ( y i − 1 , y i , x ) (11.53) \max_y \sum_{i=1}^n w\cdot F(y_{i-1},y_i,x) \tag{11.53} ymaxi=1∑nw⋅F(yi−1,yi,x)(11.53)
其中,
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
是局部特征向量。
下面叙述维特比算法。首先要求出位置1的各个标记 j = 1 , 2 , ⋯ , m j=1,2,\cdots,m j=1,2,⋯,m的非规范化概率:
δ 1 ( j ) = w ⋅ F 1 ( y 0 = start , y 1 = j , x ) , j = 1 , 2 , ⋯ , m (11.54) \delta_1(j) = w \cdot F_1(y_0=\text{start},y_1=j,x),\quad j=1,2,\cdots,m \tag{11.54} δ1(j)=w⋅F1(y0=start,y1=j,x),j=1,2,⋯,m(11.54)
然后,由递推公式,求出到位置 i i i的各个标记 l = 1 , 2 , ⋯ , m l=1,2,\cdots,m l=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 (11.55) \delta_i(l) = \max_{1 \leq j \leq m} \{\delta_{i-1}(j) + w\cdot F_i(y_{i-1}=j,y_i=l,x)\},\quad l=1,2,\cdots ,m \tag{11.55} δi(l)=1≤j≤mmax{δi−1(j)+w⋅Fi(yi−1=j,yi=l,x)},l=1,2,⋯,m(11.55)
Ψ 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 (11.56) \Psi_i(l) = \arg \,\max_{1 \leq j \leq m} \{\delta_{i-1}(j) + w\cdot F_i(y_{i-1}=j,y_i=l,x)\},\quad l=1,2,\cdots ,m \tag{11.56} Ψi(l)=arg1≤j≤mmax{δi−1(j)+w⋅Fi(yi−1=j,yi=l,x)},l=1,2,⋯,m(11.56)
直到 i = n i=n i=n时终止。这是求得非规范化概率的最大值为
max y ( w ⋅ F ( y , x ) ) = max 1 ≤ j ≤ m δ n ( j ) (11.57) \max_y (w\cdot F(y,x)) = \max_{1\leq j\leq m} \delta_n(j) \tag{11.57} ymax(w⋅F(y,x))=1≤j≤mmaxδn(j)(11.57)
以及最优路径的终点
y n ∗ = arg max 1 ≤ j ≤ m δ n ( j ) (11.58) y_n^* = \arg \, \max_{1 \leq j \leq m} \delta_n(j) \tag{11.58} yn∗=arg1≤j≤mmaxδn(j)(11.58)
由此最优路径终点返回,
y i ∗ = Ψ i + 1 ( y i + 1 ∗ ) , i = n − 1 , n − 2 , ⋯ , 1 (11.59) y_i^* =\Psi_{i+1}(y_{i+1}^*),\quad i=n-1,n-2,\cdots ,1 \tag{11.59} yi∗=Ψi+1(yi+1∗),i=n−1,n−2,⋯,1(11.59)
求得最优路径 y ∗ = ( y 1 ∗ , y 2 ∗ , ⋯ , y n ∗ ) T y^*=(y_1^*,y_2^*,\cdots,y_n^*)^T y∗=(y1∗,y2∗,⋯,yn∗)T。
这样,就得到条件随机场预测的维特比算法。
算法 11.3(条件随机场预测的维特比算法)
输入:模型特征向量 F ( y , x ) F(y,x) F(y,x)和权值向量 w w w,观测序列 x = ( x 1 , x 2 , ⋯ , x n ) x=(x_1,x_2,\cdots,x_n) x=(x1,x2,⋯,xn);
输出:最优路径 y ∗ = ( y 1 ∗ , y 2 ∗ , ⋯ , y n ∗ ) y^*=(y_1^*,y_2^*,\cdots,y_n^*) y∗=(y1∗,y2∗,⋯,yn∗)。
(1) 初始化
δ 1 ( j ) = w ⋅ F 1 ( y 0 = start , y 1 = j , x ) , j = 1 , 2 , ⋯ , m \delta_1(j) = w\cdot F_1(y_0={\text{start},y_1=j,x}),\quad j=1,2,\cdots,m δ1(j)=w⋅F1(y0=start,y1=j,x),j=1,2,⋯,m
(2) 递推。对 i = 2 , 3 , ⋯ , n i=2,3,\cdots, n i=2,3,⋯,n
δ i ( l ) = max 1 ≤ j ≤ m { δ i − 1 ( j ) + w ⋅ F i ( y i − 1 = j , y i = 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 \delta_i(l) = \max_{1 \leq j \leq m} \{\delta_{i-1}(j) + w\cdot F_i(y_{i-1}=j,y_i=l,x)\},\quad l=1,2,\cdots ,m\\ \Psi_i(l) = \arg \,\max_{1 \leq j \leq m} \{\delta_{i-1}(j) + w\cdot F_i(y_{i-1}=j,y_i=l,x)\},\quad 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)=arg1≤j≤mmax{δi−1(j)+w⋅Fi(yi−1=j,yi=l,x)},l=1,2,⋯,m
(3) 终止
max y ( w ⋅ F ( y , x ) ) = max 1 ≤ j ≤ m δ n ( j ) y n ∗ = arg max 1 ≤ j ≤ m δ n ( j ) \max_y (w\cdot F(y,x)) = \max_{1\leq j\leq m} \delta_n(j) \\ y_n^* = \arg \, \max_{1 \leq j \leq m} \delta_n(j) ymax(w⋅F(y,x))=1≤j≤mmaxδ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}^*),\quad 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 ∗ ) y^*=(y_1^*,y_2^*,\cdots,y_n^*) y∗=(y1∗,y2∗,⋯,yn∗)。
我们来看一个例题,理解一下。
例 11.3 在例11.1中,用维特比算法求给定的输入序列 x x x对应的最优输出序列 y ∗ = ( y 1 ∗ , y 2 ∗ , y 3 ∗ ) y^*=(y_1^*,y_2^*,y_3^*) y∗=(y1∗,y2∗,y3∗)。
解 特征函数及对应的权值均在例11.1中给出。
现用维特比算法求最优路径问题:
max ∑ i = 1 3 w ⋅ F i ( y i − 1 , y i , x ) \max\sum_{i=1}^3 w \cdot F_i(y_{i-1},y_i,x) maxi=1∑3w⋅Fi(yi−1,yi,x)
(1) 初始化
δ 1 ( j ) = w ⋅ F 1 ( y 0 = start , y 1 = j , x ) , j = 1 , 2 \delta_1(j) = w\cdot F_1(y_0={\text{start},y_1=j,x}), \quad j=1,2 δ1(j)=w⋅F1(y0=start,y1=j,x),j=1,2
i = 1 i=1 i=1有
δ 1 ( 1 ) = μ 1 s 1 = 1 δ 2 ( 2 ) = μ 2 s 2 = 0.5 \delta_1(1) = \mu_1 s_1 = 1 \\ \delta_2(2) = \mu_2 s_2 = 0.5 δ1(1)=μ1s1=1δ2(2)=μ2s2=0.5
(2) 递推。 i = 2 i=2 i=2
δ 2 ( l ) = max 1 ≤ j ≤ m { δ 1 ( j ) + w ⋅ F 2 ( j , l , x ) } δ 2 ( 1 ) = max { 1 + λ 2 t 2 + μ 3 s 3 , 0.5 + λ 4 t 4 + μ 3 s 3 } = 2.4 , Ψ 2 ( 1 ) = 1 δ 2 ( 2 ) = max { 1 + λ 1 t 1 + μ 2 s 2 , 0.5 + μ 2 s 2 } = 2.5 , Ψ 2 ( 2 ) = 1 \delta_2(l) = \max_{1 \leq j \leq m} \{\delta_{1}(j) + w\cdot F_2(j,l,x)\}\\ \delta_2(1) = \max \{ 1 + \lambda_2t_2 + \mu_3 s_3, 0.5+\lambda_4t_4+\mu_3s_3\} = 2.4, \quad \Psi_2(1)=1 \\ \delta_2(2) = \max \{ 1 + \lambda_1t_1 + \mu_2 s_2, 0.5+\mu_2s_2\} = 2.5, \quad \Psi_2(2)=1 δ2(l)=1≤j≤mmax{δ1(j)+w⋅F2(j,l,x)}δ2(1)=max{1+λ2t2+μ3s3,0.5+λ4t4+μ3s3}=2.4,Ψ2(1)=1δ2(2)=max{1+λ1t1+μ2s2,0.5+μ2s2}=2.5,Ψ2(2)=1
i = 3 i=3 i=3
δ 3 ( l ) = max 1 ≤ j ≤ m { δ 2 ( j ) + w ⋅ F 3 ( j , l , x ) } δ 3 ( 1 ) = max { 2.4 + μ 3 s 3 , 2.5 + λ 3 t 3 + μ 3 s 3 } = 4.3 , Ψ 3 ( 1 ) = 2 δ 3 ( 2 ) = max { 2.4 + λ 1 t 1 + μ 4 s 4 , 2.5 + λ 5 t 5 + μ 4 s 4 } = 3.9 , Ψ 3 ( 2 ) = 1 \delta_3(l) = \max_{1 \leq j \leq m} \{\delta_{2}(j) + w\cdot F_3(j,l,x)\}\\ \delta_3(1) = \max \{ 2.4 + \mu_3 s_3, 2.5+\lambda_3t_3+\mu_3s_3\} = 4.3, \quad \Psi_3(1)=2 \\ \delta_3(2) = \max \{ 2.4 + \lambda_1t_1+ \mu_4 s_4, 2.5+\lambda_5 t_5 + \mu_4s_4\} = 3.9, \quad \Psi_3(2)=1 δ3(l)=1≤j≤mmax{δ2(j)+w⋅F3(j,l,x)}δ3(1)=max{2.4+μ3s3,2.5+λ3t3+μ3s3}=4.3,Ψ3(1)=2δ3(2)=max{2.4+λ1t1+μ4s4,2.5+λ5t5+μ4s4}=3.9,Ψ3(2)=1
(3) 终止
max y ( w ⋅ F ( y , x ) ) = max δ 3 ( l ) = δ 3 ( 1 ) = 4.3 y 3 = arg max l δ 3 ( l ) = 1 \max_y (w \cdot F(y,x)) = \max \delta_3(l) = \delta_3(1) = 4.3 \\ y^3 = \arg \max_l \delta_3(l) = 1 ymax(w⋅F(y,x))=maxδ3(l)=δ3(1)=4.3y3=arglmaxδ3(l)=1
(4) 返回
y 2 ∗ = Ψ 3 ( y 3 ∗ ) = Ψ 3 ( 1 ) = 2 y 1 ∗ = Ψ 2 ( y 2 ∗ ) = Ψ 2 ( 2 ) = 1 y^*_2=\Psi_3(y^*_3) = \Psi_3(1) = 2\\ y^*_1=\Psi_2(y^*_2) = \Psi_2(2) = 1 y2∗=Ψ3(y3∗)=Ψ3(1)=2y1∗=Ψ2(y2∗)=Ψ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)
HMM(隐马尔可夫模型)和CRF(条件随机场)都是序列标注模型,它们有一些相同之处:
HMM和CRF的主要区别在于:
然而,HMM和CRF都是用于序列建模的模型,它们在某些应用场景下有着协同互补的作用。HMM在处理长序列、低维数据时比较有效率,而CRF则适合处理具有多种特征描述的高维序列,例如分词和语句分析任务中通常会使用CRF来进行序列标注。在实际应用中选择使用HMM还是CRF要根据具体问题和数据特征的不同需求而定。