坊间有流传过这么一段《胡适留学日记》:
7月4日: 新开这本日记,也为了督促自己下个学期多下些苦功。先要读完手边的莎士比亚的《亨利八世》。 7月13日: 打牌。 7月14日: 打牌。 7月15日: 打牌。 7月16日: 胡适之啊胡适之!你怎么能如此堕落!先前订下的学习计划你都忘了吗?子曰:“吾日三省吾身。”不能再这样下去了! 7月17日: 打牌。 7月18日: 打牌。
且不论真假,突然觉得倒是很合适用来作为 Hidden Markov Model (HMM) 的例子来讲的,因为和书上课上讲的例子,天气呀遛狗啊还是马克杯啊什么的,果然还是这个比较好玩一点啊。
假设小明有很严重的拖延症,在每一天他会处于没有拖延症的正常状态 Normal、以及不同程度的拖延症 Light、Heavy 和 Critical 状态中的一种。每天的状态会随着前一天所处的状态不同而发生改变,转移方式如图 (fig: 1) 所示。
简单来说:小明一开始会处于正常状态,不过由于他拖延症非常严重,第二天毫无悬念地会进入轻度拖延症状态。在轻度拖延症状态中有很大的概率 (0.7) 会进入重度拖延症状态或者以 0.3 的概率维持在轻度拖延症状态中。一旦进入到重度拖延症状态,他会以 0.8 的概率一直保留在那个状态,或者有比较小的几率 (0.2) 进入“致命拖延”状态。在“致命拖延”状态中度过一天之后小明会幡然醒悟,下定决心重新做人,并在第二天成功回复正常状态。然后……周而复始、世袭罔替……
图 1 小明的拖延症状态转移图
不过,小明的拖延症状态是“隐藏”在他大脑里的(这也是 HMM 中 Hidden 的由来),他自己也搞不清楚。但是我们知道他在不同的状态下会做什么样的事情。
状态 | 打牌的概率 | 不打牌的概率 |
---|---|---|
Normal | 0 | 1 |
Light | 0.3 | 0.7 |
Heavy | 0.8 | 0.2 |
Critical | 1 | 0 |
虽然我们没法把小明的脑袋打开看看里面的寄存器是什么状态,但是我们可以偷看小明的日记观察小明的日常生活。通过这些历史数据,我们可以做这样一些事情:
给定小明某一段时间的日记(打牌、不打牌),计算该日记所记录的日常生活是来自于小明的拖延症模型的概率。
给定小明某一段时间的日记,推断出每一天小明最有可能处在什么状态。
另外,如果我们并不事先知道小明的拖延症模型(状态转移和不同状态下的行为),如果有足够多的历史数据(日记),我们还可以做的第三件事情:估计小明的拖延症模型参数。
这三件事正好对应了 HMM 中的三个任务,分别是 Scoring、Matching (或者 Decoding)、Traing (或者 Learning)。
对应这三个任务分别有三个算法:
[1] http://freemind.pluskid.org/machine-learning/hmm-definition/
点击以下标题查看相关内容:
本文分享自 程序员郭震zhenguo 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!