8.7. HMM-隐马尔可夫模型¶
Hidden Markov Model
是一种统计模型,用于描述一个含有隐含未知参数的马尔可夫过程。
在隐马尔可夫模型中,系统的状态是不可见的,而我们只能观察到由这些隐藏状态生成的可观测的数据序列。
其难点是从可观察的参数中确定该过程的隐含参数。然后利用这些参数来作进一步的分析,例如模式识别。
该模型假设系统中的状态具有马尔可夫性质,即下一个状态仅依赖于当前状态,并且观测到的数据仅依赖于当前状态。
因此,HMM 可以用来建模许多具有时间序列特征的现实问题,例如语音识别、自然语言处理、生物信息学等。 HMM 包括状态转移概率、观测概率以及初始状态概率这三个要素。
8.7.1. 基本概念¶
状态(States): HMM 中的狀態可以是离散的也可以是连续的。离散状态指的是状态的数量是有限的,例如天气晴朗、阴天或下雨。连续状态指的是状态的数量是无限的,例如温度或湿度。
观测(Observations): 与状态相对应的是观测,它是我们能够直接观察到的数据。每个状态都有一个关联的观测概率分布,用来描述在特定状态下观测到某个数据的可能性。在天气预测的例子中,观测可以是“晴”、“阴”或“雨”。
转移概率(Transition Probabilities): 转移概率指的是从一个状态转移到另一个状态的概率。例如,从晴朗天气转移到阴天天气的概率。
发射/观测概率(Emission Probabilities): 描述在特定状态下观测到某个数据的概率。这些概率通常表示为发射矩阵,其中的每个元素表示在特定状态下观测到某个数据的概率。例如,在晴朗天气下观察到太阳的概率。
初始状态概率(Initial State Probabilities): 描述系统在初始时刻处于每个状态的概率。这些概率可以根据先验知识或数据进行估计。
8.7.2. 通用¶
应用:
1. 语音识别:HMM 可以用来识别语音中的音素序列
2. 自然语言处理:HMM 可以用来识别词性序列
3. 生物信息学:HMM 可以用来识别基因序列中的蛋白质编码区域
4. 金融:HMM 可以用来预测股票价格走势
优点:
HMM 是一种简单而有效的模型。
HMM 可以很容易地扩展到多维数据。
HMM 已经被广泛应用于各种领域。
缺点:
HMM 对噪声敏感。
HMM 的训练过程可能很复杂。
HMM 的假设可能不适用于所有问题。
8.7.3. 示例-今天是晴天,明天的天气是多云的概率¶
转移概率矩阵:
晴天 多云 雨天
晴天 0.7 0.2 0.1
多云 0.3 0.4 0.3
雨天 0.2 0.3 0.5
# 表示如果今天是晴天,
明天是晴天的概率是 0.7,
明天是多云的概率是 0.2,
明天是雨天的概率是 0.1
观测概率矩阵:
晴 多云 雨
晴天 0.6 0.3 0.1
多云 0.3 0.4 0.3
雨天 0.1 0.2 0.7
# 表示如果今天是晴天,
观测到晴天的概率是 0.6,
观测到多云的概率是 0.3,
观测到雨的概率是 0.1
初始状态概率:
晴天 0.6
多云 0.3
雨天 0.1
那么:今天是晴天,明天的天气是多云的概率是多少:
1. 计算在今天是晴天的情况下,明天各种天气的概率分布:
(根据状态转移概率矩阵和初始状态概率)
P(明天是晴天|今天是晴天) = 0.7 * 0.6 = 0.42
P(明天是多云|今天是晴天) = 0.2 * 0.6 = 0.12
P(明天是雨天|今天是晴天) = 0.1 * 0.6 = 0.06
2. 计算观测概率,即在各种天气状态下观测到多云的概率:
(根据观测概率矩阵)
P(观测到多云|明天是晴天) = 0.3
P(观测到多云|明天是多云) = 0.4
P(观测到多云|明天是雨天) = 0.2
3. 将这些概率加权求和,得到明天观测到多云的总概率:
P(今天是晴天,明天是多云,观测到多云)
= P(明天是晴天|今天是晴天) * P(观测到多云|明天是晴天)
+ P(明天是多云|今天是晴天) * P(观测到多云|明天是多云)
+ P(明天是雨天|今天是晴天) * P(观测到多云|明天是雨天)
= 0.42 * 0.3 + 0.12 * 0.4 + 0.06 * 0.2
= 0.126 + 0.048 + 0.012
= 0.186