隐马尔科夫模型(Hidden Markov Model, HMM) 是一个带有隐性状态的(无法观测到的)马尔科夫模型。它在强化学习,模式识别(如语言,书写,动作,生物分析)中都有着一席之地。
当我们需要计算一系列的可观察的事件的时候,马尔科夫模型是个不错的选择,但是在很多情况下,一个时间并不可被直接观察到,在这些时候,隐马尔科夫模型就很有用了。
下面我们就用一个例子来初步了解一下隐马尔科夫模型。
假设我们需要统计2000年中,有多少天是低温的,又有多少天是高温的,在具有数据的情况下,我们只要做个简单的加法就能统计出来,可是在没有数据的情况下我们怎么估算呢?现在假设我们有另外一组数据:小明在2000年中每天吃下的冰淇淋的数量。我们可以通过冰淇淋的数量来估算出2000年中温度的数据。
首先,HMM有以下几个部分:
模型中的N个状态,在我们的例子中,包含了低温和高温的两个天气状态
状态与状态之间的转移概率,矩阵格式,低温天气转移到高温天气,或者高温天气转移到低温天气的概率
一序列可观察到的数据,小明实际吃下冰淇淋的数量
某一状态生产出可观察数据的概率,在低温/高温的天气中,吃下1,2,3个冰淇淋的概率
开始和结束状态
另外,隐马尔科夫模型也有两个假设前提:
-
马尔科夫假设
image.png -
结果独立
image.png
下面是一个简化的冰淇淋例子的图形:
image.png