从马尔可夫模型到隐马尔可夫模型

马尔可夫模型简介:

马尔可夫模型个人认为这个概念应该是从 随机过程 里面提出来的,由马尔可夫过程过来的概念。实际上掌握了随机过程里面对马尔可夫过程的特殊情况:离散参数离散状态的马尔可夫链的数学运算的话。就能够很好解决马尔可夫模型上面的计算问题,包括隐马尔科夫模型。讲马尔可夫模型以及过程重点在于其满足的性质-马尔可夫性。

随机过程:
现实中时常出现,某个事物满足一定的随机分布,但是其随机分布会随着时间的变化而变化。我们假设其在时刻t符合随机分布F_t并且用随机变量X_t来表示。假设X_t \sim N(\mu_t,\sigma^2_t)。但是在时间q的时候就符合随机分布F_q并且用随机变量X_q来表示。假设X_q \sim N(\mu_q,\sigma^2_q)。也就是说某个事物的某个特征会随着时间的变化其对应的分布也会发生变化。这样一个总体的过程,称之为 随机过程。

具体例子:
灯泡寿命问题,灯泡其实在每个时间点上都有一定的可能性会损坏,在这个时间点上损坏的可能性符合一个具体的正态分布(其\mu,\sigma是确定的),而随着时间的久远,灯泡损坏的可能性就变大了。所以在之后的某个时间点上灯泡损坏的可能性可能就符合另外一个具体的正态分布(其\mu,\sigma就和先前不一样了,会有变坏的趋势)。灯泡损坏在传统的概率论中也是一个经典例子,可能传统的概率论会认为灯泡的寿命长短符合一个随机分布,并且用一个随机变量来表示,我们研究这个分布的特征。这里和传统的概率论中不一样,可以发现的是,引入了随机过程,可以对随机现象更加深入彻底地描述和研究。

定义随机过程中的一些量。
参数:也就是上述的时间,如果是和时间有关,往往叫做时间序列。但是很多的现象研究不是和时间相关的。

状态:也就是上述的随着时间变化的随机变量。

马尔可夫过程:满足马尔科夫性的随机过程。

以后再解释
马尔可夫性:
马尔可夫链:

马尔可夫模型和上述的关系。

具体讲一下 隐马尔可夫模型。

隐马尔可夫模型:

L.Rabiner的经典例子:

一个房间里有N个坛子。M种球。每个坛子有内有未知状况的球。
每次都会 随机选一个坛子 有放回地取一个球观察。
这样可以记录下球的观察序列。

和普通的马尔可夫不一样,马尔可夫模型是可以确定状态序列的。也就是说序列上的每个项的分布是怎么样的是已知的。而隐马尔可夫模型是连序列上的每个项的是什么分布都不能够知道,都是随机的。

我个人认为隐马尔科夫模型 对应的是 马尔可夫过程。因为,每个状态都是一个随机变量。而很多地方会说是双重随机过程,这里的随机过程应该是不严谨的,而是简单地认为 马尔可夫模型 是一重随机过程。上个状态影响下个状态

形式上定义:(五要素定义)

  1. 状态项,并且状态项之间无法观察S
  2. 输出(观察符号)V
  3. 状态转移概率 A
  4. 输出概率 B
  5. 初始状态 \pi
    从而有 \lambda = (S,V,A,B,\pi)因为一般S,V不太出现在计算之中,所以可以简写为\lambda = (A,B,\pi)
    另外还有观察序列O = (o_1,o_2,o_3,...,o_r)

对于这样的一个随机模型。
经常要解决三个基本问题:
1). 给定\lambdaO,求解P(O|\lambda)。 又叫作 计算问题。
2). 给定\lambdaO,求解一个状态转换序列Q=(q_1,q_2,q_3,...,q_r),使得最优可能产生上面的序列。又叫做估计问题。
3). 在模型参数(A或者B)未知或者参数不准确的情况下,由O来调整参数。又叫做训练问题。

第一个问题:

暴力做法:

\begin{equation} \begin{aligned} P(O|\lambda) &= \sum_{ (x_1,x_2,x_3,...,x_r) \epsilon(X_1,X_2,X_3,...,X_r) }P( (x_1,x_2,x_3,...,x_r) | \lambda) * P((o_1,o_2,o_3,...,o_r)|(x_1,x_2,x_3,...,x_r))\\ &=\sum_{ (x_1,x_2,x_3,...,x_r) \epsilon(X_1,X_2,X_3,...,X_r) } P(x_r|(x_1,x_2,x_3,...,x_{r-1}),\lambda) * P(x_{r-1}| (x_1,x_2,x_3,...,x_{r-2}),\lambda) *...* P(x_1|\lambda) * P((o_1,o_2,o_3,...,o_r)|(x_1,x_2,x_3,...,x_r))\\ &=\sum_{ (x_1,x_2,x_3,...,x_r) \epsilon(X_1,X_2,X_3,...,X_r) } P(x_r|x_{r-1},\lambda) * P(x_{r-1}| x_{r-2},\lambda) *...* P(x_1|\lambda) * (x_1,x_2,x_3,...,x_r) | \lambda) * P((o_1,o_2,o_3,...,o_r)|(x_1,x_2,x_3,...,x_r))\\ \end{aligned} \end{equation}

考虑DP做法:

状态一定是按着产生了部分观察序列来的。考虑前缀。D_n表示处理到了n,观察序列到n为止都是答案的概率。但是不好转移,转移的时候要枚举前后隐藏状态,考虑把隐藏状态也表示出来。D_{n,j}表示处理到了n,并且第n个状态为j的概率。
范围:n\epsilon (1,r) , j\epsilon S
结果:\sum_{j\epsilon S}D_{n,j}
初始化:D_{1,j} = \pi_j B_{j,o_1}
转移:D_{i,j} = \sum_{s\epsilon S} D_{i-1,s}A_{s,j}B_{j,o_i}

第二个问题:

知道\lambdaO,求Q,状态序列,使得产生O的可能性最大。

说白了这个估计问题,如果我们把O当做训练数据。对Q进行预测。这个其实就是一个预测问题。
求的是
Q^* = \arg \max_{Q} P(Q|\lambda,O) = \arg \max_{Q} P(Q,O|\lambda)

定义:
\delta_{t}(i) = \max P( (q_1,q_2,...,q_{t-1},q_t=i),(o_1,o_2,...,o_t)|\lambda) )
这个函数的含义是:
模型在时刻t处于状态i,观察到(o_1o_2o_3...o_r)的最佳状态转换序列的概率。
从而有了转移方程:
\delta_{t+1}(j) = \lbrack \max_i \delta_t(i)A_{i,j} \rbrack b_j(o_{t+1})
\max_{Q} P(Q,O|\lambda)就是\max_{j}\delta_{r}(j)
因此\delta_t的转移过程构成了一个图,而Q就是上面的最优路径。

第三个问题:

利用O观察数据进行对模型参数A或者B或者\pi进行预测和修正,训练问题,又可以叫做预测问题。

并且这个问题其实是带有隐变量的最大似乎估计,也就是EM算法。
直接讲EM,用数学角度来引入 或者 用递归式来求解含有隐变量的参数估计 都是可以的,后者会比较清楚。
但是课上老师给出了另外一种比较好的解释:
考虑第三个问题,实际上应该分两种情况。
1:带指导的参数学习。
给出的数据是这样的:
状态/观察数据。
硬币中的例子就是
H/1 H/1 T/1 T/2 H/3 T/3 T/2 H/1 T/2 H/3 H/3 H/1
其实当拥有了数据 状态/观察数据 是可以直接对参数进行估计的。
假设是齐次的(一般也是齐次的,概率只和状态有关,和时间关系不大,放在词句中就是词语所在的句子的部位关系不是很大,而是上下文内容关系比较大。),

考虑aij 指的是在状态i和状态j的转移概率。
可以直接对上面2个2个统计进行参数估计。
考虑bi(o_j)也就是状态为i输出为o_j的。
一个一个枚举来即可。
考虑pi_i。也就是初始状态。
一个一个枚举状态即可。

带有指导的是有缺点的:
数据上不可行,状态这样的数据其实都是人工标注的。
数据量要求比较大。

但是在NLP中这个方法是很重要的。因为效果比较好。

2:不带指导的参数学习
数据上只给出了 观察序列,没有状态序列。

实际上1中就出了答案。没有状态序列,我们就枚举状态序列。
比如上述。如果观察出来了
1 2 2
那么我们就考虑以下
1 2 2
HHH
HHT
HTH
HTT
THH
THT
TTH
TTT
所有情况。
所以就产生了
H/1 H/2 H/2
H/1 H/2 T/2
....
然后分组进行统计参数估计即可。

但是这里有两个问题:
1:状态太多了。N^T。
2:给每个状态的权重是一样的。不是很科学。(实际上还行,如果使用熵最大原理。)
那么怎么办?解决2考虑给不同状态加权重,那么要有一个先验的的知识:
咱们先给出先验的 模型参数。
那么就可以计算P(Q|O,人)P(Q,O|人)这样的东西了。
明显可以用P(Q|O,人)作为一个路径序列的权重。
但是这样计算的时候,路径序列很长。并且转移路径还是N^T条。
不可行。

避开对路径的考虑。考虑参数abt最多只有涉及两个时间点的。
我们如果只关注两个时间点之间的状态。那么就可以变成二维的。
使Q不是一个路径的。而是只是两个时间点之间的状态。
q_t = i q_t+1 = j 。把这个概率计算出来的话。就能直接对aij这样的进行估计了。
(实际上只是换了一种计数方式,就减少了问题规模,因为咱们关注的也只是路径上两个点两个点之间的。)

由此引出Baum_Welch算法:

定义以下:

定义:前向变量
\alpha_t(i)=P(o_1,o_2,...,o_t|q_t=i,\lambda)
给定模型\lambda,时刻t处在状态i,观察到o_1,o_2,...,o_t的概率。

定义:后向变量
\beta_t(i)=P(o_{t+1},o_{t+2},...,o_T|q_t=i,\lambda)
给定模型\lambda,时刻t处在状态i,观察到o_{t+1},o_{t+2},...,o_T的概率。

定义:
\varepsilon_t(i,j)=\frac{P(q_t=i,q_{t+1}=j,O|\lambda)}{P(O|\lambda)}=\frac{\alpha_t(i)A_{i,j}B{j,o_{t+1}\beta_{t+1}(j)}}{P(O|\lambda)}
表示根据给定的\lambda,O,在时刻t处状态为i,时刻t+1处状态为j的概率。

定义:\gamma_t(i)=\sum_{j=1}^{S}\varepsilon_t(i,j)
表示根据给定的\lambda,O,在时刻t处状态为i概率。

这样就能对参数们进行评估了。有以下:

\hat{\alpha}_{i,j} =\frac{\sum_{t=1}^{r-1}\varepsilon_t(i,j)}{\sum_{t=1}^{r-1}\gamma_t(i)}
\hat{b_j(k)} = \frac{\sum_{t=1}^{T}\gamma_t(j)*\delta(o_t,v_k)}{\sum_{t=1}^{T}\gamma_t(j)}
\hat{\pi}_i = \gamma_1(i)
其中o_t=v_k时候\delta(o_t,v_k)=1反之为0

这样只要挑一个满足条件的初始值,然后迭代求解即可。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,569评论 4 363
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,499评论 1 294
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,271评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,087评论 0 209
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,474评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,670评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,911评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,636评论 0 202
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,397评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,607评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,093评论 1 261
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,418评论 2 254
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,074评论 3 237
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,092评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,865评论 0 196
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,726评论 2 276
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,627评论 2 270

推荐阅读更多精彩内容

  • 隐马尔可夫模型(Hidden Markov Model,HMM) 最初由 L. E. Baum 和其它一些学者发表...
    vlnk2012阅读 6,391评论 3 47
  • 本系列第三篇,承接前面的《浅谈机器学习基础》和《浅谈深度学习基础》。 自然语言处理绪论 什么是自然语言处理? 自然...
    我偏笑_NSNirvana阅读 17,285评论 2 68
  • 神经网络 原理 《机器学习》周志华 14.1 隐马尔可夫模型 机器学习最重要的任务,是根据一些已观察到的证据(例如...
    hxiaom阅读 1,211评论 0 1
  • 某人说我“除了做账、其他什么都不会”,我觉得某人说得很有道理。今天,老板让我临时询价,最终要得到厂家的宣传资料、...
    汉子汤阅读 630评论 2 0
  • 文/巍巍 在你们的眼中,也许喜欢热闹的游乐园,也许喜欢波澜壮阔的大海,也许喜欢峰峦雄伟的山峰……但我却喜欢优雅漂亮...
    茉莉初绽阅读 267评论 0 4