Background

频率派: 统计机器学习, 核心思想是定义一个Loss Function, 然后进行优化

一般思路:

  1. 定义model: e.g. 超平面
  2. 定义strategy: 定义优化的策略, 即定义一个Loss Function. 不同的Loss Function会偏向优化不同的方面
  3. 算法求解: e.g. 梯度下降,随机梯度下降,牛顿法,逆牛顿法,…

贝叶斯派: 概率图模型, 核心思想是做推断, 求后验概率, 求后验概率相关的计算(方差, 期望, etc…), 采用数值积分的方式(Monta Carlo的方法有了实质的突破)

那么HMM从根本上是属于概率图模型

概率图模型

  • 有向图: 贝叶斯网络

  • 无向图: 马尔可夫随机场

    • 概率图+时间: 动态模型 Dynamic Model

      一般而言的模型, 如高斯混合模型(GMM), N个样本: 这些样本之间是独立同分布的.

      但是Dynamic Model是在普通模型的基础上添加了时间序列. 这个时间可以认为是真实的时间, 也可以是一个抽象的时间, 也可以是一个序列(一段话, 一个句子(nlp))

      这个时候之间就不是独立同分布(i.i.d)的了

      e.g.

      graph LR
      i1-->i2
      i1-->o1
      i2-->i3
      i2-->o2
      i3-->...
      

      其中, 是系统状态system state, 是隐变量, 而是观测变量.

      可以认为横向是时间, 或者说是序列; 纵向是混合mixture

      如果时间序列上(横向)的system state是离散的, 每一个隐变量的取值是离散的: HMM; 如果是连续, 那么判断是否是线性的. 其中一个线性的代表是Kalman Filter, 非线性的代表是Partide Filter

Hidden Markov Model

HMM

参数

假设观测变量用表示, 系统状态变量用i表示

然后假设取值集合(值域): o的值域, i的取值集合(值域):

其中, . 注意这里的下标表示状态取值的第个值,而指系统变量时刻的取值

这里的是指的是在初始状态下为第个状态的概率, 并不是第个system state的概率. 默认初始状态下所有system state的分布相同

假设

  • 齐次马尔可夫假设

    可以简单认为是无后效性的. 也就是说, 认为未来和过去没有关系

    即,只和相关, 其他的都无关

  • 观测独立假设

    即, 只和有关

三个主要问题

  • Evaluation

    根据初始化的参数

    常用Forward Backward Algorithm

  • Learning

    求参数

    使用EM算法

  • Decoding

    根据O求解I. 常见两种求解:

    1. 预测, 求解
    2. 滤波, 求解

Evaluation

Given , find

其中

因此

注意到时间复杂度为是一个指数时间增长的, 时间复杂度非常恐怖. 所以使用另外的方法计算

前向算法

现在假设一个记号(注意分别作为参数的i是的下标,而是表示第个system state)

这个记号表示第个system state为, 并且观测到的结果为的概率.

那么有:

尝试通过累加的方式消除掉引入的

现在通过计算能化简计算:

后向传播

假定一个记号, 表示在给定第个时刻的system state 之后, 可观测变量为的概率

注意, 是正好错开了一个时序

那么有

那么根据, 写出:

现在推导的地推表达式

引论: Markov Blanket and

D-separate
graph TB
X-->Y-->Z
M-->N
M-->P
A-->B
C-->B

这个时候,有三种情况:

  1. 第一种原来是条件不独立,给定之后变成条件独立
  2. 第二种原来条件不独立,给定后条件独立
  3. 第三种原来条件独立,给定之后条件不独立

可以认为,两者之间如果有一条通路,那么就算是条件独立。但是注意第三种,给定之后不是将通路打断,而是把断掉的通路合成

Link to original

Learning

Baum-Welch算法是在EM算法之前提出的, 但是实际上Baum-Welch算法就是EM算法的一种特殊形式

考虑EM算法公式:

在这里, 隐变量, , , 那么就有了针对HMM的EM算法的公式:

注意, 是上一次迭代产生的结果, 那么是一个常数, 对求解没有关系, 因此可以舍弃.

我们再定义中间的函数

将原始的Evalution带入表达式:

应用拉格朗日乘子法:

关于的推导过程是类似的, 这里不做推导.

Decoding

也称为Viterbi Algorithm

我们可以认为这里有一个动态规划的问题

假设路径的长度是, 那么我们的目的就是找到最短路径. 这样就能最大化概率

定义

意义是达到时刻的时候, 选择作为system state的概率的最大值

状态转移方程为:

记录中间经过的路径:

其他

假设隐变量是, 观测变量是

filtering

是给定观测结果从之后找到对应的隐变量

这个可以做online learning在线学习

每进来一个数据就可以做一次filtering, 是可以做online的

smoothing

给定所有的观测值, 然后求解某一个时刻的隐变量

更偏向offline, 类似于全部结束之后的整体复盘

称作前向后向算法

中间的化简用到了D-separator

prediction

在给定前时刻的观测值之后, 预测后面一个或者多个隐变量或者观测值的过程

马尔可夫齐次假设和filtering问题:

观测独立假设和上面刚刚求解的预测: