月之森点子系列:HMM隐马尔科夫模型(Hidden Markov Model)
隐马尔可夫模型参考链接见这里
月之森点子王最近的困扰
Sakiko最近总是不回复Soyo的消息,Soyo表示很担心Sakiko的安全(存疑),常常夜不能寐。但是最近在从月之森同校的Mutsumi同学提供的消息来看,祥子最近去上海旅游了三天,去了三个地方,Sakiko第一天去三个地方的概率都是最不符合经济现状的一集);
看到Sakiko聊天记录的Soyo(蓑鱿即刻激发出了惊人的数学天赋,点子计从心来,她想起了她小学就学过的隐马尔可夫模型(HMM
非常适合解决追踪Sakiko三天的行踪🤩🤩🤩
Soyo不亏是月之森点子王,HMM确实很适合研究这种马尔科夫过程的隐状态预测。
什么是隐马尔科夫模型
隐马尔可夫模型(英语:Hidden Markov Model;缩写:HMM),或称作隐性马尔可夫模型,是统计模型,用来描述一个含有隐含未知参数的马尔可夫过程。其难点是从可观察的参数中确定该过程的隐含参数。然后利用这些参数来作进一步的分析。在隐马尔可夫模型中,状态并不是直接可见的,但受状态影响的某些变量则是可见的。
就像下图所展示的,隐马尔科夫模型的定义:
设其实连续也行时间随机过程,
是马尔科夫过程,其行为无法直接观测 ,人话就是 当前的状态只取决于 当前的状态
上图展示了HMM的状态迁移,由图中所展示的
假设我们观察到的结果为
观察不到的隐藏状态为
长度都是
用HMM来做什么?
HMM有三个典型的问题:
预测(filter):已知模型一系列特定输出序列求最后一个时刻的隐状态概率分布,也就是求:
平滑处理(smoothing):已知模型某一特定显状态输出序列,求中间某时刻隐状态的概率分布:
解码(most likely explaination):已知模型参数,寻找最可能的能产生某一特定输出序列的隐状态序列,即求:
破解Sakiko行踪问题!
在祥子的行踪问题中,祥子每天所在的位置就是隐状态,因为Soyo没有办法给Sakiko安装GPS定位,但是祥子购物与否便是可以通过睦头人口中得知的可观察状态:
由这个隐状态决定的显性概率我们也可以用一个矩阵
有了这样的两个矩阵
首先是预测filter
预测是HMM最简单的一招,比如我们需要预测祥子接下来连续10天购物的概率如何预测?
这
于是我们可以计算这种隐状态序列下投出10个6的概率:
然后把所有可能的概率累加即可:
嗯嗯,至此问题貌似已经解决了。换一种用递推思路解决的写法:
有了这个递推关系,我们便能从
解码过程:Find the Most Likely Explaination
通俗来说:解码的过程就是在给出一串序列的情况下和已知HMM模型的情况下,找到最可能的隐性状态序列。
一个不恰当的比喻就是Sakiko接下来10天都有消费记录,那么Soyo需要估计祥子这十天去了哪里,这就是一个HMM的解码问题!
形式化的描述为下面的式子:
根据逻辑链条:
我们从
为了介绍维特比算法,我们需要将这个HMM的解码问题转化为一个最佳路径选择的问题:
我们将原本HMM的状态转移过程使用上述矩阵描述的从左向右选择的一幅图来看待,为此我们还需要定义几个符号:
表示 矩阵的第 行第 列的值,表示从隐状态 切换到 的概率。 表示第 个隐状态表现显状态为 的概率。 表示第 个位置上的隐状态是 ,其他位置概率任选的最大概率。
表示当前隐状态为 时上一个时刻最有可能的隐状态的值。
给出上述定义之后,我们的维特比算法已经呼之欲出力!其实维特比算法就是一种动态规划的原理,我们要求的其实就是首先取
至此Sakiko的行踪已经被蓑鱿彻底掌握!
素食剪切线
月之森点子王
蓑鱿
的一些反思
我们都知道月之森点子王是不会满足于已有的知识的,他开始反思总结这次的方法,这次的隐马尔可夫模型存在很多显然的缺点:
- 我们需要事先知道Sakiko的所有目的地,并且只适用于静态策略,也就是转移状态是一个固定矩阵
- 马尔科夫过程的限制,使得我们当前隐状态只由前一次的状态直接决定,这从根本上限制了HMM难以处理复杂任务(
点子王Soyo当然知道RNN可以解决这种缺点,所以下一篇文章就决定讲讲RNN
假设下次木子米拒绝告诉Soyo祥子的目的地那么强如soyo也只能束手无策。这次姑且以蓑鱿的胜利告终。
Use this card to join the candyhome and participate in a pleasant discussion together .
Welcome to Akilar's candyhome,wish you a nice day .