• 隐马尔可夫模型学习笔记


    马尔科链模型

    • 一个系统有(N)个状态,随着时间的推移,系统从某一状态转移到另一个状态,设为时间t的状态,系统在时间t处于状态的概率取决于其在时间1,2,…,t-1的状态,概率为:

    [P(q_t = S_j | q_{t-1}=S_i, q_{t-2}=S_k,..) ]

    • 如果系统在时间(t)时刻的状态只与其在(t-1)时刻的状态有关,则该系统构成一个离散的一阶马尔科夫链(马尔科夫过程):

    [P(q_t=S_j | q_{t-1}=S_i,q_{t-2}=S_k,..)=P(q_t=S_j | q_{t-1}=S_i) ]

    • 如果只考虑独立于时间t的随机过程:

    [P(q_t=S_j | q_{t-1}=S_i)=a_{ij},1<=i,j<=N ]

    其中(a_{ij})为转移概率,必须满足(a_{ij}>=0),且(a_{ij})的和为1。

    例子

    • 假设一段时间的气象可以用三种状态的马尔科夫模型(M)描述,S1:雨,S2:多云,S3:晴,状态转移矩阵为:

    [A = [a_{ij}] = [0.4, 0.4, 0.3; 0.2, 0.6, 0.2;0.1, 0.1, 0.8] ]

    • 如果第一天为晴天,根据这一模型,在今后七天中天气O=“晴晴雨雨晴云晴”的概率为:

    egin{equation}
    egin{aligned}
    &P(O|M)
    &= P(S_3,S_3,S_3,S_1,S_1,S_3,S_2,S_3|M)
    &=P(S_3)cdot P(S_3|S_3)cdot P(S_3|S_3)cdot P(S_1|S_3)cdot P(S_1|S_1)cdot P(S_3|S_1)cdot P(S_2|S_3)cdot P(S_3|S_2)
    &=1 cdot a_{33}cdot a_{33}cdot a_{31}cdot a_{11}cdot a_{13}cdot a_{32} cdot a_{23}
    &=1.536 imes10^{-4}
    end{aligned}
    end{equation}

    隐马尔科夫模型(HMM)

    • 在马尔科夫模型中,每一个状态表示一个可以观察的事件
    • 在HMM中观察到的事件是状态的随机函数,因此该模型十一双重随机过程,其中状态转移过程是不可观察的(隐蔽)的(马尔科夫链),而可观察的时间的随机过程是隐蔽的状态转换过程的随机函数(一般随机过程)。

    HMM的三个假设

    对于一个随机事件,有一观察值序列:(O=O_1,O_2,...,O_TQ=q_1,q_2,...,q_T)

    • 假设1:马尔科夫性假设(状态构成一阶马尔科夫链)
    • 假设2:不动性假设(状态与具体时间无关)
    • 假设3:输出独立性假设(输出仅与当前的状态有关)$$ P(O_1,...,O_T|q_1,...,q_T)= prod P(O_t|q_t)$$

    HMM定义

    • 一个因马尔科夫模型(HMM)是有一个五元组描述的:$$ lambda =(N,M,A,B,pi )$$

    其中

    • (N):状态的有限集合
    • (M):观察值的有限集合
    • (A):状态转移概率矩阵
    • (B):观察值概率分布
    • (pi={pi_i},pi _i=P(q_1=s_i)):初始状态分布

    观察序列产生步骤

    • 1.根据初始状态概率分布(pi=pi_i),选择一初始状态
    • 2.设(t=1)
    • 3.根据状态Si的输出概率分布b_{jk},输出(O_t=v_k)
    • 4.根据状态转移概率分布,转移到新状态(q_{t+1}=S_j)
    • 5.设(t=t+1),如果(t<T),重复步骤3、4,否则结束

    HMM的三个基本问题

    令为给定HMM的参数

    • (O=O_1,...,O_T)为观察序列,则HMM的三个基本问题为:评估问题、解码问题、学习问题
    • 评估问题:
      对于给定模型,求某个观察值序列的概率(P(O|lambda));
    • 解码问题:
      对于给定模型和观察值序列,求可能性最大的状态序列(max_Q {P(Q|O,lambda)});
    • 学习问题:
      对于给定一个观察值序列(O),调整参数(lambda),使得观察值出现的概率(P(O|lambda))

    三个基本问题的求解算法

    • 评估问题:前向算法
      定义前向变量,采用动态规划算法,复杂度(O(N^2T))
    • 解码问题:韦特比算法
      采用动态规划算法,复杂度(O(N^2T))
    • 学习问题:向前向后算法
      EM算法是一个特例,带隐变量的最大似然估计

    举个例子——天气与作习

    举个常见的例子来引出下文,同时方便大家理解!比如我在不同天气状态下去做一些事情的概率不同,天气状态集合为{下雨,阴天,晴天},事情集合为{宅着,自习,游玩}。假如我们已经有了转移概率和输出概率,即P(天气A|天气B)和P(事情a|天气A)的概率都已知道,那么则有几个问题要问(注意,假设一天我那几件事情中的一件)。

    • 1.假如一周内的天气变化是 下雨->晴天->阴天->下雨->阴天->晴天->阴天,那么我这一周 自习->宅着->游玩->自习->游玩->宅着->自习的概率是多大?
    • 2.假如我这一周做事序列是 自习->宅着->游玩->自习->游玩->宅着->自习,不知道天气状态的情况下这个做事序列的概率是多大?
    • 3.假如一周内的天气变化是 下雨->晴天->阴天->下雨->阴天->晴天->阴天,那我们这一周最有可能的做事序列是什么?
    • 4.假如我这一周做事序列是 自习->宅着->游玩->自习->游玩->宅着->自习,那么这一周的天气变化序列最有可能是什么?

    参考网址:
    http://blog.csdn.net/stdcoutzyx/article/details/8522078
    http://wenku.baidu.com/link?url=mgefnHLJRHgX6zghIcnZPIU0KCW5A-R9BsSnwvvbTXwMuKrn5caBCOv860O1ICAUpdGtgElY5d6BcybY1mBfRCks2rKEz9dr9eIiP-s7HMm

  • 相关阅读:
    Java 8简明教程
    Redis事务机制和分布式锁
    【 Tomcat 】tomcat8.0 基本参数调优配置-----(2)
    【 Tomcat 】tomcat8.0 基本参数调优配置-----(1)
    Nginx的一理解(2)
    Nginx的一理解(1)
    jav设计模之的动态代理
    Java设计模式之《适配器模式》及应用场景
    Java设计模式之三种工厂模式
    pytorch高阶op
  • 原文地址:https://www.cnblogs.com/milkcoffeesugar/p/5741819.html
Copyright © 2020-2023  润新知