隐马尔可夫模型参考链接见这里

月之森点子王最近的困扰

Sakiko最近总是不回复Soyo的消息,Soyo表示很担心Sakiko的安全(存疑),常常夜不能寐。但是最近在从月之森同校的Mutsumi同学提供的消息来看,祥子最近去上海旅游了三天,去了三个地方,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定位,但是祥子购物与否便是可以通过睦头人口中得知的可观察状态:

由这个隐状态决定的显性概率我们也可以用一个矩阵表示:

有了这样的两个矩阵。Soyo就成功建立起来了祥子的行踪追踪模型。

首先是预测filter

预测是HMM最简单的一招,比如我们需要预测祥子接下来连续10天购物的概率如何预测?

表示的是最开始Sakiko到三地概率相等的初始状态。这个概率计算的难点主要是在于虽然已知HMM的转换概率,但是我们无法确认隐状态的序列。直觉上我们只需要遍历所有可能的状态即可,例如我们假设一个隐状态前5次祥子到达的都是欢乐谷,后五次都是在外滩:

于是我们可以计算这种隐状态序列下投出10个6的概率:

然后把所有可能的概率累加即可:

嗯嗯,至此问题貌似已经解决了。换一种用递推思路解决的写法:

有了这个递推关系,我们便能从开始一直推导出的答案。

解码过程:Find the Most Likely Explaination

通俗来说:解码的过程就是在给出一串序列的情况下和已知HMM模型的情况下,找到最可能的隐性状态序列。

一个不恰当的比喻就是Sakiko接下来10天都有消费记录,那么Soyo需要估计祥子这十天去了哪里,这就是一个HMM的解码问题!

形式化的描述为下面的式子:

根据逻辑链条:

我们从开始前向推导便可以得到这个概率的值;相对的我们可以使用一种后向追踪法求解出能使这个概率最大的隐状态链条,最典型的实现是一种基于动态规划的维特比算法()【更多详细的知识补充见附录部分】

为了介绍维特比算法,我们需要将这个HMM的解码问题转化为一个最佳路径选择的问题:

我们将原本HMM的状态转移过程使用上述矩阵描述的从左向右选择的一幅图来看待,为此我们还需要定义几个符号:

  • 表示矩阵的第行第列的值,表示从隐状态切换到的概率。
  • 表示第个隐状态表现显状态为的概率。
  • 表示第个位置上的隐状态是,其他位置概率任选的最大概率。

  • 表示当前隐状态为时上一个时刻最有可能的隐状态的值。

给出上述定义之后,我们的维特比算法已经呼之欲出力!其实维特比算法就是一种动态规划的原理,我们要求的其实就是首先取,然后目标是,为此我们需要利用上述的递推关系式,根据来计算,一直回退到,将一路上确定的下标拼接在一起即可解码出最大概率隐状态链条。

至此Sakiko的行踪已经被蓑鱿彻底掌握!


素食剪切线


月之森点子王 蓑鱿的一些反思

我们都知道月之森点子王是不会满足于已有的知识的,他开始反思总结这次的方法,这次的隐马尔可夫模型存在很多显然的缺点:

  • 我们需要事先知道Sakiko的所有目的地,并且只适用于静态策略,也就是转移状态是一个固定矩阵
  • 马尔科夫过程的限制,使得我们当前隐状态只由前一次的状态直接决定,这从根本上限制了HMM难以处理复杂任务(点子王Soyo当然知道RNN可以解决这种缺点,所以下一篇文章就决定讲讲RNN

假设下次木子米拒绝告诉Soyo祥子的目的地那么强如soyo也只能束手无策。这次姑且以蓑鱿的胜利告终。