分类 CRF算法 下的文章

生成模型(Generative Model)与判别模型(Discriminative Model)在机器学习领域是两种不同类型的模型,它们之间存在着显著的差异。以下是对这两种模型区别的详细分析:

一、定义与目的

生成模型:生成模型是概率统计和机器学习中的一类重要模型,指一系列用于随机生成可观测数据的模型。在给定某些隐含参数的条件下,它能够随机生成观测数据,并给观测值和标注数据序列指定一个联合概率分布。生成模型的应用十分广泛,可以用来对不同的数据进行建模,如图像、文本、声音等。
判别模型:判别模型是一种对未知数据y与已知数据x之间关系进行建模的方法,直接对条件概率p(y|x;θ)建模。在机器学习领域,判别模型是一种基于概率理论的方法,已知输入变量x,通过构建条件概率分布P(y|x)来预测y。

二、主要区别

1、优化准则不同
生成模型:优化训练数据的联合分布概率P(X,Y)。
判别模型:优化训练数据的条件分布概率P(Y|X)。
2、对观察序列的处理不同
生成模型:将观察序列作为模型的一部分。
判别模型:将观察序列仅作为条件。
3、训练复杂度
由于需要归一化,判别模型的训练复杂度通常较高。
生成模型的训练复杂度相对较低。
4、是否支持无指导训练
生成模型支持无指导训练,即可以在没有标签数据的情况下进行训练。
判别模型通常不支持无指导训练,它依赖于标签数据来构建条件概率分布。
5、本质区别
判别模型:估计的是条件概率分布p(class|context),即给定观测数据x,模型预测目标变量y的条件概率。
生成模型:估计的是联合概率分布p(x,y),即同时考虑观测数据x和目标变量y的联合分布。
6、模型应用
生成模型:由于能够模拟数据的生成过程,因此在无监督学习任务(如聚类、异常检测)中表现较好。同时,生成模型在刻画复杂学习任务中的依赖关系方面也更加灵活。
判别模型:由于直接对条件概率建模,因此在有监督学习任务(如分类、回归)中通常能够取得更好的效果。特别是当不考虑x与y之间的联合分布时,判别模型可以更加专注于学习x到y的映射关系。
三、典型模型
生成模型:高斯混合模型(Gaussian Mixture Model, GMM)、隐马尔可夫模型(Hidden Markov Model, HMM)、朴素贝叶斯分类器(Naive Bayes Classifier)等。
判别模型:线性回归模型、线性判别分析(Linear Discriminant Analysis, LDA)、支持向量机(Support Vector Machine, SVM)、神经网络(Neural Network, NN)等。
综上所述,生成模型和判别模型在定义、优化准则、对观察序列的处理、训练复杂度、是否支持无指导训练以及模型应用等方面都存在显著的差异。选择哪种模型取决于具体的应用场景和需求。

一、CRF模型的基本元素

1、 CRF的五个基本元素

HMM中,有5个基本元素:{I,O,A,B,π},我结合序列标志任务对这5个基本元素做一个介绍:

(1)I:状态序列。在这里,是指每一个词语背后的标注。
(2)O:观测序列。在这里,是指每一个词语本身。
(3)A:转移特征函数(状态转移概率矩阵):$m_kt_k(y_{i-1},y_i,x,i)$,k为特征个数
(4)B:状态特征函数(观测概率矩阵):$u_ls_l(y_i,x,i)$,$l$为特征个数

2、CRF模型

20201010203039807.png

建模函数:
$P(y|x)=\frac{1}{Z(x)} exp(\sum λ_kt_k(y_{i-1},y_i,x,i)+\sum u_ls_l(y_i,x,i))$

20201009172828707.png

20201009172848167.png

20201009172913704.png

3、CRF模型的一个假设

假设:满足马尔科夫性:
$P(Y_i|X,Y_1,....,Y_{i-1},Y_{i+1},...y_n)=P(Y_i|X,Y_{i-1},Y_{i+1})$

二、CRF模型有三种应用场景

我们做命名实体识别只用到其中的一种——求观察序列的背后最可能的标注序列。CRF解决的三个问题:

1、Evaluation(概率计算问题)

已知模型参数 λ= (A, B, π),计算某个观测序列发生的概率,即求P(O|λ)

2、Learning(学习问题)

给定观测序列$O=(o_1,o_2,...,o_n)$,如何调整模型参数 λ=(π, A, B), 使得P(O|λ)最大?,这个就是求模型的算法

3、Decoding(预测问题或者叫解码问题) 最常用

给定观测序列O和模型 λ,求最有可能的状态序列S(s1,s2,...st+1)。
例如:通过实体标注和训练,我们可以得到模型λ,现在给定了一个观测序列=我在凤凰金融工作,求最有可能的命名实体有哪些,想找到对应的状态序列S=(我,在,凤凰金融,工作)。

三、模型由来

1.HMM假设缺点
  • (1)齐次马尔科夫假设(又叫一阶马尔科夫假设)
    隐藏的马尔科夫链在任意时刻t的状态只依赖于前一时刻的状态,与其他时刻状态及观测状态无关。

$P(i_t|i_{t-1},o_{t-1},...,i_1) = P(i_t|i_{t-1})$

  • (2)观测独立假设
    任意时刻的观测状态只依赖于该时刻的马尔科夫链的状态,与其他时刻的观测状态无关。
2.CRF优点

因为HMM有两个前提假设,所以HMM注定是局部最优解,无法达到全局最优解,也就无法达到最好的效果。

3.CRF算法

CRF解决了HMM两个假设的缺点,使用概率无向图,提出了两个特征函数
1.定义在边上的转移特征函数:$m_kt_k(y_{i-1},y_i,x,i)$
2.定义在节点上的状态特征函数:$u_ls_l(y_i,x,i)$
每个特征函数前面有系数
注意:

  • 1.每个时刻t=i有多个特征函数,每个特征函数取值为1或者0,然后每个序列有多个时刻,所以模型上有两个加。
  • 2.每个特征函数其实是个局部特征,可以对局部特征求和,将局部特征转化为全局特征。那么为啥求和是全局特征?其实求和的本意是求乘积,因为e为底的指数和就是乘积的形式,这就需要概率无向图求联合概率分布的算法。
  • 3.CRF本质上是求概率无向图的联合概率分布,就是去各个时刻标注同时标注正确的联合概率,那么如何求概率无向图的联合概率分布呢?一般是将联合概率写成若干个子联合概率相乘的形式。也就是将联合概率因子分解。
  • 4.联合概率因子分解:概率无向图的联合概率分布表示为其最大团上的随机变量函数的乘积,我们平时所说的CRF指的是线性连CRF,所以说每个时刻的i,o构成了一个最大团,所以证明了全局最优解就是局部最优解的和的形式。

参考:
1.https://spaces.ac.cn/archives/5542/comment-page-1
2.https://www.zhihu.com/question/35866596/answer/236886066
3.https://www.cnblogs.com/pinking/p/9194865.html

对于CRF,直接用最大熵准则建模p(Y|X)的概率。
而HMM,是在做了markov假设下去建模p(Y,X)(即一切观察量的联合概率分布)