1.非确定性模式
假设我们想推断今天的天气怎么样,我们有一种做法是根据之前的天气规律来进行判断(假设模型的当前状态仅仅依赖于前面的几个状态,这被称为马尔科夫假设)
n阶马尔科夫模型就是表示当前状态通过之前的n个状态来进行推断。
那么对于有M个状态的一阶马尔科夫模型来说,共有M^2个状态转移,因为任何一个状态都有可能是下一个状态的转移
对于我们要推断的天气来说,假设一共有sun , cloud , rain三种状态,对于一阶马尔科夫模型来说,共有9个状态转移,每种状态转移的概率用矩阵标注在了下方。(每一横行的概率和均为1)
$$
Yesterday ->Today \quad
\begin{bmatrix}
& sun & cloud & rain \\
sun & 0.50 & 0.375 & 0.125 \\
cloud & 0.25 & 0.125 & 0.625 \\
rain & 0.25 & 0.375 & 0.375
\end{bmatrix}
$$
2.隐马尔科夫模型
在某些情况下,我们希望找到的模式用马尔科夫过程描述还显得不充分。回顾一下天气那个例子,一个隐士也许不能够直接获取到天气的观察情况,但是他有一些水藻。民间传说告诉我们水藻的状态与天气状态有一定的概率关系——天气和水藻的状态是紧密相关的。在这个例子中我们有两组状态,观察的状态(水藻的状态)和隐藏的状态(天气的状态)。我们希望为隐士设计一种算法,在不能够直接观察天气的情况下,通过水藻和马尔科夫假设来预测天气。
下图显示的是天气例子中的隐藏状态和观察状态。假设隐藏状态(实际的天气)由一个简单的一阶马尔科夫过程描述,那么它们之间都相互连接。
隐藏状态和观察状态之间的连接表示:在给定的马尔科夫过程中,一个特定的隐藏状态生成特定的观察状态的概率。
除了定义了马尔科夫过程的概率关系,我们还有另一个矩阵,定义为混淆矩阵(confusion matrix),它包含了给定一个隐藏状态后得到的观察状态的概率。对于天气例子,混淆矩阵是:(注意矩阵的每一行之和是1。)