11_条件随机场CRF2_统计学习方法


条件随机场内容较多,方便阅读,分成2个部分
上接:11_条件随机场CRF1_统计学习方法

三、条件随机场的概率计算问题

条件随机场的概率计算问题是给定条件随机场 P ( Y ∣ X ) P(Y|X) P(YX),输入序列 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=yix),P(Yi1=yi1,Yi=yix)以及相应的数学期望的问题。与HMM一样,需要引进前向-后向向量,递归地计算以上概率及期望值。这样的算法称为前向-后向算法。

3.1 前向-后向算法

3.1.1 前向向量

α i ( y i ∣ x ) \alpha_i(y_i|x) αi(yix)表示在位置 i   i\, i的标记是 y i y_i yi并且到位置 i   i\, i的前部分观测序列的非规范化概率。
α i ( y i ∣ x ) = P ( y i , x 1 , x 2 , ⋯   , x i ) \alpha_i(y_i|x) = P(y_i,x_1,x_2,\cdots,x_i) αi(yix)=P(yi,x1,x2,,xi)
对每个指标 i = 0 , 1 , ⋯   , n + 1 i=0,1,\cdots,n+1 i=0,1,,n+1,定义前向向量 α i ( x ) \alpha_i(x) αi(x)
(25) α 0 ( y 0 ∣ x ) = { 1 , y 0 = s t a r t 0 , 否则 \alpha_0(y_0|x) = \begin{cases} 1, & y_0 = start \\[2ex] 0, & \text{否则} \tag{25} \end{cases} α0(y0x)=1,0,y0=start否则(25)
递推公式为
(26) α 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 \tag{26} αiT(yix)=αi1T(yi1x)Mi(yi1,yix),i=1,2,,n+1(26)
又可表示为
(27) α i T ( x ) = α i − 1 T ( x ) M i ( x ) \alpha_i^T(x) = \alpha_{i-1}^T(x)M_i(x) \tag{27} αiT(x)=αi1T(x)Mi(x)(27)
y i y_i yi可取的值有 m   m\, m个,所以 α i ( x ) \alpha_i(x) αi(x) m   m\, m维列向量

图片来源博客

3.1.2 后向向量

β i ( y i ∣ x ) \beta_i(y_i|x) βi(yix)表示在位置 i   i\, i的标记为 y i y_i yi并且从 i + 1 i+1 i+1 n   n\, n的后部分观测序列的非规范化概率。
β i ( y i ∣ x ) = P ( y i , x i + 1 , x i + 2 , ⋯   , x n ) \beta_i(y_i|x) = P(y_i,x_{i+1},x_{i+2},\cdots,x_n) βi(yix)=P(yi,xi+1,xi+2,,xn)
对每个指标 i = 0 , 1 , ⋯   , n + 1 i=0,1,\cdots,n+1 i=0,1,,n+1,定义前向向量 β i ( x ) \beta_i(x) βi(x)
(28) β n + 1 ( y n + 1 ∣ x ) = { 1 , y n + 1 = 1 0 , 否则 \beta_{n+1}(y_{n+1}|x) = \begin{cases} 1, & y_{n+1}=1 \\[2ex] 0, & \text{否则} \tag{28} \end{cases} βn+1(yn+1x)=1,0,yn+1=1否则(28)
递推公式为
(29) β 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) \tag{29} βi(yix)=Mi+1(yi,yi+1x)βi+1(yi+1x)(29)
上式与统计学习方法方法不一样,个人认为是老师下表不小心敲错了。又可表示为
(30) β i ( x ) = M i + 1 ( x ) β i + 1 ( x ) \beta_{i}(x) = M_{i+1}(x)\beta_{i+1}(x) \tag{30} βi(x)=Mi+1(x)βi+1(x)(30)
y i y_i yi可取的值有 m   m\, m个, β i ( x ) \beta_i(x) βi(x) m   m\, m维列向量

由前向-后向向量定义不难得到:
(31) α n + 1 T ( x ) ⋅ 1 = ( M 1 ( x ) M 2 ( x ) ⋯ M n + 1 ( x ) ) s t a r t , s t o p = Z ( x ) = 1 T ⋅ β 1 ( x ) \alpha_{n+1}^T(x)\cdot \bf{1} = \left(M_1(x)M_2(x)\cdots M_{n+1}(x)\right)_{start,stop} = Z(x) = \bf{1}^T \cdot\beta_1(x) \tag{31} αn+1T(x)1=(M1(x)M2(x)Mn+1(x))start,stop=Z(x)=1Tβ1(x)(31)

  • 1 \bf{1} 1是元素均为1的 m   m\, m维列向量。

3.2 一些概率与期望值的计算

3.2.1 单个状态概率

标记序列在位置 i   i\, i是标记 y i y_i yi的条件概率 P ( Y i = y i ∣ x ) P(Y_i = y_i|x) P(Yi=yix)
(32) P ( Y i = y i ∣ x ) = P ( Y i = y i , x ) P ( x ) = P ( Y i = y i , x ) ∑ Y i P ( Y i = y i , x ) = α i T ( y i ∣ x ) β i ( y i ∣ x ) ∑ Y i α i T ( y i ∣ x ) β i ( y i ∣ x ) = α i T ( y i ∣ x ) β i ( y i ∣ x ) Z ( x ) P(Y_i = y_i|x) = \dfrac{P(Y_i = y_i,x)}{P(x)} = \dfrac{P(Y_i = y_i,x)}{\sum_{Y_i} P(Y_i = y_i,x)} = \dfrac{\alpha_i^T(y_i|x) \beta_i(y_i|x)}{\sum_{Y_i} \alpha_i^T(y_i|x) \beta_i(y_i|x)} = \dfrac{\alpha_i^T(y_i|x) \beta_i(y_i|x)}{Z(x)}\tag{32} P(Yi=yix)=P(x)P(Yi=yi,x)=YiP(Yi=yi,x)P(Yi=yi,x)=YiαiT(yix)βi(yix)αiT(yix)βi(yix)=Z(x)αiT(yix)βi(yix)(32)

图片来源博客

3.2.2 两个状态的联合概率

在位置 i − 1 i-1 i1 i   i\, i是标记 y i − 1 y_{i-1} yi1 y i y_i yi的条件概率 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(Yi1=yi1,Yi=yix)

(33) 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 ( x ) = P ( Y i − 1 = y i − 1 , Y i = y i , x ) ∑ Y i − 1 ∑ Y i 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 ) ∑ Y i − 1 ∑ Y i α i − 1 T ( y i − 1 ∣ x ) M i ( y i − 1 , y i ∣ x ) β 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 ) \begin{aligned}P(Y_{i-1} = y_{i-1},Y_i = y_i|x) & = \dfrac{P(Y_{i-1} = y_{i-1},Y_i = y_i,x)}{P(x)} = \dfrac{P(Y_{i-1} = y_{i-1},Y_i = y_i,x)}{\sum_{Y_{i-1}}\sum_{Y_i}P(Y_{i-1} = y_{i-1},Y_i = y_i,x)} \\ & = \dfrac{\alpha_{i-1}^T(y_{i-1}|x)M_i(y_{i-1},y_i|x)\beta_i(y_i|x)}{\sum_{Y_{i-1}}\sum_{Y_i}\alpha_{i-1}^T(y_{i-1}|x)M_i(y_{i-1},y_i|x)\beta_i(y_i|x)} \\ & = \dfrac{\alpha_{i-1}^T(y_{i-1}|x)M_i(y_{i-1},y_i|x)\beta_i(y_i|x)}{Z(x)}\tag{33} \end{aligned} P(Yi1=yi1,Yi=yix)=P(x)P(Yi1=yi1,Yi=yi,x)=Yi1YiP(Yi1=yi1,Yi=yi,x)P(Yi1=yi1,Yi=yi,x)=Yi1Yiαi1T(yi1x)Mi(yi1,yix)βi(yix)αi1T(yi1x)Mi(yi1,yix)βi(yix)=Z(x)αi1T(yi1x)Mi(yi1,yix)βi(yix)(33)

3.2.3 一些期望

特征函数 f k f_k fk关于条件分布 P ( Y ∣ X ) P(Y|X) P(YX)的数学期望是
(34) E P ( Y ∣ X ) [ f k ] = ∑ y P ( y ∣ x ) f k ( y , x ) = ∑ i = 1 n + 1 ∑ y i − 1    y i P ( y i − 1 , y i ∣ x ) 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 ) α i − 1 T ( y i − 1 ∣ x ) M i ( y i − 1 , y i ∣ x ) β i ( y i ∣ x ) Z ( x ) , k = 1 , 2 , ⋯   , K \begin{aligned}E_{P(Y|X)}[f_k] & = \sum_y P(y|x)f_k(y,x)\\ & = \sum_{i=1}^{n+1}\sum_{y_{i-1}\;y_i} P(y_{i-1},y_i|x) 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)\dfrac{\alpha_{i-1}^T(y_{i-1}|x)M_i(y_{i-1},y_i|x)\beta_i(y_i|x)}{Z(x)},\qquad k =1,2,\cdots,K\tag{34} \end{aligned} EP(YX)[fk]=yP(yx)fk(y,x)=i=1n+1yi1yiP(yi1,yix)fk(yi1,yi,x,i)=i=1n+1yi1yifk(yi1,yi,x,i)Z(x)αi1T(yi1x)Mi(yi1,yix)βi(yix),k=1,2,,K(34)

假设经验分布为 P ~ ( X ) \tilde{P}(X) P~(X),特征函数 f k f_k fk关于联合分布 P ( x , y ) P(x,y) P(x,y)的数学期望是
(35) E P ( X , Y ) [ f k ] = ∑ x , y P ( x , y ) f k ( y , x ) = ∑ x P ~ ( x ) ∑ y P ( y ∣ x ) f k ( y , x ) = ∑ x P ~ ( x ) ∑ i = 1 n + 1 ∑ y i − 1    y i P ( y i − 1 , y i ∣ x ) 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 T ( y i − 1 ∣ x ) M i ( y i − 1 , y i ∣ x ) β i ( y i ∣ x ) Z ( x ) , k = 1 , 2 , ⋯   , K \begin{aligned}E_{P(X,Y)}[f_k] & = \sum_{x,y} P(x,y)f_k(y,x)\\ & = \sum_{x}\tilde{P}(x)\sum_y P(y|x)f_k(y,x)\\ & = \sum_{x}\tilde{P}(x)\sum_{i=1}^{n+1}\sum_{y_{i-1}\;y_i} P(y_{i-1},y_i|x) f_k(y_{i-1},y_i,x,i)\\ & = \sum_{x}\tilde{P}(x)\sum_{i=1}^{n+1}\sum_{y_{i-1}\;y_i}f_k(y_{i-1},y_i,x,i)\dfrac{\alpha_{i-1}^T(y_{i-1}|x)M_i(y_{i-1},y_i|x)\beta_i(y_i|x)}{Z(x)},\qquad k =1,2,\cdots,K\tag{35} \end{aligned} EP(X,Y)[fk]=x,yP(x,y)fk(y,x)=xP~(x)yP(yx)fk(y,x)=xP~(x)i=1n+1yi1yiP(yi1,yix)fk(yi1,yi,x,i)=xP~(x)i=1n+1yi1yifk(yi1,yi,x,i)Z(x)αi1T(yi1x)Mi(yi1,yix)βi(yix),k=1,2,,K(35)

  • 式(34)、(35)是特征函数数学期望的一般计算公式;
  • 对于转移特征 t k ( y i − 1 , y i , x , i ) ,   k = 1 , 2 , ⋯   , K 1 t_k(y_{i-1},y_i,x,i),\,k=1,2,\cdots,K_1 tk(yi1,yi,x,i),k=1,2,,K1,可以将式中的 f k f_k fk换成 t k t_k tk
  • 对于状态特征 s l ( y i , x , i ) ,   l = K 1 + 1 , K 1 + 2 , ⋯   , K 1 + K 2 s_l(y_i,x,i),\,l=K_1+1,K_1+2,\cdots,K_1+K_2 sl(yi,x,i),l=K1+1,K1+2,,K1+K2,可以将式中的 f k f_k fk换成 s l s_l sl
  • 有了式(32)-(35),对于给定的观测序列 x   x\, x与标记序列 y   y\, y,可以通过一次前向扫描计算 α i \alpha_i αi Z ( x ) Z(x) Z(x),通过一次后向扫描计算 β i \beta_i βi,从而计算所有的概率和特征的期望。

四、条件随机场的学习算法

由式(15)、(16)有如下:
P ( y ∣ x ) = 1 Z ( x ) e x p ( ∑ k = 1 K w k f k ( y , x ) ) P(y|x) = \dfrac{1}{Z(x)}exp(\sum_{k=1}^K w_k f_k(y,x)) P(yx)=Z(x)1exp(k=1Kwkfk(y,x))
Z ( x ) = ∑ y e x p ( ∑ k = 1 K w k f k ( y , x ) ) Z(x) = \sum_y exp(\sum_{k=1}^K w_k f_k(y,x)) Z(x)=yexp(k=1Kwkfk(y,x))

给定训练数据集估计条件随机场模型参数的问题,即条件随机场的学习问题。条件随机场模型实际上是定义在时序数据上的对数线性模型,其学习方法包括极大似然估计和正则化的极大似然估计。具体的优化实现算法有改进的迭代尺度法IIS、梯度下降法以及拟牛顿法。最终求得的是 P ( Y ∣ X ) P(Y|X) P(YX)

梯度下降法和迭代尺度法IIS可以参见第6章LR和最大熵模型这一节内容。

在编程中求解规范化因子 Z ( x ) Z(x) Z(x)时会遇到计算指数函数的和的对数问题,为了计算不溢出可以参见计算指数函数的和的对数处理。

五、条件随机场的预测算法

条件随机场的预测问题是给定条件随机场 P ( Y ∣ X ) P(Y|X) P(YX)和输入序列(观测序列) x   x\, x,求条件概率最大的输出序列(标记序列) y ∗   y^*\, y,即对观测序列进行标注。条件随机场的预测算法是著名的维特比算法。可以参见第10章HMM的预测求解过程。

对于第四和第五部分内容就不展开说明,使用的方法都是前面学习中遇到过的。其实在第三部分内容就基本上与第10章的第三部分内容很像,这是因为HMM是条件随机场的特例,HMM是单向的,对于标注问题而言,条件随机场是双向的,二者之间的关系就相比于LSTM与双向LSTM。下面详细比较下HMM与条件随机场。

六、HMM与线性链条件随机场的比较

模型

HMM属于概率有向图模型,线性链条件随机场属于无向图模型,看下面两张图片

上图是HMM模型,隐藏的序列只能前一个位置影响下一个位置,而下图是线性链条件随机场,前后位置是能相互影响的,也就是说linear-CRF能反映更多的关系,当然学习的参数也会更多。

策略

HMM的策略是学习联合分布,完全数据的对数似然函数作为优化目标,学习联合分布的模型称为生成模型;linear-CRF是学习 P ( Y ∣ X ) P(Y|X) P(YX)对数线性模型,学习条件概率的模型称为判别模型。生成模型与判别模型区别可以参见博客

方法

根据策略不同,选择的优化方法当然也不不同。HMM使用的优化方法是EM算法,linear-CRF是对数线性模型的最优化问题,可以使用的方法很多,如:通用迭代尺度法(GIS: Generalized Iterative Scaling)、改进的迭代尺度法(IIS: Improved Iterative Scaling)、梯度下降算法、拟牛顿法(牛顿法)。

参考资料:

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值