Statistical learning methods 11- CRFs

sequence

  In order not to learn confused, CRFs here should manage a relationship with it and distinguish it from other probabilistic graphical models. Texts on a Hidden Markov Model (HMM) is a classic model of a directed graph, but also to generate a model, by \ (P (Y, X) \) modeled. HMM has two important assumptions, by the above derivation can understand, these two assumptions simplifies the calculation process. However, practical applications, these two assumptions are often not very reasonable, followed by the emergence of maximum entropy Markov model (MEMM), it eliminates the assumption that independent observation, we talk about the conditions of the airport is eliminated homogeneous Markov .
  First to review the HMM, its model as shown in the HMM \ (0_2 \) depends only on \ (i_2 are used \) , and \ (i_2 are used \) depends only on \ (i_1 \) , the HMM prediction (labeling) issues, although the probability of the Viterbi algorithm based on the entire sequence of observations to calculate the maximum state sequence, but actually used in the calculation is still front to back to probability, they are observed by the independent and homogeneous Markov assumptions under the simplified conditions too. Therefore, it is deemed not to be considered among the factors observed.

HMM
  HMM model as a directed graph, an arrow direction from a hidden state to observations, according to this relationship, when solved according to arrow hidden variables required to solve probabilistic model observed variables and hidden variables role in the process can not be ignored, then first establish \ (P (Y, X) \) the probability model, as a state before the dependent obtain the conditional probability of the observation sequence of hidden states the probability multiplication, simultaneously, in order to simplify calculation for the independence assumptions, this is generate ideas to solve the model.

Probabilistic graphical models
  The conditional random probability of belonging to no undirected graph, also known as Markov random field to map, probability, it uses nodes represent random variables, the connection between the nodes represents a direct impact on the relationship between the nodes. It is not complex to decompose a major role in joint probabilities for a plurality of FIG product, but there is a probability that the FIG state depends on only a front, if the preceding state is determined, the probability of the latter is also determined, so very convenient conditional probability and probability by multiplying the joint distribution represented. The Markov random field is considered to have the adjacent variable interaction, the whole sub-group with great probability map as separate units, the probability of great energy sub-group is represented by the potential function, which also determines the Figure probability require normalization.

1. The probability of an undirected graph

Here Insert Picture Description
  The figure is a Markov undirected graph, where each node represents a random variable, expressed their edges connected to the interaction between their relationship. Figure Markov also assumptions about the probability of independence, but there are not as dependent variables just before the arrow as a directed graph. FIG Markov assumptions in pairs between Markov random variables, local and global Markov Markov. Although the definition of the three categories, but in fact three definitions are equivalent, they have shown no side or the two nodes connected to this great group, then these two nodes or great group is independent. Like the FIG., V and w o to separate, if w is given, the random variable v and o represent two independent. Assuming that \ (y_v \) denotes a random variable v node represents,
\ [P (y_v, Y_o | Y_w) = P (y_v | Y_w) P (Y_o | Y_w) \]   in \ (P (Y_o | Y_w) > 0 \) in the case of the independence can be expressed as follows
\ [P (y_v | Y_w) = P (y_v | Y_w, Y_o) \]   whether \ (Y_o \) to \ (y_v \) probability have no effect this is a partial Markov property, the v, o, w may be a node or a maximal clique, they formed a three Markov. The following definitions undirected complete graph is given probability.
  Defined : with joint probability distribution \ (P (the Y) \) , the undirected \ (G = (V, E ) \) represents, in graph G, the nodes represent random variables, random variables between the edges represent dependencies. If the joint probability distribution meet in pairs, local or global Markov property, we call this the joint probability distribution of the probability of an undirected graph, or Markov random field.

  • The probability of the factor graph exploded

  同有向图,概率图模型的一大优点便是易于分解,简化概率的计算。有向图可以按照对上一节点的依赖,将联合概率逐步分解为条件概率的乘积。无向图中的随机变量与其相连的节点都会相互影响,所以用极大团来分解无向图也成为很自然的事。
  团与极大团:无向图中,任何两个节点均有边相连的节点子集称为一个团。如果在这个团中,再添加该图中的任意一个节点,都会破坏团的定义,那么该团是极大团。

Group with a great group
  该图有5个团,2个极大团,极大团是\(\{A,B,C\},\{A,D\}\),那么该无向图的概率可拆解为两个极大团概率的乘积。如何表示每个极大团的概率呢?在马尔可夫网中使用势函数来完成这一目的,不用太纠结势函数是什么,这是引用了理论物理里的概念。只需要知道马尔可夫网中使用势函数定义一些特征函数来联系极大团之间的变量的相互影响,以此产生一个该团的非规范化概率,然后再将所有极大团的概率相加作为规范化因子,最终产生一个规范化概率。
  设无向图为G,C为G上的极大团,\(Y_c\)表示C对应的随机变量,那么该概率无向图的联合概率\(P(Y)\)可写作图中所有极大团C上的势函数\(\Psi_c(Y_c)\)的乘积形式,即
\[P(Y) = \frac 1 Z \prod_c \Psi_c(Y_c)\]其中,Z是规范化因子
\[Z = \sum_Y \prod_c \Psi_c(Y_c)\]其中,势函数要求严格正,因此常定义为指数函数
\[\Psi_c(Y_c) = exp(-E(Y_c))\]  于是,概率无向图的计算是以势函数为单位的,前面讲过的HMM是以概率为单位,所以它不需要归一化,而无向图的计算需要归一化。目前我们明白了在概率无向图中的分解以极大团为单位,并且使用势函数来计算其非规范化概率,那么一个极大团中有多个随机变量节点,如何分配这些和计算其概率贡献是接下来的问题。

2. 条件随机场

  • 定义

  条件随机场:设X与Y是随机变量,\(P(Y|X)\)是在给定X的条件下Y的条件概率分布。若随机变量Y构成一个由无向图\(G=(V,E)\)表示的马尔可夫随机场,即
\[P(Y_v|X,Y_w,w \neq v)=P(Y_v|X,Y_w,w\sim v )\]对任意节点v成立,则称\(P(Y|X)\)为条件随机场。式中\(w \neq v\)表示节点v 以外的所有节点,\(w \sim v\)表示在 G中与v 节点有边连接的所有 节点 w。
  定义中两个节点集合表示的含义是,只要给定了与v 相连接的节点 w ,那么v 节点代表的随机变量便与其他节点相独立,式中\(w \sim v\)表示的便是包括了 w 在内的其他节点,但只要给定 与 v相连的w,再加其他的节点也不会影响概率,因为v 节点与它们独立。
  统计学习方法中只讨论了图结构为线性链的情况,这一特殊情况应该较通用的无向图定义要简单一些,线性链中节点数量n和边的数量e满足 e = n - 1 。并且在CRF中常常假设X和Y具有相同的图结构,那么可以得到线性链条件随机场的结构如下
Here Insert Picture Description
  线性链条件随机场:设\(X = (X_1,X_2,\cdots,X_n),Y= (Y_1,Y_2,\cdots,Y_n)\)均为线性链表示的随机变量序列,若再给定随机变量序列X的条件下,随机变量序列Y的条件概率分布\(P(Y|X)\)构成条件随机场,即满足马尔可夫性
\[ P(Y_i|X,Y_1,\cdots,Y_{i-1},Y_{i+1},\cdots,Y_n) = P(Y_i|Y_{i-1} ,Y_{i+1})\\ i = 1,\cdots,n,(在i = 1和n时只考虑单边) \]则称\(P(Y|X)\)为线性链条件随机场,即线性链与之相邻的只有左右两边(两端只有一边)。
  下面讨论的都是线性链条件随机场,给出其定义后,现在考虑需要解决的问题,即如何分配和计算某个团中各个节点的概率。关于这个问题首先需要明白条件随机场是用来干嘛的——标注问题,其中的一个典型问题就是单词词性标注。对于一个单词序列,其前后词性的关系是比较密切的,这里词性就是标注序列Y,单词是观测序列X。那么为了得到单词序列的词性标注序列,首先我们可以从单词序列X获得一些信息,比如

When the whole world is about to rain, let’s make it clear in our heart together.

  其中第三个单词 whole 有n. 整体 和 adj. 完整的 两个词性,那么当我们读取这个单词序列X的时候,我们可能就能从X中获取这两个词性可能较大。接下来需要进一步判断它到底是名词还是形容词,这时我们想到可以利用邻近的单词进行推断。它的前面是一个定冠词 the ,而定冠词后面常常接名词,因此这一步增大了 whole 判断为名词的概率。但是我们再看其后面,world 是一个名词,而名词前接形容词的概率较大。这又增大了 whole为形容词的概率,如果我们根据英语语法知识设定的规则比较恰当,那么给这两个判断依据设定的权重应该是能够正确区分 whole的正确词性的。这一过程其实已基本描述了条件随机场势函数定义的思想——为关联的变量设定特征函数。
  下面给出由特征函数将条件随机场参数化的具体形式。

  • 条件随机场的参数化形式

  设\(P(Y|X)\)为线性链条件随机场,则在随机变量X取值为x的条件下,随机变量Y取值为y的条件概率具有如下形式:
\[P(y|x)= \frac 1 {Z(x)} exp \left ( \sum_{i,k} \lambda_k t_k(y_{i-1},y_i,x,i) +\sum_{i,l}\mu_l s_l (y_i,x,i) \right )\]其中,
\[Z(x) = \sum_y exp \left ( \sum_{i,k} \lambda_k t_k(y_{i-1},y_i,x,i) +\sum_{i,l}\mu_l s_l (y_i,x,i) \right )\]式中,\(t_k,s_l\)是特征函数,\(\lambda_k和\mu_l\)是对应的权值,Z(x) 是规范化因子。
  上式是特征函数确定的线性链条件随机场的基本形式,其中,\(t_k\)是定义在边上的特征函数,用以表示转移特征,依赖于当前和前一个位置,即边相连的两个状态变量。\(s_l\)是定义在节点上的特征函数,用以表示状态特征,依赖于当前位置。结合上面的例子,\(s_l\)便是从单词序列X中得到特征的函数,它可以提取对于当前观测序列,有哪些可能的状态对应。而\(t_k\)便是联系状态之间依赖的特征函数,即上例中确定前后文的词性,在根据词性关系进一步确定其最有可能的词性。注意\(t_k\)定义在边上,那么每移动一步都会计算相邻两个变量之间的依赖关系。
  由此可以看出,条件随机场完全由两个特征函数和其对应的权值确定。线性链条件随机场也是一个对数线性模型。

  • 条件随机场的简化形式(内积)

  上面参数化形式中,指数函数内部全部是特征函数的权值与特征函数的乘积再求和的形式,很显然,可以将其表达为权值与特征函数的内积。
  注意每个权值是对应与其特征函数的,先以特征函数为序合并两个特征函数,我们用K = K1 + K2 来同一表示这两个特征的数量,其中K1是转移特征,K2是状态特征
\[ f_k(y_{i-1},y_i,x,i) = \left\{\begin{aligned} &t_k(y_{i-1},y_i,x,i),&k=1,2,\cdots,K_1\\ &s_l(y_i,x,i),&k = K_1+l; l=1,2,\cdots,K_2 \end{aligned}\right. \]其中,每个特征函数可作用于多个节点之间,因此要对每个特征函数在各个位置i上求和
\[f_k(y,x) =\sum_{i=1} ^nf_k(y_{i-1},y_i,x,i) , k = 1,2,\cdots,K\]同样,其权值也以特征函数为序组合,
\[ w_k = \left\{\begin{aligned} &\lambda_k,&k=1,2,\cdots,K_1\\ &\mu_k ,&k = K_1+l; l=1,2,\cdots,K_2 \end{aligned}\right. \]于是,条件随机场可表示为
\[ P(y|x) = \frac 1 {Z(x)} exp\sum_{k=1}^Kw_kf_k(y,x)\\ Z(x) = \sum_y exp \sum_{k=1}^Kw_kf_k(y,x) \]  下面将其表示为向量形式,以 w 表示权值向量,
\[w = (w_1,w_2,\cdots,w_K)^T\]\(F(y,x)\)表示特征函数向量,
\[F(y,x) = (f_1(y,x),f_2(y,x) ,\cdots,f_K(y,x))^T\]于是条件随机场可写为内积形式:
\[P_w(y|x) = \frac {exp(w\cdot F(y,x))} {Z_w(x)}\]其中,
\[Z_w(x) = \sum_yexp(w\cdot F(y,x))\]  PS:这里对y求和指的是对所有可能的状态序列y求和。

  • 条件随机场的矩阵形式

  在前面的表达形式中,虽说达到了简化表达形式的目的,但在计算的过程中需要列出所有可能的y序列进行计算,不方便对算法进行优化。于是使用矩阵形式来表示该概率,可以实现对状态序列y 变化路径的模拟。这里引入了两个特殊的状态标记——起点和终点(\(y_0 = strat,y_{n+1} = stop\)),为何引入这两个标记呢?前面提到过线性链条件随机场中两个端点比较特殊,只与一边有关联,若两边不人为引入特殊的状态标记,观测点在连接节点的边上,于是在观测第一个点的时候,其特征函数是\(t_k = (y_1,y_2,x,1),s_l = (y_2,x,1)\),发现\(y_1\)的状态特征函数\(s_l\)被直接忽略了。而这种情况前面添加一个起点标记就能解决。添加终点标记是为什么呢?个人认为是为了最后将非规范化概率的求和能够以矩阵乘法的形式统一起来。添加了起点和终点的状态序列相当于将原来从m(状态的可能取值)个起点和终点的各种路线又添加了一个起点和终点将其汇合在一起,同时,这种操作并不影响原来可能的路径条数。在矩阵乘法时还能方便的将所有概率汇集到添加的终点。
  添加了起点和终点的状态序列有n + 2 个位置,于是有 n + 1 个观测点,在每个观测点定义一个m阶的矩阵(m是状态变量Y可能的取值个数),那么每个观测点的状态转移路径可由矩阵位置保存,势函数可由定义其上的特征函数表示
\[ M_i(x) = [M_i(y_{i-1},y_i|x)]\\ M_i(y_{i-1},y_i|x) = exp(W_i(y_{i-1},y_i|x))\\ W_i(y_{i-1},y_i|x) = \sum_{k=1}^Kw_kf_k(y_{i-1},y_i,x,i) \]其中,\(M_i(y_{i-1},y_i|x)\)中的\((y_{i-1},y_i)\)表示的该势函数在矩阵中的位置,\(W_i(y_{i-1},y_i|x)\)表示该段路径上状态特征和转移特征的势函数大小。
  于是,给定观测序列x,状态(标记)序列y的非规范化概率可以通过这 n+1 个矩阵的乘积表示
\[\prod_{i=1}^{n+1} M_i(x)\]其条件概率为
\[P_w(y|x) = \frac 1 {Z(x)} \prod_{i=1}^{n+1} M_i(x)\]其中,Z(x)为规范化因子
\[Z(x) = (M_1(x)\cdot M_2(x)\cdots M_{n+1}(x))_{strat,stop}\]正如前面叙述的添加的起点和终点的作用,它们将所有概率汇集到矩阵中的一个位置。下面由一个例子演示。
Here Insert Picture Description
  上图描述了一个数量为3的状态序列 y ,并且状态 \(y_i \in \{1,2\},i = 1,2,3\) ,在添加起点和终点标记后由矩阵表示的状态路径。若 \(start和stop\) 定义在\(\{1,2\}\) ,那么每个矩阵都是 2 阶矩阵,假设 \(start=stop = 1\) 。则4个观测位置的随机矩阵分别为
\[ \begin{aligned} M_1(x) = \begin{bmatrix} a_{01} &a_{02} \\ 0 & 0 \end{bmatrix} ,& M_2(x) = \begin{bmatrix} b_{11} & b_{12} \\ b_{21}& b_{22} \end{bmatrix}\\ M_3(x) = \begin{bmatrix} c_{11} & c_{12} \\ c_{21} & c_{22} \end{bmatrix} ,& M_4(x) = \begin{bmatrix} 1 & 0 \\ 1 & 0 \end{bmatrix} \end{aligned} \]  该线性链条件随机场的规范化因子(所有路径的非规范化概率之和)可通过计算矩阵乘积

\[ Z(x) = M_1(x)M_2(x)M_3(x)M_4(x)_{(start,stop)} \]并取第 \(start\)\(stop\) 列的元素得到。矩阵是如何将本该是各路径的和,分解为每个观测点得到的势函数的和呢?将这个乘积矩阵的第start行第stop列的元素展开
\[a_{01}b_{11}c_{11}+a_{02}b_{21}c_{11}+\cdots+a_{02}b_{22}c_{21}\]实际上就是\(2^3 = 8\)条路径的和,
  注意\((y_{i-1},y_i)\)中,在下一个矩阵中的位置变为\((y_i,y_{i+1})\),上一个矩阵中的列位置与下一个矩阵中的行位置是对应的,在矩阵乘法的时候,它们正好按这种关系相乘,实际上就是将上一个观测点的状态值与下一个观测点的状态值联系起来,这便计算了当前路径的非规范化概率和,将其全部乘在一起时便计算出了总共的规范化因子。并且人为加入了终点标记,终点标记与起点表示都只有一个取值,那么最后便将其汇集在矩阵的一个元素,这个元素的位置是\((start,stop)\)
  这个例子数据比较简单,可以手动算一下就清楚了。

  • 条件随机场的概率计算

  通过定义矩阵,将非规范化的概率用一串矩阵的乘积表达了出来。其中每个矩阵表示从上一个位置到当前位置的路径上的特征函数大小,但是若要计算当前位置是某个状态\(y_i\)的条件概率,矩阵却不能方便的表达这一问题。于是使用类似HMM中的方法,定义前向,后向向量。个人觉得它的作用是将前面(后面)的非规范化概率归纳起来,并按状态变量的取值分为m条路径,对应向量中的某维数值。这样便能方便的计算当前位置取某一个状态的非规范化概率。

  • 前向-后向算法

  对每个位置 \(i = 0,1,\cdots,n+1\),定义前向向量\(\alpha_i(x):\)

\[ \alpha_0(y|x)= \left\{\begin{aligned} &1,&y_0=start\\ &0,&else \end{aligned}\right. \] 由此得到递推公式
\[ \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 \]简写为
\[ \alpha_i^T(x)=\alpha_{i-1}^T(x)M_i(x) \]其中\(\alpha_i(y_i|x)\)表示从初始位置到当前位置\(i\),并且状态是\(y_i\)的非规范化概率,\(y_i\)有m个取值,因此\(\alpha_i(x)\)是m维列向量。

对于这个递推式还是很好理解的,向量的每个元素代表了一个状态,向量乘矩阵就是将原来是上一个位置的m种状态到当前位置的m种状态的非规范化概率总结了一下,把它们到当前位置的同一个状态的归纳起来就从二维矩阵变成了一维向量。

  同样,对每个位置定义后向向量\(\beta_i(x)\)
\[ \beta_{n+1}(y_{n+1}|x) = \left\{\begin{aligned} &1,&y_{n+1}=stop\\ &0,&else \end{aligned}\right. \]递推式
\[ \beta_i(y_i|x) = M_i(y_i,y_{i+1}|x) \beta_{i+1}(y_{i+1}|x) \]简化为
\[\beta_i(x) = M_{i+1}(x) \beta_{i+1}(x) \]其中,\(\beta_i(y_i|x)\)表示从位置n 到 位置\(i+1\),且位置\(i\)的状态为\(y_i\)的非规范化概率。
  由前向-后向向量的定义可以得到:
\[Z(x) = \alpha_n^T(x) \cdot1 = 1^T\cdot \beta_1(x) \]其中,1是元素均为1的m维列向量。

  • 概率计算

  由前面对从矩阵到向量的分析,可以很容易的表达状态序列在位置\(i\)是标记\(y_i\)的条件概率\(P(Y_i=y_i|x)\)以及在位置\(i-1和i\)是状态\(y_{i-1}和y_i\)的条件概率\(P(Y_{i-1} = y_{i-1},Y_i = y_i|x)\)。对于\(P(Y_i=y_i|x)\)\(y_i\)有m种取值,在求解它的非规范化概率时,除了位置\(i\)的状态确定,其它位置都是不确定的,因此需要求解其它位置的所有状态的排列。这不正是定义的前向和后向向量吗,再除于\(Z(x)\)便得到了条件概率。
\[ P(Y_i=y_i|x) = \frac {\alpha_iT(y_i|x)\beta_i(y_i|x)} {Z(x)} \]另一个与它类似,只不过多确定了一个位置的状态,这样非规范化概率的组合又少了一些而已
\[ 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)} \]其中,
\[ Z(x) =\alpha_n^T(x) \cdot 1 \]

  • 期望值计算

  除了可以方便的计算这两个条件概率外,利用前向-后向向量还可以方便的计算两个与特征函数相关的数学期望。线性链条件随机场的特征函数有个特点就是只与相邻的两个状态有关,那么求其期望时对所有状态变量y的组合求和时只需要求其相邻的状态变量的组合即可。这与前文HMM中一些概率的计算原理一样。
  特征函数\(f_k\)关于\(P(Y|X)\)的期望是
\[ \begin{aligned} E_{P(Y|X)}[f_k] =& \sum _{y_0}\cdots \sum_{y_{n+1}} P(y|x) f_k(y,x)\\ =& \sum _{i=1}^{n+1} \sum _{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} \]其中,
\[Z(x) = \alpha_n^T(x) \cdot 1\]
  该式对相邻状态的概率求和,而相邻两个位置的条件概率在上面通过前向后向向量表示了,因此可以拆解为对相邻两个状态组合的求和。
  而特征函数关于联合分布\(P(Y,X)\)的数学期望同样,为了利用已求得的条件分布\(P(Y|X)\)表达式,将联合分布用概率乘法拆解为X的经验分布和条件分布即可,假设经验分布\(\widehat P(x)\)
\ [\ Begin {aligned} E_ {P (X, Y)} [f_k] = & \ sum_ {X, Y} P (x, y) \ sum_ {i = 1} ^ {n + 1} f_k (y_ {i-1}, y_i, x, i) \\ = & \ sum_X \ widehat P (x) \ sum_YP (y | x) \ sum_ {i = 1} ^ {n + 1} f_k (y_ {i- 1}, y_i, x, i
) \\ = & \ sum_X \ widehat P (x) \ cdot E_ {P (Y | X)} [f_k] \ end {aligned} \]   Thus, as long as the calculated recursively All forward vector, we can easily calculate the probabilities and expect all the features and backward.

Guess you like

Origin www.cnblogs.com/breezezz/p/11277142.html