一. 马可夫模型(Markov Model)
以下会简称为MM。MM是一种具有状态的随机过程,从目前状态转移到下一个状态 的机率由 P(下一个状态|前一个状态) 来决定(在 ‘前一个状态’ 的前提下 ‘下一个状态’ 发生的机率),这些状态的改变会变成一个稳态。上述的例子因为只看前一个状态而已,故又称为一阶MM,可以以此类推至N阶MM(在 ‘前N个状态’ 的前提下 ‘下一个状态’ 发生的机率)。
MM主要会有2个阵列组成:
从上述可以了解,若今天天气晴,隔天的各个天气状况会如下所示:
状态转移阵列的转置 * 初始机率阵列,隔天天气晴的机率为0.5,阴天的机率为0.375,雨天的机率为0.125:
二. 隐马可夫模型(Hidden Markov Model)
以下皆简称为HMM,但在某些情况下,我们无法直接观测到状态资讯(ex:晴天、多云、雨天),就是所谓的隐态(HMM中,第一个字为何为Hidden的原因),但我们可观察其他的状态来做推测,ex: 可以藉由观察水草状态(乾燥、湿润、潮湿)来推测天气的状况。以NLP的POS来说,我们无法直接看出一个句字的中每个词的词性,所以词性就是隐态,可以观察到的状态就是每个词,也就是需要透过词来推论词性为何。
通常会比MM多一个阵列:
发射矩阵:隐藏状态对应到每个观察状态的机率,以POS任务来说就是词性(隐态)发生在每个词的机率为何
用一个课堂上的例子:
有上述这些阵列,若三天水草都是乾燥(Dry),想推测这三天的天气都是晴天的机率为多少,算法如下:
Sunny->Sunny->Sunny = (0.4 * 0.6) * (0.6 * 0.6) * (0.6 * 0.6) = 0.031104
第一个 Sunny: Sunny 初始为 0.4,在 Dry 的状态下是 Sunny 的机率 为 0.6 => 0.4*0.6
第二个 Sunny:前一天是 Sunny 且今天也为 Sunny 的机率为 0.6,在Dry 的状态下是 Sunny 的机率也是 0.6 => 0.6 * 0.6
第三个 Sunny:前一天是 Sunny 且今天也为 Sunny 的机率为 0.6,在Dry 的状态下是 Sunny 的机率也是 0.6 => 0.6 * 0.6
全部相乘即为所求
但这样狂列出每个天气情况的话会非常复杂,所有的机率都要个别算过一次才行知道哪种天气组合的机率最大。现在我们来想一下若是POS问题的话,考虑一句话’我 很 帅’这个句子中每个词的词性,可以把词性当成是graph的node,然後找出最有可能的词性组合,就像下图找到红色箭头这样的路径,‘我’对应到的词性为’词性1’,‘很’对应到的为’词性2’,‘帅’对应到的为’词性3’:
那要如何找到上面这条红色的路径,下一篇就会介绍一个Dynamic Programming的演算法: 为特比
>>: 每个人都该学的30个Python技巧|技巧 7:能精准判断的判断式(字幕、衬乐、练习)
软件架构设计原则一切都是为了下面这两点,别忘了。 低耦合 高内聚 这一篇文章我们将要来谈谈 DIP ...
Case01 与 Day20 重点差异的部份: Controller 内 Action: [Http...
想要降刷 macOS 版本,或是处理 Fusion Drive,该怎麽办?那里有资源?或是那边有官方...
探讨 hello_world.go 背後的一些机制 我们可以透过以下三个问题 hello_world...
27 - First non-repeating character Don't say so mu...