概率图模型要点笔记
- 隐马尔科夫模型(Hidden Markov Model, HMM)
- 马尔科夫随机场(Markov Random Filed, MRF)
隐马尔科夫模型(Hidden Markov Model, HMM)
隐马尔可夫模型中的隐是说,你没办法完全描述状态,只能通过状态的表现(观察)来间接的反映状态
隐马尔科夫模型是用来解决什么问题的
曾经有过一些数学家,企图使用数学模型来解决社会问题。首先他们需要解决的问题就是对这个社会 建模, 那么首先想到的就应该是隐马尔科夫模型。
隐马尔科夫模型:
-
假如说你所要观察的社会是由一个个离散的状态所组成的(粒度非常小的时间节 点),但是组成这些状态的所需要观察的特征非常大(假设你需要描述这个社会中的每一个原子的 当前的状态), 那么目前的计算能力的情况下,你是没有办法直接描述到这么多的特征。那么,在 状态(状态如果确定下来,肯定就是固定的)的定义下,就有了观察的含义。
所有的可能出现的状态的集合称为状态空间
-
观察是对状态的描述,是从一个比较全面,或者认为比较全面的角度,或者是十分粗粒度的状态 描述(与其描述每一个原子,不如描述每一个人?)。但是,因为你所对状态的描述不是基于全量的, 甚至于状态向你展示的部分不是全量的,你对一个状态的观察就不是恒定的。但是虽然不是恒定的, 却是有一定的规律的,你对一个状态发生10000次描述,其中各个观察发生的概率分布就能统计出来
HMM可以用下面这张图来描述:
这张图里面的Y
表示了一个个的状态,状态之间的箭头代表了状态按照顺序流转。每一个X
代表了
一个观察,Y
到X
的箭头代表了X
是对Y
的一个观察(注意同一个Y可能有多个X表示)
状态可以流转,同一个状态可以有多个符合同一个分布分观察,那么就可以使用转移概率(Transfering Probilities)来描述这其中的关系。这个转移概率包含:
-
初始状态概率,比如说一个任务链,在一开始表现是什么样子的。通常会用 \(\pi\) 来表示,使用 \(\pi_i\)表示初始状态(\(y_1\))为状态\(s_i\)的概率
\[\pi_i = P(y_1=s_i)\]初始状态肯定是所有可能出现的状态中的一个
-
状态转移概率,状态之间是会流转转移的,但是下一个状态是什么的却不是固定的,而是符合了 一定的状态转移概率。假设总共有\(n\)个状态,那么可以使用一个\(n \times n\)的矩阵来表示状态 之间转移的概率(一个状态转移后的状态有\(n\)种可能,记不可能到达的状态的转移概率为\(0\))。 那么使用
\[A = [a_{ij}]_{N \times N}\]来表示这个状态转移概率矩阵, 其中
\[a_{ij} = P(y_{t+1} = s_j | y_t = s_i), \space\space\space\space\space\space\space\space\space 1 \le i, j \le N\]也就是说, \(a_{ij}\) 代表了当前状态是\(s_i\), 下一个状态是\(s_j\)的概率。
状态转移概率矩阵说明了,状态之间是按照顺序互相流转的。又因为状态之间是有顺序的,HMM被称为有向图模型。
注意,\(y_i\)状态可能多次在一个状态转移中出现,所以HMM是一个有环图
-
观测表现概率:从一个状态得到的观测并不是一定的,而是符合了一定的概率分布。这个概率矩阵被记为:\(B=[b_{ij}]_{N \times M}\)。 假设一个状态最多可以获得 \(M\)个观察
\[b_{ij} = P(x_t = o_j | y_t = s_i), \space\space\space\space\space\space\space\space\space 1 \le i \le N, 1 \le j \le M\]是说在时刻\(t\), 当状态是\(s_i\)的时候,获得观察\(o_j\)的概率
那么有了 初始状态概率, 状态观察概率, 状态转移概率,就可以完整的描述一个HMM任务链条。那么这个HMM就可以用这三个元素来唯一表示为\(\lambda\)
\[\lambda = [\pi, A, B]\]