开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 29 天,点击查看活动详情
本文介绍常见的机器学习模型隐马尔科夫模型HMM。 HMM也是generative model。
我是因为看到一篇论文需要用HMM来优化,所以速成。日后如有新的理解将会持续更新,可以收藏关注本文以待。
@[toc]
1. 概率与随机过程的区别
概率是反映随机事件发生的可能性。若随机事件发生的概率随时间而改变,我们在考虑时间因素或空间因素的情况下去分析随机事件发生的概率,称为随机过程。 若我们每次抛掷硬币且正面向上的概率为0.5,正面向上的概率不随抛掷次数而改变,我们可以用概率来描述这一事件,如P(X),其中X表示硬币正面向上的随机事件。 若我们每次抛掷硬币,硬币落在地上会导致形状的改变,正面向上的概率随抛掷次数的改变而改变,我们用随机过程来描述这一事件,如,其中表示第i次抛掷硬币正面向上的随机事件。 笼统的讲,概率是分析一个随机变量,而随机过程是分析一组随机变量。
2. HMM概念
隐马尔科夫模型 Hidden Markov models (HMMs) 是时间序列的概率模型,变量variables可以在状态states之间转换,各种转换的概率不同。每个状态都能以某一概率产生输出output之一。状态和输出的集合已知,输出已知,状态转换概率和输出概率等信息未知(隐)。
需要解决的问题:
- 推理:根据输出序列计算candidate state-switch sequences的概率
- 模式匹配:根据输出序列计算最可能是的state-switch sequence(Viterbi算法:信号处理领域)
- 训练:给出输出序列(训练)数据,计算最可能出现的state-switch/output probabilities (ie, system internals)
- 已知观测序列O和模型参数,如何求解观测序列O出现的概率
模式匹配和训练任务事实上就是Naive Bayesian推理1延伸到了序列数据上。
假设:
- 标注序列符合马尔科夫链假设,状态转换的概率取决于前N个状态。最简单的N=1就是‘first-order’ case,仅基于当前状态决定(马尔科夫过程)
- 生成输出结果的概率仅取决于当前概率
- 观测序列是相互独立的
给定state-switch sequence和对应的observed-output sequence,可以直接用每个概率通过乘法计算出整体的概率。
马尔科夫模型与隐马尔科夫模型的区别:是否含有隐变量