百面机器学习—8.概率图模型之HMM模型

时间:2024-10-26 07:10:52

文章目录

    • 一、一些概念
      • 1.什么是概率模型?
      • 2.什么是概率图模型?
      • 3.生成模型与判别模型的区别
      • 4.常见的概率图模型中哪些是生成模型,哪些是判别模型?
    • 二、HMM—隐马尔可夫模型
      • 1.什么是马尔科夫链?
      • 2.什么是隐马尔可夫模型?
      • 的两个基本假设
      • 4.确定HMM的两组空间与三个参数
      • 的三个基本问题
        • 5.1 概率计算问题
        • 5.2 预测问题
        • 5.3 学习问题
      • 6.三个基本问题的计算
        • 6.1 概率计算问题—前向-后向算法
        • 6.2 预测问题—维特比算法
        • 6.3 学习问题


插眼:

  • 百面机器学习—1.特征工程
  • 百面机器学习—2. 特征工程与模型评估要点总结
  • 百面机器学习—3.逻辑回归与决策树要点总结
  • 百面机器学习—模型基础知识
  • 百面机器学习—要点总结
  • 百面机器学习—与LDA要点总结
  • 百面机器学习—均值算法、EM算法与高斯混合模型要点总结
  • 百面机器学习—8.概率图模型之HMM模型
  • 百面机器学习—9.前馈神经网络面试问题总结
  • 百面机器学习—10.循环神经网络面试问题总结
  • 百面机器学习—11.集成学习(GBDT、XGBoost)面试问题总结
  • 百面机器学习—12.优化算法

一、一些概念

1.什么是概率模型?

  概率模型,顾名思义,就是将学习任务归结于计算变量的概率分布的模型。在生活中,我们经常会根据一些已经观察到的现象来推测和估计未知的东西——这种需求,恰恰是概率模型的推断《lnference)行为所做的事情。推断(linference)的本质是:利用可观测变量,来推测未知变量的条件分布。朴素贝叶斯、逻辑回归、隐马尔可夫模型(HMM))和条件随机场(CRF)都是概率模型。

2.什么是概率图模型?

  概率图模型是一种以图(Graph)为表示工具,来表达变量间相关关系的概率模型。在概率图模型中般用节点来表示一个或者一组随机变量。而节点之间的边则表示两个(组)变量之间的概率相关关系。边可以是有向(有方向)的,也可以是无向的。概率图模型大致可以分为:

  • 有向图模型(贝叶斯网络):用有向无环图表示变量间的依赖关系;
  • 无向图模型(马尔可夫网)∶用无向图表示变量间的相关关系。

3.生成模型与判别模型的区别

  概率图模型可以分为生成模型与判别模型。
假设可观测到的变量集合为X,需要预测的变量集合为Y,其他的变量集合为Z。生成式模型是对联合概率分布P(X,Y,Z)进行建模,在给定观测集合X的条件下,通过计算边缘分布来得到对变量集合Y的推断,即
在这里插入图片描述
判别式模型是直接对条件概率分布P(Y,Z|X)进行建模,然后消掉无关变量Z就可以得到对变量集合Y的预测,即
在这里插入图片描述

4.常见的概率图模型中哪些是生成模型,哪些是判别模型?

  常见的概率图模型有朴素贝叶斯、最大熵模型、贝叶斯网络、隐马尔可夫模型、条件随机场、pLSA、LDA等。朴素贝叶斯、贝叶斯网络、pLSA、LDA等模型都是先对联合概率分布进行建模,然后再通过计算边缘分布得到对变量的预测,所以它们都属于生成式模型;而最大嫡模型是直接对条件概率分布进行建模,因此属于判别式模型。隐马尔可夫模型和条件随机场模型是对序列数据进行建模的方法,其中隐马尔可夫模型属于生成式模型,条件随机场属于判别式模型。

二、HMM—隐马尔可夫模型

1.什么是马尔科夫链?

  假设一个随机过程中, t n t_n tn时刻的状态 x n x_n xn的条件分布,仅仅与其前一个状态 x n − 1 x_{n-1} xn1有关,即 P ( x n ∣ x 1 , x 2 , . . . , x n − 1 ) = P ( x n ∣ x n − 1 ) P(x_n|x_1,x_2,...,x_{n-1})=P(x_n|x_{n-1}) P(xnx1,x2,...,xn1)=P(xnxn1),则将其称为马尔可夫过程。时间和状态的取值都是离散的马尔可夫过程也称为马尔可夫链。
在这里插入图片描述

2.什么是隐马尔可夫模型?

  隐马尔可夫模型是对含有未知参数(隐状态)的马尔可夫链进行建模的生成模型。在隐马尔可夫模型中,隐状态 s i s_i si对于观测者是不可见的,观测者能观测到的只有每个隐状态 s i s_i si对应的输出 o i o_i oi,而观测状态 o i o_i oi的概率分布仅仅取决于对应的隐状态 s i s_i si。隐马尔可夫模型是一个关于时序的概率模型,隐状态与观测状态都是一个时间序列。
在这里插入图片描述

在这里插入图片描述

的两个基本假设

假设1:假设隐藏的马尔可夫链在任意时刻 t t t的状态只依赖于前一个时刻 t − 1 t-1 t1的状态,与其他时刻的状态及观测无关,也与时刻 t t t无关。
在这里插入图片描述
假设2:假设任意时刻的观测只依赖于该时刻的马尔可夫链状态,与其他观测及状态无关。
在这里插入图片描述

4.确定HMM的两组空间与三个参数

  基于上述假设,所有变量的联合概率分布为:
在这里插入图片描述
设HMM的状态变量(离散型),总共有N种取值,分别为: S 1 , S 2 , . . . , S N {S_1,S_2,. . . ,S_N} S1,S2,...,SN。观测变量(也是离散型),总共有M种取值,分别为: O 1 , O 2 , . . . , O M {O_1,O_2,.. . ,O_M} O1,O2,...,OM。那么,要确定一个HMM,除了要指定其对应的状态空间S和观测空间О之外,还需要三组参数,分别是:
在这里插入图片描述
通常我们用 λ = [ A , B , π ] \lambda=[A, B,π] λ=[A,B,π]来指代这三组参数。有了状态空间S和观测空间O,以及参数 λ \lambda λ,一个HMM就被确定了

的三个基本问题

  前两个问题是模型已经存在之后如何使用模型的问题,而最后一个则是如何通过训练得到模型的问题。

5.1 概率计算问题

已知信息:
模型 λ = [ A , B , π ] \lambda=[A,B,π ] λ=[A,B,π]
观测序列 O = ( o 1 , o 2 , . . . , o T ) O=(o_1, o_2, . . . , o_T) O=(o1,o2,...,oT)
求解目标:计算在给定模型 λ \lambda λ下,已知观测序列 О О О出现的概率: P ( O ∣ λ ) P(O|\lambda) P(Oλ)。也就是说,给定观测序列,求它和评估模型之间的匹配度

5.2 预测问题

已知信息:
模型 λ = [ A , B , π ] \lambda=[A,B,π ] λ=[A,B,π]
观测序列 O = ( o 1 , o 2 , . . . , o T ) O=(o_1, o_2, . . . , o_T) O=(o1,o2,...,oT)
求解目标:计算在给定模型 λ \lambda λ下,使已知观测序列 О О О的条件概率 P ( O ∣ S ) P(O|S) P(OS)最大的状态序列 S = ( s 1 , s 2 . . . , s T ) S=(s_1,s_2 ..., s_T ) S=(s1,s2...,sT)。即给定观测序列,求最有可能与之对应的状态序列

5.3 学习问题

已知信息:
观测序列 O = ( o 1 , o 2 , . . . , o T ) O=(o_1, o_2, . . . , o_T) O=(o1,o2,...,oT)
或许也会给定与之对应的状态序列: S = ( s 1 , s 2 , . . . , s T ) S = (s_1, s_2,... , s_T) S=(s1,s2,...,sT)
求解目标︰估计模型 λ = [ A , B , π ] \lambda=[A,B,π ] λ=[A,B,π]参数,使得该模型下观测序列概率 P ( O ∣ λ ) P(O|\lambda) P(Oλ)最大。也就是训练模型,使其最好地描述观测数据。

6.三个基本问题的计算

6.1 概率计算问题—前向-后向算法

  前向一后向算法是一种动态规划算法。它分两条路径来计算观测序列概率,一条从前向后(前向),另一条从后向前(后向)。这两条路径,都可以分别计算观测序列出现的概率。

  1. 前向算法

    α t ( i ) = P ( o 1 , o 2 , . . . , o t , s t = S i ∣ λ ) \alpha_{t}(i)= P(o_1 , o_2,. . . , o_t , s_t=S_i|\lambda) αt(i)=P(o1,o2,...,ot,st=Siλ)为前向概率。
    它表示的是:给定 λ \lambda λ的情况下,到时刻 t t t时,已经出现的观测序列为 o 1 , o 2 , . . . o t o_1,o_2,...o_t o1,o2,...ot,且此时状态值为 S i S_i Si的概率。
    在这里插入图片描述

  2. 后向算法
    在这里插入图片描述
6.2 预测问题—维特比算法

  维特比算法——用动态规划求解概率最大路径

6.3 学习问题

  HMM的学习算法根据训练数据的不同,可以分为有监督学习和无监督学习两种。
如果训练数据既包括观测序列,又包括对应的状态序列,且两者之间的对应关系已经明确标注了出来,那么就可以用有监督学习算法。否则,如果只有观测序列而没有明确对应的状态序列,就需要用无监督学习算法训练。

  1. 有监督学习
    在这里插入图片描述
  2. 无监督学习
    在这里插入图片描述

如果对您有帮助,麻烦点赞关注,这真的对我很重要!!!如果需要互关,请评论或者私信!
在这里插入图片描述