马尔可夫假设

在一个状态机中,下一个状态仅受前一个状态影响。 先看个例子

  • 状态:晴天0、阴天1、雨天2
  • 初始向量:S0={ 1sun , 0cloud , 0rain }
  • 状态转移矩阵:$$ \begin{matrix} & sun & cloud & rain \\ sun & 0.5 & 0.375 & 0.125 \\ cloud & 0.25 & 0.125 & 0.625 \\ rain & 0.25 & 0.375 & 0.375 \end{matrix} $$ 以上描述了一个马尔可夫过程;在状态转移矩阵中每行都描述了从1种状态转移到另一种状态的概率,所以每一行的和为1

现在我们从状态0开始预测3天后的天气: ( $ P_{ij} i表示第i天j表示状态j;a_{ij} 表示前一天是状态i转化到当天状态j的概率 $ )

  • 第一天:S1={ 0.5sun , 0.375cloud , 0.125rain }

    • 晴天的可能:1 0.5 + 0 0.25 + 0 * 0.25 = 0.5 ($ P_{10}=\sum_{i=0}^2 a_{i0} $)
    • 阴天的可能:1 0.375 + 0 0.125 + 0 * 0.375 = 0.375 ($ P_{11}=\sum_{i=0}^2 a_{i1} $)
    • 雨天的可能:1 0.125 + 0 0.625 + 0 * 0.375 = 0.125 ($ P_{12}=\sum_{i=0}^2 a_{i2} $)
  • 第二天:S2={ 0.375sun , 0.28125cloud , 0.34375rain }

    • 晴天的可能:0.5 0.5 + 0.375 0.25 + 0.125 * 0.25 = 0.375
    • 阴天的可能:0.5 0.375 + 0.375 0.125 + 0.125 * 0.375 = 0.28125
    • 雨天的可能:0.5 0.125 + 0.375 0.625 + 0.125 * 0.375 = 0.34375
  • 第三天:S3={ 0.34375sun , 0.3046875cloud , 0.3515625rain }

    • 晴天的可能:0.375 0.5 + 0.28125 0.25 + 0.34375 * 0.25 = 0.34375
    • 阴天的可能:0.375 0.375 + 0.28125 0.125 + 0.34375 * 0.375 = 0.3046875
    • 雨天的可能:0.375 0.125 + 0.28125 0.625 + 0.34375 * 0.375 = 0.3515625

现在我们知道3天后三种天气状态都有可能,不过雨天的可能更大一些。


隐马尔可夫模型

上面的预测过程就是一个马尔科夫过程,我们可以从一个已知状态预测经过x步骤变换后的状态可能,而HMM是指结果状态不是直接受到前一个状态影响,当中存在一个中间状态,即观测状态与结果状态间存在隐含的状态。 再举个简单例子,我们现在有3颗不同的骰子,D8、D6、D4.机器每次都是从3颗骰子中随机选取1个进行投掷,假设机器选取哪颗骰子我们并不可知,现在预测投掷2次结果是{1,6}的可能:

P1(投出1)P2(投出6)
D81/3 * 1/8P1(D8) 1/3 1/8 + P1(D6) 1/3 1/8+P1(D4) 1/3 1/8
D61/3 * 1/6P1(D8) 1/3 1/6 + P1(D6) 1/3 1/6+P1(D4) 1/3 1/6
D41/3 * 1/4P1(D8) 0 + P1(D6) 0 + P1(D4) * 0
几率0.180.05

这个例子中,如果我们把骰子结果数字看作是1种状态,那结果状态的集合就是{1,2,3,4,5,6,7,8}。显然结果状态不但受到投出的骰面影响,还与骰子的选取有关。在我们无法知道选定的骰子情况下我们只能通过投出的骰面来观测到状态的变化。这就是一种隐马尔可夫模型。在这个例子中,每个骰子的选取概率是已知的(1/3),但在实际应用中这个概率往往是未知的,我们需要通过机器学习来确定这个隐含状态对干预系数。

标签: none

添加新评论