隐马尔科夫模型模型:原理实现

Posted zhuo木鸟

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了隐马尔科夫模型模型:原理实现相关的知识,希望对你有一定的参考价值。

文章目录

引入

为了更方便地理解隐马尔可夫模型,我们需要引入以下概念。

盒子模型与盒子问题(urn problem)

所谓盒子问题,就是将感兴趣的实体视为一系列的,带有颜色的球。之后,人们从盒子中取出一个或多个的球,再根据这些球,估算某些概率或概率分布。比如,估计某种颜色的球出现的概率。

所谓盒子模型,就是根据盒子问题引发而出的模型。最简单的盒子模型如下:
假设有一个盒子问题,盒子中包含两种颜色的球 x x x y y y,分别代表黑白,于是盒子模型有如下:

  • 在置信水平 α \\alpha α中从 n n n次抽样中,推断黑白颜色的球的比重。
  • 在知道两种颜色的球的比重后,推断 n n n次抽样中,抽样序列出现的概率(如,抽取出一黑一白这样的序列)
  • 如果 n n n次抽样中均遇到白球,那么在置信水平下,盒子中无黑色球的概率。

随机过程

随机过程可以定义为一系列于概率空间 ( Ω , F , P ) (\\Omega ,\\mathcal F,P) (Ω,F,P)中的随机变量,其中 Ω \\Omega Ω为采样空间, F \\mathcal F F为事件空间,而 P P P为概率公理化定义。这些随机变量,都有一个索引,就像数组的下标一样。索引跟随机变量一样,其在一个度量空间 ( S , Σ ) (S,\\Sigma ) (S,Σ)中,其中 S S S为取值空间, Σ \\Sigma Σ为度量空间,例如时间的时分秒、或者长度单位的连续空间,反正能够被统一的标准度量就行了。这些数学概念都比较较真,其实理解起来非常的通俗。大家可以略过。

简单来说,随机过程就是一个数组,数组中的每一个元素为随机变量,数组的索引可能不是0开始的整数序列。

用更加精确的定义,就是给定一个概率空间 ( Ω , F , P ) (\\Omega ,\\mathcal F,P) (Ω,F,P),和度量空间 ( S , Σ ) (S,\\Sigma ) (S,Σ),然后随机过程就是一个随机变量的集合,集合中的每个元素都有索引:
X ( t ) : t ∈ T . \\displaystyle \\X(t):t\\in T\\. X(t):tT.
在历史定义中,都认为 T T T是时间序列。于是 X ( t ) X(t) X(t)就是某一个时刻 t t t的观察下,随机变量序列 X X X的取值。随机过程亦可以写成 X ( t , ω ) : t ∈ T \\displaystyle \\X(t,\\omega ):t\\in T\\ X(t,ω):tT,表示随机序列 X X X的最终取值由两个变量决定,一是索引 T T T,二是抽样空间 ω ∈ Ω \\omega\\in\\Omega ωΩ

索引集

T T T为索引集。其通常为一个线性、一维的子集。比如自然数序列,于是通过这样的线性序列,就可以解释随机序列的实时性了。当然,索引集亦可以用笛卡尔平面,或多维平面表示,此时可以表征空间上的一个点。

状态空间

状态空间为随机变量的不同取值可能构成的空间。

采样函数

采样函数为随机过程的一种结果,其可以用如下表达:
X ( ⋅ , ω ) : T → S \\displaystyle X(\\cdot ,\\omega ):T\\rightarrow S X(,ω):TS

增量

随机过程的增量,可以视为随机过程通过两个采样函数后,其结果的。如下:
t 1 ∈ [ 0 , ∞ ) t 1 ∈ [ 0 , ∞ ) \\displaystyle t_1\\in [0,\\infty )\\displaystyle t_1\\in [0,\\infty ) t1[0,)t1[0,) t 2 ∈ [ 0 , ∞ ) t 2 ∈ [ 0 , ∞ ) \\displaystyle t_2\\in [0,\\infty )\\displaystyle t_2\\in [0,\\infty ) t2[0,)t2[0,),且 t 1 ≤ t 2 t 1 ≤ t 2 \\displaystyle t_1\\leq t_2\\displaystyle t_1\\leq t_2 t1t2t1t2。于是,随机序列 X X X的增量为:
X t 2 − X t 1 \\displaystyle X_t_2-X_t_1 Xt2Xt1

马尔可夫链与马尔可夫过程

马尔可夫链是描述随机事件序列的随机模型。并且,每一个事件只取决于上一个事件的状态。其可以视为一个随机过程,因此也叫马尔可夫过程。如图所示:

以上是随机事件为2的马尔可夫过程,其中数字代表转换的概率。

隐马尔科夫模型定义

X n , Y n X_n,Y_n Xn,Yn分别为离散时间的随机过程, n ≥ 1 n\\geq 1 n1。于是数对 ( X n , Y n ) (X_n,Y_n) (Xn,Yn)就是一个隐马尔科夫模型,当且仅当:

  • X n X_n Xn为一个马尔可夫过程,且其不能被直接观察,是隐藏的
  • P ⁡ ( Y n ∈ A   ∣   X 1 = x 1 , … , X n = x n ) = P ⁡ ( Y n ∈ A   ∣   X n = x n ) \\displaystyle \\operatorname \\mathbf P \\bigl (Y_n\\in A\\ \\bigl |\\ X_1=x_1,\\ldots ,X_n=x_n\\bigr )=\\operatorname \\mathbf P \\bigl (Y_n\\in A\\ \\bigl |\\ X_n=x_n\\bigr ) P(YnA   X1=x1,,Xn=xn)=P(YnA   Xn=xn)
    其中, X n X_n Xn被称为隐藏状态, P ⁡ ( Y n ∈ A   ∣   X n = x n ) P ⁡ ( Y n ∈ A   ∣   X n = x n ) \\displaystyle \\operatorname \\mathbf P \\bigl (Y_n\\in A\\ \\bigl |\\ X_n=x_n\\bigr )\\displaystyle \\operatorname \\mathbf P \\bigl (Y_n\\in A\\ \\bigl |\\ X_n=x_n\\bigr ) P(YnA   Xn=xn)P(YnA   Xn=xn)为发射概率。

示例——帮助理解

精灵、盒子与球

假设在一个观察者不可见的房间中,有一个小精灵、若干个盒子、若干个不同标签的小球。假设盒子中包含的球都是已知的(对盒子有先验认识)。

小精灵根据某种规则,从任意一个盒子中,随机抽取出一个小球,并把他放到一个传送带中。外面的观察者通过传送带,观察到小精灵抽取出来的小球,但却不能观察到精灵是从哪个盒子抽取出来的。另外,小精灵抽取的规则,与其上一次抽取的盒子有关,但不仅仅是(即还夹杂着某些其他因素)。

于是,让我们假设盒子为 X n X_n Xn,而小球为 y n y_n yn。如图所示,小球马尔可夫序列 X n X_n Xn是不可见的,而 y n y_n yn小球是可见的。因此,对于这种序列,也称之为隐马尔科夫模型序列。假设小精灵从中抽取三个小球放到传送带中,但观测者仍旧无法看出小精灵的第三个小球是从哪个盒子抽取的。然而,却可以推断出,第三个小球来源于这些盒子的概率。

天气估计

假设有两个伙伴 A 和 B,A是个超级大宅男,B是一个受习惯支配的超级单调鬼。虽然 A 喜欢宅在家里,但是他要通过 B 知道今天的天气如何。于是,每天 A 就会打电话给 B,询问 B 今天做了什么?而如是回答也是 B 的习惯之一。

已知单调鬼 B 一天只喜欢做一件事,并且无外乎这三

以上是关于隐马尔科夫模型模型:原理实现的主要内容,如果未能解决你的问题,请参考以下文章

HMM(隐马尔可夫模型)

HMM隐马尔科夫模型及MATLAB实现

Python实现HMM(隐马尔可夫模型)

02 隐马尔可夫模型 - HMM的三个问题 - 概率计算问题

利用隐马尔科夫链(HMM)模型实现中文分词

隐马尔科夫模型HMMHMM模型