小飞侠 - 统计模型
type: channel
link: http://www.kexue.love/index.php/category/tjmx/
items: 生成模型和判别模型区别
items: CRF算计详解
items: HMM算法详解
items: HMM,CRF区别

生成模型和判别模型区别
type: item
date: 2023-07-04T04:14:00+00:00
description: 生成模型（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算计详解
type: item
date: 2020-10-11T08:49:00+00:00
description: 一、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模型建模函数：$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))$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-12.https://www.zhihu.com/question/35866596/answer/2368860663.https://www.cnblogs.com/pinking/p/9194865.html

HMM算法详解
type: item
date: 2020-10-10T11:47:00+00:00
description: 一、HMM模型的基本元素1、 HMM的五个基本元素HMM中，有5个基本元素：{I,O,A,B,π}，我结合序列标志任务对这5个基本元素做一个介绍：(1)I:状态序列。在这里，是指每一个词语背后的标注。(2)O:观测序列。在这里，是指每一个词语本身。(3)A:状态转移概率矩阵。在这里，是指某一个标注转移到下一个标注的概率。(4)B:观测概率矩阵，也就是发射概率矩阵。在这里，是指在某个标注下，生成某个词的概率。(5)π:初始概率矩阵。在这里，是指每一个标注的初始化概率。其中：$I = ({i_1,i_2,i_3...i_N})$ 状态序列$O = ({o_1,o_2,o_3...o_N})$ 观测序列$A = [a_{ij}]_{N*N}$ 状态转移概率矩阵$B = [b_j(k)]_{N*N}$ 观测概率矩阵 π 初始状态概率向量HMM主要解决预测问题：也称为解码（decoding）问题。已知模型 λ＝(A，B, π) 和观测序列$O = ({o_1,o_2,o_3...o_N})$ ，，求对给定观测序列条件概率P(I|O)最大的状态序列 $I = ({i_1,i_2,i_3...i_N})$ 。即给定观测序列，求最有可能的对应的状态序列。2、HMM模型 模型：λ = (A,B,π) A,B,π为隐马尔可夫模型的三个要素 这三个元素都是通过统计得到的，这三个值就是模型的参数，得到这三个值的过程就是模型训练的过程，所以说HMM算法是比较简单的算法。模型已经知道了，可以认为各个状态的全连接路径已经知道了，给个观测序列，通过veterbi算法求解所有路径中的最优路径。3、HMM模型的两个假设(1)齐次马尔科夫假设（又叫一阶马尔科夫假设） 隐藏的马尔科夫链在任意时刻t的状态只依赖于前一时刻的状态，与其他时刻状态及观测状态无关。$P(i_t|i_{t-1},o_{t-1},...,i_1) = P(i_t|i_{t-1})$(2)观测独立假设 任意时刻的观测状态只依赖于该时刻的马尔科夫链的状态，与其他时刻的观测状态无关。而以上的这些元素，都是可以从训练语料集中统计出来的。最后，我们根据这些统计值，应用维特比（viterbi）算法，就可以算出词语序列背后的标注序列了。二、隐马尔可夫模型有三种应用场景我们做命名实体识别只用到其中的一种——求观察序列的背后最可能的标注序列。最后，来说下HMM解决的三个问题：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=(我，在，凤凰金融，工作)。三、求模型λ：解决第二个问题HMM是一种生成模型，所以求的是联合概率注意：我们平时所说的，求模型指的是求目标函数，例如在线性回归中我们的目标函数为$h(λ)=λ_1X+λ_2$，求目标函数只需要求得参数λ，所以平时我们说求模型就是求参数。$P(X,Y)$四、维特比算法(Viterbi):解决第三个问题维特比算法主要用动态规划来求解HMM的预测问题：一直模型和观测序列，求最可能的状态序列假如状态序列为：$x_1,x_2,x_3 ... x_N$对应观测序列为：$y_1,y_3,y_3 ... y_N$那么我们的问题就转化为：在盲打时候已知输入序列$y_1,y_3,y_3 ... y_N$，对应的最可能汉字$x_1,x_2,x_3 ... x_N$。求最可能的汉字序列是什么？公式：$x_1,x_2,x_3 ... x_N = ArgMaxP(x_1,x_2,x_3 ... x_N|y_1,y_3,y_3 ... y_N)$$= ArgMax \prod_{i=1}^N P(y_i|x_i)*P(x_i|x_{i-1})$其中公式$ArgMax \prod_{i=1}^N P(y_i|x_i)*P(x_i|x_{i-1})$主要通过贝叶斯公式变换得来我们知道贝叶斯公式为：$P(A|B) = \frac {P(B|A)*P(A)}{P(B)}$那么$P(x|y) = \frac {P(y|x)*P(x)}{P(y)}$,其中P(y)为已知常数，其中P(x)实际为$P(x_t|x_{t-1})$,根据马尔科夫假设当前时刻假设之和前一时刻相关。例如，输入观测序列：…

HMM,CRF区别
type: item
date: 2020-10-10T01:51:00+00:00
description: 对于CRF，直接用最大熵准则建模p(Y|X)的概率。而HMM，是在做了markov假设下去建模p(Y,X)（即一切观察量的联合概率分布）