条件随机场概率计算

这里的概率计算问题指的是:

给定条件随机场P(YX)P(Y|X)输入序列xx和输出序列yy, 计算条件概率P(Yi=yix)P(Y_i=y_i|x), P(Yi1=yi1,Yi=yix)P(Y_{i-1}=y_{i-1},Y_i=y_i|x)以及相应数学期望的问题.

前向后向算法

像HMM一样, 使用前向-后向向量, 递归地计算以上概率及期望值.

前向向量

对于每个位置i=0,1,2,,n+1i=0,1,2,\cdots,n+1, 定义前向向量αi(x)\alpha_i(x), 注意这是一个向量, 长度为状态yiy_i可以取的状态数量, 即mm维向量, 每个向量定义为:

α0(y0x)={1, y0=start0, else\alpha_0(y_0|x)= \begin{cases} 1,\ y_0=start \\ 0,\ else \end{cases}

αiT(yix)=αi1T(yi1x)Mi(yi1,yix), 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

对于初始情况, 定义α0(yx)\alpha_0(y|x)向量在初始状态startstart位置上为1, 其他位置都为0.

α0(yx)\alpha_0(y|x)表示在位置ii上, 标记为yiy_i并且到位置ii之前的所有位置上为标记序列对应的前半部分状态的非规范化概率. 上式又可表示为:

αiT(x)=αi1T(x)Mi(x)\alpha_{i}^T(x)=\alpha_{i-1}^T(x)M_i(x)

后向向量

对于每个位置i=0,1,2,,n+1i=0,1,2,\cdots,n+1, 定义后向向量βi(x)\beta_i(x), 向量的长度与前向向量相同:

βn+1(yn+1x)={1, yn+1=stop0, else\beta_{n+1}(y_{n+1}|x)= \begin{cases} 1,\ y_{n+1}=stop \\ 0,\ else \end{cases}

βi(yix)=Mi+1(yi,yi+1x)βi+1(yi+1x), i=0,2,,n\beta_i(y_i|x)=M_{i+1}(y_i,y_{i+1}|x)\beta_{i+1}(y_{i+1}|x),\ i=0,2,\cdots,n

βi(yix)\beta_i(y_i|x)表示在位置ii上标记为yiy_i且从i+1i+1nn的后部分标记序列对应的非规范化概率

概率计算

根据前向-后向向量的定义, 计算状态序列在位置ii上标记yiy_i的条件概率:

P(Yi=yix)=αiT(yix)βi(yix)Z(x)\begin{aligned} P(Y_i=y_i|x)=\frac{\alpha_i^T(y_i|x)\beta_i(y_i|x)}{Z(x)} \end{aligned}

在位置i1i-1和位置ii标记yi1y_{i-1}yiy_i的条件概率:

P(Yi1=yi1,Yi=yix)=αi1T(yi1x)Mi(yi1,yix)βi(yix)Z(x)\begin{aligned} 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)} \end{aligned}

其中Z(x)=αnT(x)1=1Tβ1(x)Z(x)=\alpha_n^T(x)\cdot\textbf{1}=\textbf{1}^T\cdot\beta_1(x)

期望计算

计算特征函数关于联合分布P(X,Y)P(X,Y)和条件分布P(YX)P(Y|X)的数学期望.

特征函数关于条件分布P(YX)P(Y|X)的数学期望为:

EP(YX)[fk]=yP(yx)fk(y,x)=i=1n+1yi1yifk(yi1,yi,x,i)αi1T(yi1x)Mi(yi1,yix)βi(yix)Z(x), k=1,2,,K\begin{aligned} E_{P(Y|X)}[f_k] &= \sum\limits_{y}P(y|x)f_k(y,x) \\ &= \sum\limits_{i=1}^{n+1}\sum\limits_{y_{i-1}y_i}f_k(y_{i-1},y_{i},x,i)\frac{\alpha_{i-1}^T(y_{i-1}|x)M_i(y_{i-1},y_i|x)\beta_i(y_i|x)}{Z(x)},\ k=1,2,\cdots,K \end{aligned}

另外, 假设经验分布为P~(X)\tilde{P}(X), 特征函数关于联合分布P(X,Y)P(X,Y)的数学期望为:

EP(X,Y)[fk]=x,yP(x,y)i=1n+1fk(yi1,yi,x,i)=xP~(X)yP(yx)i=1n+1fk(yi1,yi,x,i)=xP~(X)i=1n+1yi1yifk(yi1,yi,x,i)αi1T(yi1x)Mi(yi1,yix)βi(yix)Z(x), k=1,2,,K\begin{aligned} E_{P(X,Y)}[f_k] &= \sum\limits_{x,y}P(x,y)\sum\limits_{i=1}^{n+1}f_k(y_{i-1},y_{i},x,i) \\ &= \sum\limits_{x}\tilde{P}(X)\sum\limits_{y}P(y|x)\sum\limits_{i=1}^{n+1}f_k(y_{i-1},y_{i},x,i) \\ &= \sum\limits_{x}\tilde{P}(X)\sum\limits_{i=1}^{n+1}\sum\limits_{y_{i-1}y_i}f_k(y_{i-1},y_{i},x,i)\frac{\alpha_{i-1}^T(y_{i-1}|x)M_i(y_{i-1},y_i|x)\beta_i(y_i|x)}{Z(x)},\ k=1,2,\cdots,K \end{aligned}

对于给定的观测序列xx和状态序列yy, 可以通过一次前向扫描计算αi\alpha_{i}Z(x)Z(x), 一次后向扫描计算βi\beta_i, 从而得到所有概率和特征的期望.

最后更新于

这有帮助吗?