隐马尔可夫

隐马尔可夫模型由隐含状态链和可见状态链组成。
接下来用投骰子的实验,阐述隐含状态链和可见状态链的由来。

隐含状态链和可见状态链的由来

实验中有三种不同的骰子。
第一个是立方体,有1到6、六个面,记作D6。
第二个是正4面体,1到4四个面,记作D4。
第三个是正8面体,1到8,8个面,记作D8。

它们每个面出现的概率分别是1/6、1/4和1/8。

骰子

我们蒙着眼睛,从这三个骰子中,随机的选择一个,进行抛掷。
投掷后,可以得到1到8中的某个数字。

投骰子

按照这样的方式,重复的随机选择骰子,不断的抛掷,就可以得到一串数字。
因为这串数字是我们可以看到的,并直接记录下来的,因此我们将这串数字称为可见状态链。

可见状态链

在抛掷的过程中,被我们随机选出来的骰子的编号,也可以组成一串序列,序列中包括了D4、D6和D8。
因为我们是蒙着眼睛选骰子,所以并不知道具体选的是哪个骰子(注解)
因此,我们称这组骰子编号序列为隐含状态链。

(注解): 假设实验是在理想状态下进行,3个骰子摸起来的感觉是一样。在抛掷时,一定不知道选的是哪个骰子。

隐含状态链

在实验过程中,产生了两个数据链,可见状态链与隐含状态链,将它们组合在一起,就是隐马尔可夫模型。

隐马尔可夫链

隐马尔可夫模型的概念

隐马尔可夫模型(Hidden Markov Model),简称HMM。
它是关于时序的概率模型,该模型包含了随机生成的不可观测序列,该序列被称为状态序列,使用S表示。

例如,刚刚的骰子序列,就是状态序列。

隐马尔可夫状态序列

每个不可观测状态,都会产生一个可观测的结果,这样会得到一个观测序列,使用O表示。
也就是掷骰子时,产生的数字序列。

每个状态和观测都会与一个时刻进行对应,如果有t个时刻,就产生了s1到st,o1到ot。
就像我们掷骰子,需要一次一次的掷,那么t就可以代表是第几次掷骰子。

隐马尔可夫观察序列

在HMM中,状态序列是隐藏的,无法被观测到,因此状态变量是一个隐变量,这也是HMM中H的来源。
而MM是马尔可夫模型,它代表了隐藏的状态序列是由一个马尔科夫链,随机生成的。

隐马尔可夫模型的关键因素

在隐马尔可夫模型中,包含了四个关键因素:

  1. 隐含状态
  2. 可见状态
  3. 隐含状态的转换
  4. 可见状态的输出

隐马尔可夫关键因素

各个隐含状态之间会进行转换,并有对应的转换概率。

例如,在掷骰子的过程中,如果每次都是随机挑选骰子,那么三种不同骰子的转换概就是1/3。

隐含状态转换

隐含状态会输出可见状态,它们之间有一个输出概率,不同隐含状态到可见状态的输出概率可能不同。

例如,隐含状态D6输出可见状态1到6,概率是1/6。D4输出1到4,概率是四分之一。

可见状态输出

隐马尔可夫模型的数学表示

为了进一步讨论隐马尔可夫模型,需要使用数学符号来表示HMM。

隐马尔可夫模型的集合

隐马尔可夫模型包含两个集合:

  1. 隐含状态集合Q: 隐含状态集合Q,包括q1到qn,N种状态
  2. 观测结果集合V: 观测结果集合V,包括v1到vm,M种可能的结果

在掷骰子的案例中,n=3,q1、q2、q3对应D6、D4、D8,m=8,v1到v8对应数字1到8。

隐马尔可夫模型的集合

隐马尔可夫模型的概率矩阵

隐马尔可夫模型包含三个概率矩阵:

状态转移概率矩阵A

状态转移的概率矩阵A是一个N*N的矩阵。
其中aij代表了状态qi转移到状态qj的概率。

具体的,aij等于,在st等于qi的条件下,s(t+1)等于qj的概率。

状态转移概率矩阵

3个骰子,选择任意骰子的概率都是1/3,那么就得到了3乘3的状态转移概率矩阵,其中的每个元素都是0.33。

状态转移概率矩阵例子

观测概率矩阵B

观测概率矩阵B,由于每一个状态q都可以输出一个观测结果v,因此B是一个N乘M的矩阵。
其中bij代表了在时刻t,状态qi输出观测结果vj的概率。

观测概率矩阵

在掷骰子时,根据三种骰子的输出,可以得到一个3乘8的概率矩阵。
第一行对应了六面骰子,掷出1到6的概率是六分之一,掷出7和8的概率是0。
而第二行和第三行,分别代表投掷四面、八面骰子的输出1到8的概率。

观测概率矩阵例子

初始状态概率向量矩阵π

初始状态的概率向量是π,它是一个N*1的列向量。
πi代表了在时刻t=1时,状态为qi的概率。

例如,掷骰子时,三种骰子的初始概率都是0.33。

初始状态概率向量矩阵

隐马尔可夫模型的概率矩阵关系

π和A确定了隐藏马尔科夫链,也就是如何生成不可观测的状态序列s。

B确定了如何从隐藏状态产生观测序列o。

隐马尔可夫模型由A、B、π共同决定,使用三元符号λ等于A、B、π表示。

隐马尔可夫模型的概率矩阵