• HMM与CRF


    HMM与CRF

    隐马尔可夫

    原理

    代码实现

    条件随机场

    原理

    条件随机场是从概率无向图(马尔可夫随机场)扩展得到的,概率无向图的联合概率分布$P(Y)$可由概率图中所有的最大团$C$上的势函数$Psi_{C}(Y_{C})$的乘积形式表示,$Y_{C}$是$C$对应的随机变量,即

    $$P(Y)=frac{1}{Z} prod_{C} Psi_{C}(Y_{C})$$

    其中$Z$是规范化因子,保证$P(Y)$是一个概率分布。函数$Psi_{C}(Y_{C})$要保证是严格正的,且通常为定义为指数函数。

    $$Psi_{C}(Y_{C})=expleft( -E(Y_{C}) ight)$$

    条件随机场是给定随机变量$X$条件下,随机变量$Y$的马尔可夫随机场,这里介绍的是定义在线性链上的条件随机场,在标注问题中,$X$表示输入的观测序列,$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) ight)$$

    $t_{k}$是定义在边上的特征函数, 称为转移特征特征,依赖于当前位置和前一个位置,$s_{l}$是定义在结点上的特征函数,称为状态特征,依赖于当前位置。通常,特征函数$t_{k}$$s_{l}$取值为1或0,$ lambda_{k}$和$mu_{l}$是特征函数对应的权值。

    训练时用极大似然估计得到似然函数

    $$L left( lambda ight) = sum_{M}logP(Y^{m}|x^{m}, lambda)$$

    其中$lambda$是特征函数前的权值,也是我们想要得到的参数。对其直接求导发现不可解,好在极大似然是凹函数,我们在$lambda$空间中随便找一点$lambda_{1}$,然后按照某种方式找到$lambda_{2}$,使$Lleft( lambda_{2} ight) > Lleft( lambda_{1} ight)$,就能接近最优解了,不断重复这个过程,最终能得到最优解,这个优化方法有很多种,牛顿法、拟牛顿法、l-bfgs法等。

    条件随机场实际上是定义在时序数据上的对数线性模型

    代码实现

    面试问题

    隐马三个基本问题:

    (1)概率计算问题

    给定模型和观测序列,求解在模型$lambda$的条件下出现观测序列$O$的概率$P(O|lambda)$。换言之,如何评估模型与观测序列之间的匹配度?

    (2)学习问题

    给定观测序列$O=(o_{1},o_{2},...,o_{T})$,估计模型参数$lambda=(A,B,pi)$,使得$P(O|lambda)$最大。换言之,如何训练模型使其能最好地描述观测数据。

    (3)预测问题

    也称为解码问题。已知模型$lambda$和观测序列$O$,求解最可能的状态序列$I=(i_{1},i_{2},...i_{T})$。换言之,如何根据观测序列来推测隐藏的状态序列。

    解决三个问题的基本算法:

    (1)前向后向算法

    (2)Baum-Welch算法(EM)

    (3)维特比算法

    HMM、CRF与LR的关系

    CRF与LR

    (1)CRF与LR都是对数线性模型,条件随机场是逻辑回归的序列化版本。逻辑回归是用于分类的对数线性模型,条件随机场是用于序列化标注的对数线性模型。

    HMM与CRF

    (1)HMM是生成式模型,LR与CRF是判别式模型。

    (2)CRF计算的是全局最优解,不是局部最优值。

    (3)CRF是给定观察序列的条件下,计算整个标记序列的联合概率。而HMM是给定当前状态,计算下一个状态。

    (4)CRF比较依赖特征的选择和特征函数的格式,并且训练计算量大

    (5)HMM也可以做序列标注任务。每一个HMM模型都可以用CRF模型表示,但CRF可以定义数量更多,种类更丰富的特征函数,还可以对特征函数使用任意的权重。CRF比HMM要强大。

    参考

    https://www.hankcs.com/ml/conditional-random-field.html

    https://zhuanlan.zhihu.com/p/45727395

    https://www.cnblogs.com/lijieqiong/p/6673692.html

  • 相关阅读:
    Delphi WebService连接数据库
    编写一个单独的Web Service for Delphi7(步骤)
    Delphi stdCall意义
    Delphi WEB APP DEBUGGER是如何使用的
    用delphi的THTTPRIO控件调用了c#写的webservice。
    Delphi 编写的Web Service
    Delphi WebService 中 Web App Debugger 的建议
    flex布局浅谈和实例
    IOS开关效果
    文字渐变和边框渐变
  • 原文地址:https://www.cnblogs.com/4PrivetDrive/p/12141639.html
Copyright © 2020-2023  润新知