美文网首页
crf模型原理及解释

crf模型原理及解释

作者: 不分享的知识毫无意义 | 来源:发表于2020-01-27 10:41 被阅读0次

    0.概率图

    在明白crf之前,首先我们来看看概率图。概率图是用图来表示变量概率依赖关系,是概率论和图论的结合。从概率图衍生而来的算法有很多,包括朴素贝叶斯、最大熵、hmm、条件随机场、主题模型等。
    概率图分为有向概率图,又叫贝叶斯网络,其中的有向代表的是单边依赖关系;无向概率图,又叫马尔科夫网络,其中的无向代表的是双边依赖关系。

    • 贝叶斯网络
      贝叶斯网络又叫信念网络,是一个有向无环图的网络,其中节点表示的是随机变量,可以是观测变量、隐性变量或者参数等。如果两个变量之间用单向箭头连接,则说明两个变量之间存在因果关系,会产生一个条件概率。
      贝叶斯网络
      这里有一个需要注意的是,对于联合概率分布可以通过概率相乘的形式推出,就是先求k-1至1发生时候k发生情况下k发生概率,依此类推相乘。
      联合概率公式
      关于贝叶斯网络我们有几种不同的模式,分别为head-to-head、 tail-to-tail、 head-to-tail,这里不细讲了,大家自己可以百度一下。根据head-to-hail我们可以推出马尔科夫性,即:当前状态只跟上一状态有关,跟上上或上上之前的状态无关。
    • 马尔科夫网络
      马尔科夫网络是无向有环图,节点表示随机变量,边表示节点之间存在某种相互依赖的关系。马尔科夫图上的变量都满足马尔科夫性,即不相邻的变量之间条件独立,马尔科夫随机场的成对、局部、全局马尔科夫性都是在描述这一个性质。


      马尔科夫网络

    1.马尔科夫性

    上面已经说了马尔科夫就是说当前状态只跟上一状态有关,而跟其他状态无关。

    • 成对马尔科夫性
      u和v是图中没有边相连的两个节点,分别对应两个变量Yu和Yv,假设其他所有的节点为o,对应变量集合为Yo,成对马尔科夫性指的是给定Yo的情况下,Yu和Yv是条件独立的。


      成对马尔科夫性
    • 局部马尔科夫性
      假设v是网络中任意节点,W是与v相连的节点集合,O为网络中的其他节点,对应的变量集合分别为Yv、Yw、Yo,局部马尔科夫性指的是在给定变量组Yw的情况下,Yv与Yw条件独立。


      局部马尔科夫性
    • 全局马尔科夫性
      假设节点集合A和B是网络中任意被节点集合C分开的节点集合,对应的节点集合仍然为YA、YB、YC,全局马尔科夫性指的是给定变量组YC,YA和YB条件独立。


      全局马尔科夫性

      个人认为马尔科夫性没有什么特殊的意义,大家只记得马尔科夫性就可以了,即条件独立,当前状态只和前一状态有关。

    2.条件随机场模型解释

    2.1 定义

    设X与Y是随机变量,P(Y∣X)是在给定X的条件下Y的条件概率分布。若随机变量Y构成一个由无向图G=(V,E)表示的马尔可夫随机场,即


    条件随机场的成立条件

    对任意结点v成立,则称条件概率分布P(Y∣X)为条件随机场。其中w~v表示与v相连的节点w≠v表示除v外的所有节点,这就是条件独立的概念。
    实际上,我们通常考虑线性链的情况,并且X和Y具有相同的结构,这个可以理解为隐藏状态和观察状态,X就是我们能观察到的,但是Y我们观察不到:


    线行链条件随机场
    用数学公式表示就是:
    线性链条件随机场公式

    2.2 参数化表达

    条件随机场最终求的都是一个联合概率,根据马尔科夫性,我们可以把联合概率表示成相邻节点的函数。


    条件向量场的参数化表达

    Z(x)就是exp那一坨的求和,tk和sl是特征函数,这个我们可以自己定义,剩下的是权重。
    这样一来相乘的问题我们化简成相加的问题了。
    这样写不太好理解和推导,需要化简,于是我们假设有K1个转义特征和K2个状态特征,定义一个分段函数:


    分段函数
    然后对各个位置求和:
    求和

    然后定义一个分段的权重:


    分段权重
    最后得到概率分布的公式:
    化简后的概率公式
    然后根据向量相乘的定义,可以写成向量积的形式:
    向量化表示

    2.3 矩阵形式

    矩阵是最容易计算的了,因此进一步表示为矩阵形式。首先定义一个m阶矩阵,这个好理解,就是m个y可能的取值。


    M阶矩阵定义过程

    这个式子呢,从后往前看,最下面那个是不是眼熟,就是条件随机场向量化表达公式的前半部分,然后取exp以后就可以得到m阶矩阵了,这个懒得解释自己想一下就行了。提示一下m阶的意思是呢,yi-1有m种表达,yi有m种表达,最后综合起来就是m阶了。
    最终矩阵相乘就表示一个概率的可能性,然后规范化以后就可以得到概率分布。


    规范化矩阵
    至于为什么除各个矩阵的第一个元素,还有待考虑。

    3.条件随机场模型求解过程

    要时刻记得这事一个判别式模型,是要直接计算P(x|y)的。

    3.1 定义特征函数

    我们都知道条件随机场有一个转移特征和状态特征,这些都可以事先定义好。我们定义好特征函数后,从模型表达式上来看就剩一个wk序列的参数需要计算了。参数求解方法有很多,牛顿法、拟牛顿法等等,这些都是运筹里的优化算法,需要了解的话我会单独的写一个专题出来。这里不展开了。

    3.2 概率计算

    其实就是两个递推公式,具体不展开了,不太好理解:


    标记yi概率
    标记yi-1和标记yi概率

    3.3 训练模型

    目标函数,参考极大似然估计,跟逻辑回归类似,取下边这个:


    目标函数

    然后采用拟牛顿法求解,太难了,不说了,知道怎么回事就行。

    3.4 预测过程

    预测过程简而言之就是找到概率最大的那个状态序列,采用维特比算法,用到了动态规划,可以减少计算量。具体也不多说,因为这篇文章偏向于让大家都懂计算流程,不太考虑细节,可以参考下边这个文章。https://www.cnblogs.com/zhibei/p/9391014.html

    4.结语

    基本上碎碎念的就这么多,大家一般用crf都是用在Bilstm之后,巧的是tensorflow已经封装好crf层,同志们直接用好了。

    相关文章

      网友评论

          本文标题:crf模型原理及解释

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