文章目录
条件随机场内容较多,方便阅读,分成2个部分
上接:11_条件随机场CRF1_统计学习方法
三、条件随机场的概率计算问题
条件随机场的概率计算问题是给定条件随机场 P ( Y ∣ X ) P(Y|X) P(Y∣X),输入序列 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)以及相应的数学期望的问题。与HMM一样,需要引进前向-后向向量,递归地计算以上概率及期望值。这样的算法称为前向-后向算法。
3.1 前向-后向算法
3.1.1 前向向量
α
i
(
y
i
∣
x
)
\alpha_i(y_i|x)
αi(yi∣x)表示在位置
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(yi∣x)=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(y0∣x)=⎩⎨⎧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(yi∣x)=αi−1T(yi−1∣x)Mi(yi−1,yi∣x),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)=αi−1T(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(yi∣x)表示在位置
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(yi∣x)=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+1∣x)=⎩⎨⎧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(yi∣x)=Mi+1(yi,yi+1∣x)βi+1(yi+1∣x)(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=yi∣x)
(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=yi∣x)=P(x)P(Yi=yi,x)=∑YiP(Yi=yi,x)P(Yi=yi,x)=∑YiαiT(yi∣x)βi(yi∣x)αiT(yi∣x)βi(yi∣x)=Z(x)αiT(yi∣x)βi(yi∣x)(32)
图片来源博客
3.2.2 两个状态的联合概率
在位置 i − 1 i-1 i−1与 i   i\, i是标记 y i − 1 y_{i-1} yi−1和 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(Yi−1=yi−1,Yi=yi∣x)
(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(Yi−1=yi−1,Yi=yi∣x)=P(x)P(Yi−1=yi−1,Yi=yi,x)=∑Yi−1∑YiP(Yi−1=yi−1,Yi=yi,x)P(Yi−1=yi−1,Yi=yi,x)=∑Yi−1∑Yiαi−1T(yi−1∣x)Mi(yi−1,yi∣x)βi(yi∣x)αi−1T(yi−1∣x)Mi(yi−1,yi∣x)βi(yi∣x)=Z(x)αi−1T(yi−1∣x)Mi(yi−1,yi∣x)βi(yi∣x)(33)
3.2.3 一些期望
特征函数
f
k
f_k
fk关于条件分布
P
(
Y
∣
X
)
P(Y|X)
P(Y∣X)的数学期望是
(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(Y∣X)[fk]=y∑P(y∣x)fk(y,x)=i=1∑n+1yi−1yi∑P(yi−1,yi∣x)fk(yi−1,yi,x,i)=i=1∑n+1yi−1yi∑fk(yi−1,yi,x,i)Z(x)αi−1T(yi−1∣x)Mi(yi−1,yi∣x)βi(yi∣x),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,y∑P(x,y)fk(y,x)=x∑P~(x)y∑P(y∣x)fk(y,x)=x∑P~(x)i=1∑n+1yi−1yi∑P(yi−1,yi∣x)fk(yi−1,yi,x,i)=x∑P~(x)i=1∑n+1yi−1yi∑fk(yi−1,yi,x,i)Z(x)αi−1T(yi−1∣x)Mi(yi−1,yi∣x)βi(yi∣x),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(yi−1,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(y∣x)=Z(x)1exp(k=1∑Kwkfk(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)=y∑exp(k=1∑Kwkfk(y,x))
给定训练数据集估计条件随机场模型参数的问题,即条件随机场的学习问题。条件随机场模型实际上是定义在时序数据上的对数线性模型,其学习方法包括极大似然估计和正则化的极大似然估计。具体的优化实现算法有改进的迭代尺度法IIS、梯度下降法以及拟牛顿法。最终求得的是 P ( Y ∣ X ) P(Y|X) P(Y∣X)。
梯度下降法和迭代尺度法IIS可以参见第6章LR和最大熵模型这一节内容。
在编程中求解规范化因子 Z ( x ) Z(x) Z(x)时会遇到计算指数函数的和的对数问题,为了计算不溢出可以参见计算指数函数的和的对数处理。
五、条件随机场的预测算法
条件随机场的预测问题是给定条件随机场 P ( Y ∣ X ) P(Y|X) P(Y∣X)和输入序列(观测序列) 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(Y∣X)对数线性模型,学习条件概率的模型称为判别模型。生成模型与判别模型区别可以参见博客。
方法
根据策略不同,选择的优化方法当然也不不同。HMM使用的优化方法是EM算法,linear-CRF是对数线性模型的最优化问题,可以使用的方法很多,如:通用迭代尺度法(GIS: Generalized Iterative Scaling)、改进的迭代尺度法(IIS: Improved Iterative Scaling)、梯度下降算法、拟牛顿法(牛顿法)。
参考资料: