马可夫模型

马可夫模型 (Markov Model) 会用来表达状态以及转移机率及它们的随机过程使用的模型,或许在前面文章有两个例子: 有限状态机、有限状态过程,马可夫模型也是一种有有限状态机,只是要把它箭头指向的地方都当作是随机指向;而且,马可夫模型也是图 (Graph)。

本文章不会细究隐式马可夫模型 (HMM) 以及相关演算法 (向前向後、Viterbi…etc)。

读马可夫模型

本篇文章介绍马可夫模型会以机率观测的形式来介绍,也就是说,你会看到一个简单的建模过程,也可以看到马可夫模型的一些基础元素。

比方说,现在下面要边介绍元素边用剪刀石头布的例子来介绍【整体观测机率模型】,就是对时间序列的每一局而言的状态转移机率。

要注意,这跟带有时间序列的马可夫模型不一样,探讨的主题就不同了,扯到时间序列就会偏离本文章主轴,毕竟【每一次游玩】的第一局和第二局可能呈现与【整体】不一样的状况。

https://ithelp.ithome.com.tw/upload/images/20211009/20092753nrsYyVLvD5.png

於是可能会取决於每一局玩剪刀石头布的优势情形。

状态

状态是你要观测的元素,状况就只有剪刀、石头、布:

https://ithelp.ithome.com.tw/upload/images/20211009/20092753Ky3FNS1s8L.png

状态转移机率

假设你观察你的对手数百次出拳情形,然後把它纪录下来,会得到像这样的一个小结论:

https://ithelp.ithome.com.tw/upload/images/20211009/20092753b5gDGURktw.png

现在是针对【布】这个状态,要预测下一个出拳情形,就可以直接参考,此预测他接下来会出【石头】是最有可能的机率。

为什麽要特地指出布的所有机率,这是因为观测机率建模必须包含布的所有可能性,称为机率分布,而机率分布的总和必须是 1,这是为什麽上图会做成 0.6, 0.3, 0.1 的机率的原因。

统计这个机率很简单,你就是做简单的统计平均数就可以实验了,观测每一次他出布之後,下一个出什麽,把出剪刀的总次数当作母数 (分母),然後分别列出:

(布几次) / (出布次数), (剪刀几次) / (出布次数), (石头几次) / (出布次数),以此类推,就可以得到整个模型的机率。

於是你知道箭头、回到自己的箭头是什麽意思,你就可以建出来像下图一样的机率模型:

https://ithelp.ithome.com.tw/upload/images/20211009/20092753R3lPk5GG4m.png


每个语言都可以实作马可夫模型的机率转移矩阵跟发生这些机率,在不使用第三方依赖套件的情况下,可能会写出一个二维阵列:

transitionMatrixName = [
    ["A->A", "B->B", "C->C"],
    ["A->B", "B->C", "C->A"],
    ["A->C", "B->A", "C->B"]
]

transitionMatrixProbability = [
    [0.2, 0.6, 0.2],
    [0.1, 0.6, 0.3],
    [0.2, 0.7, 0.1]
]

transitionMatrixName 对应要描述的就是发生 X -> X 的事件对应的 transitionMatrixProbability 机率。

References:
[1] https://zh.wikipedia.org/wiki/%E9%A9%AC%E5%B0%94%E5%8F%AF%E5%A4%AB%E9%93%BE


<<:  口罩脸孔资料集的标注、资料前处理与资料扩增

>>:  网页编排Grid-30天学会HTML+CSS,制作精美网站

[Day28] grid-row / grid-column + grid-area

如果你已经对上一篇 Day27 的属性熟悉,这篇很快就会懂,因为只是加以说明上一篇的缩写方式,一样都...

【Day13】Latch 的生成条件以及如何避免(下)

Latch 的生成条件 上一篇讲解了什麽是 latch,其又与 flip-flop 差在哪,也解释了...

Day.17 应用中学习 - 实务操作资料库写入 ( golang / sql )

当我们要确保资料是否有成功insert,除了使用程序逻辑上的Lock控制还会搭配到使用事务执行流程...

Day0 前言+碎念(可跳过

嗨~大家好!! 我是饿麟,你们也可以叫我小饿 今天是铁人赛开赛的第1天 身为一个小白,我正思考着也许...

【Day29】为爬虫加上通知 - 成功收到 LINE 通知爬虫摘要讯息,专案大功告成!

除了要有专业外,你更要有技术整合的能力 笔者有话先说 这份专案所用到的各种技术都不难,难的是将这些...