《统计学习方法》——条件随机场(下)

引言

这是统计学习方法第十一章条件随机场的阅读笔记,包含所有公式的详细推导。

条件随机场(conditional random field,CRF)是给定一组输入随机变量条件下另一组输出随机变量的条件概率分布模型,其特点是假设输出随机变量构成马尔可夫随机场。

建议先阅读概率图简介,了解一些概率图的知识。


  1. 《统计学习方法》——条件随机场(上)
  2. 《统计学习方法》——条件随机场(中)
  3. 《统计学习方法》——条件随机场(下)
  4. 《统计学习方法》——条件随机场#习题解答#

条件随机场的学习算法

这一小节,建议先阅读最优化简介。

改进的迭代尺度法

已知训练数据集,由此可知经验概率分布 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,yPw(yx)P~(x,y)=x,yP~(x,y)logPw(yx)
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,yP~(x,y)logPw(yx)=x,y[P~(x,y)log(Zw(x)expk=1Kwkfk(y,x))]=x,y[P~(x,y)(k=1Kwkfk(y,x)logZw(x))]=x,y[P~(x,y)k=1Kwkfk(y,x)P~(x,y)logZw(x)]=x,yP~(x,y)k=1Kwkfk(y,x)xP~(x)ylogZw(x)P(yx)=x,yP~(x,y)k=1Kwkfk(y,x)xP~(x)yP(yx)logZw(x)=x,yP~(x,y)k=1Kwkfk(y,x)xP~(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,yP~(x,y)i=1n+1tk(yi1,yi,x,i)=x,yP~(x)P(yx)i=1n+1tk(yi1,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)=kfk(y,x)=k=1Ki=1n+1fk(yi1,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,yP~(x)Pw(yx)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,yP~(x,y)i=1n+1sl(yi,x,i)=x,yP~(x)P(yx)i=1n+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,yP~(x)P(yx)i=1n+1tk(yi1,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,yP~(x)P(yx)i=1n+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 wkwk+δ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(yx)=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} wRnminf(w)=xP~(x)logyexp(i=1nwifi(x,y))x,yP~(x,y)i=1nwifi(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,yP~(x)Pw(yx)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^(yx)

(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+1gk,δk=w(k+1)w(k)
(7) 置 k = k + 1 k=k+1 k=k+1,转(3)。

条件随机场的预测算法

条件随机场的预测问题是给定条件随机场 P ( Y ∣ X ) P(Y|X) P(YX)和输入序列(观测序列) 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(yx)=argymaxZw(x)exp(wF(y,x))=argymaxexp(wF(y,x))=argymax(wF(y,x))Zw(x)y无关指数函数可以去掉
于是,条件随机场的预测问题成为求非规范化概率最大的最优路径问题
max ⁡ y ( w ⋅ F ( y , x ) ) (11.52) \max_y (w \cdot F(y,x)) \tag{11.52} ymax(wF(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=1nfk(yi1,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=1nwF(yi1,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(yi1,yi,x)=(f1(yi1,yi,x,i),f2(yi1,yi,x,i),,fK(yi1,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)=wF1(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)=1jmmax{δi1(j)+wFi(yi1=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)=arg1jmmax{δi1(j)+wFi(yi1=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(wF(y,x))=1jmmaxδ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=arg1jmmaxδ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=n1,n2,,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)=wF1(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)=1jmmax{δi1(j)+wFi(yi1=j,yi=l,x)},l=1,2,,mΨi(l)=arg1jmmax{δi1(j)+wFi(yi1=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(wF(y,x))=1jmmaxδn(j)yn=arg1jmmaxδ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=n1,n2,,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=13wFi(yi1,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)=wF1(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)=1jmmax{δ1(j)+wF2(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)=1jmmax{δ2(j)+wF3(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(wF(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 vs CRF

HMM(隐马尔可夫模型)和CRF(条件随机场)都是序列标注模型,它们有一些相同之处:

  1. 都使用马尔可夫假设来建立模型,即当前状态只与前面的有限个状态有关。
  2. 都可以被用来解决序列标注问题,如命名实体识别、分词和词性标注等。
  3. 都可以使用上下文信息来进行预测,尤其是利用局部特征信息进行标注。

HMM和CRF的主要区别在于:

  1. 模型形式:HMM是一个有向图模型,将输入看做输出的生成过程中的潜在状态,因此对于当前时刻的输出只取决于上一时刻的输出和当前时刻的状态。而CRF则是无向图模型,各个观测值之间相互依赖,对于当前时刻的输出不仅取决于前一时刻的输出和当前时刻状态,还取决于整个输入序列。
  2. 特征表示:HMM通常只考虑部分特征,比如当前时刻状态和获取当前输出概率的特定条件,因此可能不能很好地针对具体任务提取足够的特征。CRF则允许使用更为复杂的、全局特征,能够更灵活地适应各种不同的序列标注任务。
  3. 训练方式:HMM采用基于EM算法的有监督学习,模型参数估计需要已经标注的数据来优化;而CRF采用最大化对数似然函数的优化方法,通过计算损失函数对模型参数进行迭代优化。
  4. 模型类型:HMM是生成模型,它可以用来建立观测数据和隐藏状态之间的概率分布模型;而CRF是判别模型,其建模的是样本的条件分布概率P(Y|X),即在给定输入序列X的情况下预测输出序列Y的概率分布

然而,HMM和CRF都是用于序列建模的模型,它们在某些应用场景下有着协同互补的作用。HMM在处理长序列、低维数据时比较有效率,而CRF则适合处理具有多种特征描述的高维序列,例如分词和语句分析任务中通常会使用CRF来进行序列标注。在实际应用中选择使用HMM还是CRF要根据具体问题和数据特征的不同需求而定。

你可能感兴趣的:(人工智能,读书笔记,学习方法,算法,机器学习)