美文网首页
Task4 条件随机场

Task4 条件随机场

作者: 酱油啊_ | 来源:发表于2020-04-28 14:58 被阅读0次

    定义及区别


    1. 随机场:
      随机场是有若干个位置组成的整体,对于每个位置安装某种分布随机赋予一个值,其全体就叫做随机场。

    2.马尔可夫随机场
    马尔可夫随机场是随机场的一个特例,它假设随机场中某一个位置的赋值仅仅只和他相邻的位置的赋值有关,与其他位置的赋值无关。

    1. 条件随机场
      条件随机场(CRF)是马尔可夫随机场的特例,他假设马尔可夫随机场中只有X和Y两种变量,X一般是给定的,Y是根据给定X的条件下的输出。

    给出数学定义就是,设X与Y是随机变量,P(Y|X)是给定X时Y的条件概率分布,若随机变量Y构成的是一个马尔科夫随机场,则称条件概率分布P(Y|X)是条件随机场。

    1. 线性链条件随机场
      假设X 和Y有相同的结构的CRF就构成了线性链条件随机场(Linear chain Conditional Random Fields,简称 linear-CRF)。

    给出数学定义 设X=(X1,X2,...Xn),Y=(Y1,Y2,...Yn)均为线性链表示的随机变量序列,在给定随机变量序列X的情况下,随机变量Y的条件概率分布P(Y|X)构成条件随机场,即满足马尔科夫性:
    P(Yi|X,Y1,Y2,...Yn)=P(Yi|X,Yi−1,Yi+1)
    则称P(Y|X)为线性链条件随机场。

    马尔可夫过程

    定义:
    假设一个随机过程中,tn时刻的状态xn的条件发布,知与前一个状态xn-1相关,即:

    P(x_n|x_1,x_2,...,x_{n-1}) = P(x_n|x_{n-1})
    这个过程就是为马尔可夫过程。

    image.png

    隐马尔科夫算法

    定义:
    隐式马尔可夫算法是对有未知参数(隐状态)的马尔可夫链进行建模的生成模型,如下图所示:


    在隐马尔可夫中,包含隐状态和观察状态,隐状态xi对于观察者而言是不可见的,
    观察状态yi对于观察者是可见的。
    隐状态之间存在转移概率,隐状态xi到对应的观察状态yi之间存在输出概率。

    假设

    1. 假设隐藏状态xi的状态满足马尔可夫过程,i时刻的状态xi的条件分布,仅与前一个状态xi-1相关,即:
      P(x_i|x_1,x_2,...,x_{i-1}) = P(x_i|x_{i-1})

    2. 假设观察序列中的各个状态仅取决于他所对应的隐状态,即:
      P(y_i|x_1,x_2,...,x_{i-1},y_1,y_2,...,y_{i-1},y_{i+1},...) = P(y_i|x_{i})

    存在问题
    在序列问题中,隐状态(标注)不仅和单个观测状态相关,还和观察序列的长度、上下文等信息相关。例如词性标注问题中,一个词被标注为动词还是名词,不仅和本身以及前一个词的标注有关,还和上下文中的其他词相关。

    条件随机场 (以线性链条件随机场为例)

    定义:
    给定 X=(x_1,x_2,...,x_n)Y=(y_1,y_2,...,y_n) 均为线性链表示的随机变量
    序列,若在给随机变量序列X的条件下,随机变量序列Y的条件概率分布P(Y|X)构成条件随机场,即满足马尔可夫性:
    P(y_i|x_1,x_2,...,x_{i-1},y_1,y_2,...,y_{i-1},y_{i+1}) = P(y_i|x,y_{i-1},y_{i+1})
    则称为 P(Y|X) 为线性链条件随机场。

    通过去除了隐马尔科夫算法中的观测状态相互独立假设,使算法在计算当前隐状态 xi 时,会考虑整个观测序列,从而获得更高的表达能力,并进行全局归一化解决标注偏置问题。


    参数化形式

    p\left(y | x\right)=\frac{1}{Z\left(x\right)} \prod_{i=1}^{n} \exp \left(\sum_{i, k} \lambda_{k} t_{k}\left(y_{i-1}, y_{i}, x, i\right)+\sum_{i, l} \mu_{l} s_{l}\left(y_{i}, x, i\right)\right)

    其中:

    Z(x)为归一化因子,在全局范围进行归一化,就是整个隐状态序列x1....n的全部可能,从而解决了局部归一化带来的偏置问题。

    Z(x)=\sum_{y} \exp \left(\sum_{i, k} \lambda_{x} t_{k}\left(y_{i-1}, y_{i}, x, i\right)+\sum_{i, l} \mu_{l} s_{l}\left(y_{i}, x, i\right)\right)

    tk 为定义在边上的特征函数,转移特征,依赖于前一个和当前位置

    s1 为定义在节点上的特征函数,状态特征,依赖于当前位置。

    简化形式

    因为条件随机场中同一特征在各个位置都有定义,所以可以对同一个特征在各个位置求和,将局部特征函数转化为一个全局特征函数,这样就可以将条件随机场写成权值向量和特征向量的内积形式,即条件随机场的简化形式。

    step1
    将转移特征和状态特征及其权值用统一的符合表示,设有k1个转移特征,k2个状态特征,K=k1+k2 记

    step2
    对转移与状态特征在各个位置i求和,记作

    step3
    将 λx 和 μl 用统一的权重表示,记作

    step4
    转化后的条件随机场可表示为:

    step5
    若 w 表示权重向量:
    w = (w_1,w_2,...,w_K)^T
    以 F(y,x) 表示特征向量,即

    则,条件随机场写成内积形式为:


    矩阵形式:

    将linear-CRF的参数化形式写成矩阵形式。为此我们定义一个m×m的矩阵M,m为y所有可能的状态的取值个数。M定义如下:
    M_i(x) = \Big[ M_i(y_{i-1},y_i |x)\Big] = \Big[ exp(W_i(y_{i-1},y_i |x))\Big] = \Big[ exp(\sum\limits_{k=1}^Kw_kf_k(y_{i-1},y_i, x,i))\Big]
    我们引入起点和终点标记y0=start,yn+1=stop, 这样,标记序列y的规范化概率可以通过n+1个矩阵元素的乘积得到,即:
    P_w(y|x) = \frac{1}{Z_w(x)}\prod_{i=1}^{n+1}M_i(y_{i-1},y_i |x)
    其中Zw(x)为规范化因子。

    条件随机场包含概率计算问题、学习问题和预测问题三个问题。

    1. 概率计算问题:已知模型的所有参数,计算观测序列 Y 出现的概率,常用方法:前向和后向算法;
    2. 学习问题:已知观测序列 Y ,求解使得该观测序列概率最大的模型参数,包括隐状态序列、隐状态间的转移概率分布和从隐状态到观测状态的概率分布,常用方法:Baum-Wehch 算法;
    3. 预测问题:已知模型所有参数和观测序列 Y ,计算最可能的隐状态序列 X ,常用算法:维特比算法。

    1.概率计算问题


    给定条件随机场 P(Y|X) ,输入序列 x 和 输出序列 y ;
    计算条件概率
    P(Y_i=y_i|x), P(Y_{i-1} = y_{i-1},Y_i = y_i|x)
    计算相应的数学期望问题;

    向前-向后算法:

    • 向前算法
      向前计算:
      对观测序列 x 的每个位置 i=1,2,...,n+1 ,定义一个 m 阶矩阵( m 为标记 Yi 取值的个数)

    对每个指标 i=0,1,...,n+1 ,定义前向向量 αi(x) ,则递推公式:


    其中,


    向后计算:
    对每个指标 i=0,1,...,n+1 ,定义前向向量 βi(x) ,则递推公式:

    概率计算
    所以,标注序列在位置 i 是标注 yi 的条件概率为:


    其中:


    期望计算
    通过利用前向-后向向量,计算特征函数关于联合概率分布 P(X,Y) 和 条件概率分布 P(Y|X) 的数学期望,即特征函数 fk 关于条件概率分布 P(Y|X) 的数学期望:


    其中,


    2. 学习问题

    这里主要介绍一下 BFGS 算法的思路。

    输入:特征函数 f_1,f_2,...,f_n:经验分布 \widetilde{P}(X,Y)

    输出:最优参数值 \widehat{w},最优模型P_{\widehat{w}}(y|x)

    1. 选定初始点 w^{(0)}, 取 B_0 为正定对称矩阵,k = 0;

    2. 计算 g_k = g(w^(k)),若 g_k = 0 ,则停止计算,否则转 (3) ;

    3. 利用 B_k p_k = -g_k 计算 p_k

    4. 一维搜索:求 \lambda_k使得

    5. w^{(k+1)} = w^{(k)} + \lambda_k * p_k

    6. 计算 g_{k+1} = g(w^{(k+1)}),

      g_k = 0, 则停止计算;否则,利用下面公式计算 B_{k+1}:

    7. k=k+1,转步骤(3);

    3. 预测问题

    对于预测问题,常用的方法是维特比算法,其思路如下:

    输入:模型特征向量 F(y,x) 和权重向量 w,输入序列(观测序列) x={x_1,x_2,...,x_n}

    输出:条件概率最大的输出序列(标记序列)y^{*}= (y_1^*,y_2^*,...,y_n^*),也就是最优路径;

    1. 初始化


    2. 递推,对i=2,3,...,n

    1. 终止


    1. 返回路径


    求得最优路径 y^{*}= (y_1^*,y_2^*,...,y_n^*)

    总结


    linear-CRF模型是判别模型,即linear-CRF模型要优化求解的是条件概率P(y|x),

    linear-CRF是利用最大熵模型的思路去建立条件概率模型,对于观测序列并没有做马尔科夫假设。

    参考材料


    条件随机场

    相关文章

      网友评论

          本文标题:Task4 条件随机场

          本文链接:https://www.haomeiwen.com/subject/tuouwhtx.html