前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >小孩都看得懂的 HMM

小孩都看得懂的 HMM

作者头像
用户5753894
发布于 2021-11-19 08:06:54
发布于 2021-11-19 08:06:54
74700
代码可运行
举报
文章被收录于专栏:王的机器王的机器
运行总次数:0
代码可运行

全文共 7043 字,75 幅图,

预计阅读时间 36 分钟。

本文是「小孩都看得懂」系列的第十九篇,本系列的特点是内容不长,碎片时间完全可以看完,但我背后付出的心血却不少。喜欢就好!

  1. 小孩都看得懂的神经网络
  2. 小孩都看得懂的推荐系统
  3. 小孩都看得懂的逐步提升
  4. 小孩都看得懂的聚类
  5. 小孩都看得懂的主成分分析
  6. 小孩都看得懂的循环神经网络
  7. 小孩都看得懂的 Embedding
  8. 小孩都看得懂的熵、交叉熵和 KL 散度
  9. 小孩都看得懂的 p-value
  10. 小孩都看得懂的假设检验
  11. 小孩都看得懂的基尼不纯度
  12. 小孩都看得懂的 ROC
  13. 小孩都看得懂的 SVD
  14. 小孩都看得懂的 SVD 2
  15. 小孩都看得懂的 GMM
  16. 小孩都看得懂的贝塔分布
  17. 小孩都看得懂的多臂老虎机
  18. 小孩都看得懂的 GAN
  19. 小孩都看得懂的 HMM

0

故事背景

有个男生只要晴天就高兴,他想和远在千里的女友玩个游戏,只告诉他的心情,让女友猜他当地的天气。


女友很了解他,想既然你今天高兴,那么今天是晴天。


第二天,男生说我今天不高兴,问女朋友天气如何?


女友很了解他,想既然你今天不高兴,那么今天是雨天。


女友把这个男生卡的死死的,因为

  • 如果是晴天,男友高兴
  • 如果是雨天,男友烦躁

因此可以完美根据他的心情来判断天气,这个规则就是:

  • 如果男友高兴,晴天
  • 如果男友烦躁,雨天

如下图所示:

但人的心情不会这么简单,不可能根据天气而一成不变。让我们看看一个稍微复杂的情况:

  • 如果是晴天,男友 80% 的情况下高兴,20% 的情况下烦躁
  • 如果是雨天,男友 60% 的情况下烦躁,40% 的情况下高兴

如下图所示:


如果男生说这三天心情是“高兴-烦躁-高兴”,那么女友可能推断出(不是 100% 确定)天气是“晴天-雨天-晴天”。


如果男生这一周心情像过山车,隔一天高兴(Happy,H)隔一天烦躁(Grumpy,G),那么这一周他心情历程是“HGHGHG”。

他女友根据对男友的了解(即如果是晴天,男友 80% 的情况下高兴,20% 的情况下烦躁;如果是雨天,男友 60% 的情况下烦躁,40% 的情况下高兴),推断出这一周天气是“SRSRSR”,其中 S 代表 Sunny 晴天,R 代表 Rain 雨天。


Something is wrong!心情可以像过山车,但是天气一晴一雨的很少见,一般今天晴天明天大概率晴天,今天雨天明天还有可能是雨天。

因此,连续两天的天气可用一个转换概率(transition probability)来描述。如果今天是晴天,那么明天:

  • 继续是晴天的概率为 80%,即 0.8
  • 变成是雨天的概率为 20%,即 0.2

如果今天是雨天,那么明天:

  • 继续是晴天的概率为 40%,即 0.4
  • 变成是雨天的概率为 60%,即 0.6

上图就是一个 HMM 的雏形。

1

HMM 是什么

HMM 的全称是 Hidden Markov Model,中文是隐马尔可夫模型

HMM 有四个重要的概念:观测值(observation)、隐藏状态(hidden)、转换概率(transition probability)和输出概率(emission probability)。如下图所示,让我们来一一剖析。

以女友角度出发,

  • 观测值 - 就是能观测到的。比如男友的心情是高兴(H)还是烦躁(G)
  • 隐含状态 - 看不到的状态,只能靠观测值来推断的。比如千里之外男友所在地的天气是晴天(S)还是雨天(R)

转换概率:隐含状态转换的概率,即

  • 今天 S 到明天 S 和 R 的概率,本例分别是 0.8 和 0.2
  • 今天 R 到明天 S 和 R 的概率,本例分别是 0.4 和 0.6

如下图所示。


输出概率:从隐含状态到观测值的概率,即

  • S 到 H 和 G 的概率,本例分别是 0.8 和 0.2
  • R 到 H 和 G 的概率,本例分别是 0.4 和 0.6

如下图所示。


总结 HMM 的示意图如下:

明晰 HMM 的概念后,让我们步入正题。

2

四个问题

为了把 HMM 讲透,接下来从易到难来分析以下四个问题。

  1. 如何估计转换概率输出概率
  2. 在没有任何男生情绪的信息情况下,那么晴天和雨天的概率是多少?
  3. 如果男生今天“高兴”,那么晴天和雨天的概率是多少?
  4. 如果男生连续三天是“高兴-烦躁-高兴”,那么这连续三天的天气是什么?

3

解决问题一

如何估计转换概率和输出概率?

转换概率

收集历史数据做统计,假设收集了 16 天的天气数据。


统计出“晴天-晴天”和“晴天-雨天”的个数,并标准化为概率,本例中结果为 0.8 和 0.2,两者加起来等于 1。


再统计出“雨天-晴天”和“雨天-雨天”的个数,并标准化为概率,本例中结果为 0.4 和 0.6,两者加起来等于 1。


这样就可以得到转换概率了。

输出概率

同样,收集 16 天“天气-心情”的数据。


统计出“晴天-高兴”和“晴天-烦躁”的个数,并标准化为概率,本例中结果为 0.8 和 0.2,两者加起来等于 1。


再统计出“雨天-高兴”和“雨天-烦躁”的个数,并标准化为概率,本例中结果为 0.4 和 0.6,两者加起来等于 1。


综上,我们已经计算出转换概率输出概率,总结于下图。

第一个问题回答完毕!

4

解决问题二

在没有任何男生情绪的信息情况下,那么晴天和雨天的概率是多少?

假设今天是晴天,可能是因为昨天是晴天造成的,也可能是因为昨天是雨天造成的。如下图所示得到第一个方程

S = 0.8S + 0.4R

其中 0.8 是 “昨天 S - 今天 S” 的转换概率,0.4 是 “昨天 R - 今天 S” 的转换概率。


假设今天是雨天,可能是因为昨天是晴天造成的,也可能是因为昨天是雨天造成的。如下图所示得到第两个方程

R = 0.2S + 0.6R

其中 0.2 是 “昨天 S - 今天 R” 的转换概率,0.6 是 “昨天 R - 今天 R” 的转换概率。


仔细分析这两个方程是等价的,这样两个未知量一个方程解不出来,还需要一个,而 S + R = 1 就是我们所需的。


这样很容易求解出 S = 2/3,R = 1/3。


最终我们得到在不知道男生心情时,晴天和雨天的概率为 2/3 和 1/3。

当女友不知道男友心情时,她对天气的最优推断是 2/3 可能性是晴天,1/3 可能性是雨天。

第二个问题回答完毕!

5

解决问题三

如果男生今天“高兴”,那么晴天和雨天的概率是多少?

以上节最后结果为基准( 2/3 可能性是晴天),先看两种情况。

情况一:当女友知道男友高兴时,,最优推断是大于 2/3 可能性(比如 4/5)是晴天。

情况二:当女友知道男友烦躁时,最优推断是小于 2/3 可能性(比如 2/5)是晴天。


那么这个具体概率值是多少呢?需要用贝叶斯定理(Bayes Theorem)来计算。这里只需要计算一天的概率,因此不需要转换概率,只需要输出概率。


因为晴天和雨天的概率为 2/3 和 1/3,不严谨地将其整数化用 2 个晴天和 1 天雨天代表概率。


根据“晴天-高兴”和“晴天-烦躁”的输出概率 0.8 和 0.2,再不严谨地将其整数化用 8 个高兴 (8/10) 和 2 天烦躁 (2/10) 代表输出概率。


根据“雨天-高兴”和“雨天-烦躁”的输出概率 0.4 和 0.6,再不严谨地将其整数化用 2 个高兴 (2/5) 和 3 天烦躁 (3/5) 代表输出概率。

回到该问题,如果男生高兴,那么晴天的概率是多少?简单,首先统计出所有男生高兴的次数,10 次。


10 次高兴中有 8 次发生在晴天,因此“当男生高兴时晴天”的条件概率为 8/10。


10 次高兴中有 2 次发生在雨天,因此“当男生高兴时雨天”的条件概率为 2/10。


同理,

  • 5 次烦躁中有 2 次发生在晴天,因此“当男生烦躁时晴天”的条件概率为 2/5。
  • 5 次烦躁中有 3 次发生在雨天,因此“当男生烦躁时雨天”的条件概率为 3/5。

第三个问题回答完毕!

6

解决问题四

如果男生连续三天是“高兴-烦躁-高兴”,那么这连续三天的天气是什么?

有可能是“晴天-雨天-晴天”,但怎么得到这个结果的呢?一个简单粗暴的方法就是穷举法,3 天每天 2 种天气一共 2^3 = 8 种组合,根据转换概率和输出概率计算下列 8 组概率,找一个最大值即可:

  1. 晴天-晴天-晴天
  2. 晴天-晴天-雨天
  3. 晴天-雨天-晴天
  4. 晴天-雨天-雨天
  5. 雨天-晴天-晴天
  6. 雨天-晴天-雨天
  7. 雨天-雨天-晴天
  8. 雨天-雨天-雨天

该方法简单粗暴,但是效率很低,本帖最终会介绍一个高效算法,维特比算法。首先还是看看简单粗暴法是怎么算的吧。

7

两天的情况

为了便于讲说,回顾两个观测值和两个隐含状态的缩写:

  • 观测值:高兴(H)、烦躁(G)
  • 隐含状态:晴天(S)、雨天(R)

先从两天开始,男生的心情是 HG,让女友推断这两天的天气是什么。

女友穷举出以下四种情况,并计算每种情况发生的概率。


以上图第二种情况 SR 为例,之前已经得到

  • S 的概率是 2/3
  • 输出概率 S-H 是 0.8
  • 转移概率 S-R 是 0.2
  • 输出概率 R-G 是 0.6

发生 SR 的总概率为

2/3 * 0.8 * 0.2 * 0.6 = 0.064


将穷举的四种组合发生概率全部计算出来,如下图所示,得到 SS 的概率最大,0.085。该方法也叫做最大似然法(maximum likelihood)。


因此当男生说两天心情为“高兴-烦躁”时,女友可推断出最有可能发生的天气是“晴天-晴天”。

8

三天的情况

再看三天,男生的心情是 HGH,让女友推断这三天的天气是什么。

女友穷举出以下八种情况,并计算每种情况发生的概率。


以上图第三种情况 SRS 为例,之前已经得到

  • S 的概率是 2/3
  • 输出概率 S-H 是 0.8
  • 转移概率 S-R 是 0.2
  • 输出概率 R-G 是 0.6
  • 转移概率 R-S 是 0.2
  • 转移概率 S-H 是 0.8

发生 SRS 的总概率为

2/3 * 0.8 * 0.2 * 0.6

* 0.4 * 0.8 = 0.02048

将穷举的八种组合发生概率全部计算出来,如下图所示,得到 SSS 的概率最大。

虽然可以得到正确答案,但随着天数的增多,用穷举法的情况指数性增加。

9

四天的情况

最后看四天,男生的心情是 HGHH,让女友推断这四天的天气是什么。

女友穷举出以下十六种情况,并计算每种情况发生的概率。

当天数为 N 时,需要穷举的情况为 2^N,当 N 很大时,这种暴力穷举法根本行不通,我们需要更高效的方法,一种算法就是下节要讲的维特比(Viterbi)算法。

10

Viterbi 算法

根据男生的心情链 HHGGGH,女友推断最有可能发生的天气链。


解决此问题的核心思路是迭代法,就是把第 k 步的结果和第 k-1 步的结果连立起来。

先看最后一天,星期六的天气可能是 S 和 R。


注意力先聚焦到星期六天气为 S。从星期一到星期五有很多有路径可以到 S(如下图三条),那么总有一种是最有可能发生的。


假设我们找到中间一天是“星期一到星期五”最有可能发生的,那么连上星期六的 S,就是“星期一到星期六但最后一天是 S”最有可能发生的。


这样迭代关系就建立了,当星期六是 S,

5 天最有可能天气链 + S

= 6 天最有可能天气链


当星期六是 R,

5 天最有可能天气链 + R

= 6 天最有可能天气链

两者比较找到最大值,就锁定了“6 天最有可能发生的天气链”。

接下来我们过一遍 Viterbi 算法。

11

Viterbi 算法

1. 从起点星期一开始,天气为 S 的概率为 0.67,天气为 R 的概率是 0.33(答案由问题二解答)。


2. 接下来计算当天气为 S 和 R 而导致心情 H 的概率(用输出概率):

  • P(H|S) = 0.67*0.8 = 0.533
  • P(H|R) = 0.33*0.4 = 0.133

因为 0.533 > 0.133,发现 S 比 R 导致心情 H 的可能性更大。


3. 到星期二了,有两种情况,S 和 R。

先看星期二的 S,可从星期一的 S 和 R 而来(用输出概率和转换概率):

  • P(H|SS) = 0.533*0.8*0.8 = 0.341
  • P(H|RS) = 0.133*0.4*0.8 = 0.043

因为 0.341> 0.043,发现 SS 比 RS 导致心情 H 的可能性更大。

再看星期二的 R,可从星期一的 S 和 R 而来(用输出概率和转换概率):

  • P(H|SR) = 0.533*0.2*0.4 = 0.043
  • P(H|RR) = 0.133*0.6*0.4 = 0.032

因为 0.043 > 0.032,发现 SR 比 RS 导致心情 H 的可能性更大。


4. 接着从星期三到星期六,一直可按照上述算法,得到截止到某一天是 S 或 R 而导致当天心情是 H 或 G 的最大概率值。具体过程如下面动图所示。

5. 下图展示最终结果,这些数字的含义是:

  • P(H|星期一 = S) = 0.533
  • P(H|星期一 = R) = 0.133
  • max( P(HH|星期二 = S) )= 0.341
  • max( P(HH|星期二 = R) ) = 0.043
  • max( P(HHG|星期三 = S) )= 0.0546
  • max( P(HHG|星期三 = R) ) = 0.041
  • max( P(HHGG|星期四 = S) ) = 0.0087
  • max( P(HHGG|星期四 = R) ) = 0.0147
  • max( P(HHGGG|星期五 = S) ) = 0.0014
  • max( P(HHGGG|星期五 = R) ) = 0.0053
  • max( P(HHGGGH|星期六 = S) )= 0.0017
  • max( P(HHGGGH|星期六 = R) ) = 0.0013

6. 沿着日期,找出每个日期下的最大值连成一条线,就是要找到的天气链,SSSRRS。


7. 如果男生说这一周他心情是“高兴-高兴-烦躁-烦躁-烦躁-高兴”,他女友用 Viterbi 算法得到的一周天气是“晴天-晴天-晴天-雨天-雨天-晴天”。

12

Python 实现

回顾 HMM 示意图。

设定初始晴天和雨天概率、转换概率和输出概率,并初始化男生一周心情链。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# Initial Probabilities
p_s, p_r = 2/3, 1/3

# Transition Probabilities
p_ss, p_sr, p_rs, p_rr, = 0.8, 0.2, 0.4, 0.6

# Emission Probabilities
p_sh, p_sg, p_rh, p_rg = 0.8, 0.2, 0.4, 0.6

mood = ['H', 'H', 'G', 'G', 'G', 'H']
proba = []
weather = []

在起点星期一时,计算从“晴天 S 和雨天 R” 到“高兴 H 和烦躁 G” 的概率。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
if mood[0] == 'H':
    proba.append((p_s*p_sh, p_r*p_rh))
else:
    proba.append((p_s*p_sg, p_r*p_rg))

proba
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[(0.5333333333333333, 0.13333333333333333)]

和上节手算结果比对没问题。


接下来用 Viterbi 算法来迭代计算从“前一天 S 和 R” 到“当天 S 和 R” 导致 H 和 G 的概率,取最大值并更新。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
for i in range(1,len(mood)):
    sunny_1, rainy_1 = proba[-1]
    if mood[i] == 'H':
        sunny0 = max(sunny_1*p_ss*p_sh, rainy_1*p_rs*p_sh)
        rainy0 = max(sunny_1*p_sr*p_rh, rainy_1*p_rr*p_rh)
        proba.append((sunny0, rainy0))
    else:
        sunny0 = max(sunny_1*p_ss*p_sg, rainy_1*p_rs*p_sg)
        rainy0 = max(sunny_1*p_sr*p_rg, rainy_1*p_rr*p_rg)
        proba.append((sunny0, rainy0))
proba
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[(0.5333333333333333, 0.13333333333333333),
 (0.3413333333333334, 0.04266666666666667),
 (0.05461333333333335, 0.04096000000000001),
 (0.008738133333333337, 0.014745600000000001),
 (0.0013981013333333341, 0.005308416),
 (0.00169869312, 0.00127401984)]

和上节手算结果比对没问题。


变量 proba 是一个长度为 T 的列表,第 t 个元素代表第 t 天上天气在各个转态下的概率,假设有 N 个状态,那么 proba 里每个元素是一个长度为 N 的元组,第 n 个元素代表第 n 个天气状态。在本例中 T = 6,N = 2。

根据 proba 晴天概率 p[0] 和雨天概率 p[1] 的大小,得出当天是晴天还是雨天。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
for p in proba:
    if p[0] > p[1]:
        weather.append('S')
    else:
        weather.append('R')
        
weather
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
['S', 'S', 'S', 'R', 'R', 'S']

和上节手算结果比对没问题。

13

Python 进一步实现

上节已经用 Python 代码实现出来本帖的例子了,但是不够通用。比如所有转换概率和输出概率都是用标量表示的,一旦状态和观测值多的话,代码会非常难看。本节用 numpy array 来实现 Viterbi 算法,专门用一个函数来实现它。

代码看起来很多,但其实就是不同矩阵或向量之间相乘,只要把形状匹配就没问题了。

将本帖例子用列表或者 numpy 数组来表示:

带入 viterbi() 函数中计算结果:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
probability, state_sequence = viterbi( states, observations, 
                                       prior_probability, 
                                       trans_probability, 
                                       emission_probability,
                                       observation_sequence )
 probability
 state_sequence                                      
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
array([[0.53333333, 0.13333333],
       [0.34133333, 0.04266667],
       [0.05461333, 0.04096 ],
       [0.00873813, 0.0147456 ],
       [0.0013981 , 0.00530842],
       [0.00169869, 0.00127402]])

['sunny', 'sunny', 'sunny', 'rainy', 'rainy', 'sunny']

结果和上节的完全吻合!

朋友们,你们弄懂了 HMM 了吗?

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-11-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 王的机器 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
HMM(隐马尔科夫模型)与维特比算法
一个马尔科夫过程是状态间的转移仅依赖于前n个状态的过程。这个过程被称之为n阶马尔科夫模型,其中n是影响下一个状态选择的(前)n个状态
爬蜥
2024/01/27
1730
HMM(隐马尔科夫模型)与维特比算法
HMM(隐马尔科夫模型)与维特比算法
一个马尔科夫过程是状态间的转移仅依赖于前n个状态的过程。这个过程被称之为n阶马尔科夫模型,其中n是影响下一个状态选择的(前)n个状态
爬蜥
2019/07/09
1.5K0
一次性弄懂马尔可夫模型、隐马尔可夫模型、马尔可夫网络和条件随机场!(词性标注代码实现)
相信大家都看过上一节我讲得贝叶斯网络,都明白了概率图模型是怎样构造的,如果现在还没明白,请看我上一节的总结:贝叶斯网络
mantch
2019/07/30
12.6K0
一次性弄懂马尔可夫模型、隐马尔可夫模型、马尔可夫网络和条件随机场!(词性标注代码实现)
NLP硬核入门-隐马尔科夫模型HMM
(1)小明所在城市的天气有{晴天,阴天,雨天}三种情况,小明每天的活动有{宅,打球}两种选项。
zenRRan
2019/11/12
8330
【机器学习】--隐含马尔科夫模型从初识到应用
马尔可夫(1856~1922),苏联数学家。切比雪夫的学生。在概率论、数论、函数逼近论和微分方程等方面卓有成就。     马尔可夫模型(Markov Model)是一种统计模型,广泛应用在语音识别,词性自动标注,音字转换,概率文法等各个自然语言处理等应用领域。经过长期发展,尤其是在语音识别中的成功应用,使它成为一种通用的统计工具。
LhWorld哥陪你聊算法
2018/09/13
8450
【机器学习】--隐含马尔科夫模型从初识到应用
小孩都看得懂的 GAN
本文是「小孩都看得懂」系列的第十八篇,本系列的特点是内容不长,碎片时间完全可以看完,但我背后付出的心血却不少。喜欢就好!
用户5753894
2021/11/19
5550
人工智能马尔可夫模型_高斯马尔科夫模型
马尔可夫模型(Markov Model)是一种统计模型,广泛应用在语音识别,词性自动标注,音字转换,概率文法等各个自然语言处理等应用领域。经过长期发展,尤其是在语音识别中的成功应用,使它成为一种通用的统计工具。 ———–百度
全栈程序员站长
2022/09/27
1K0
人工智能马尔可夫模型_高斯马尔科夫模型
小孩都看得懂的 SVD 2
奇异值分解 (singular value decomposition, SVD) 就是一个“旋转-拉缩-旋转”的过程。用下图来进一步说明:
用户5753894
2021/04/21
5570
小孩都看得懂的 SVD 2
隐马尔科夫模型 和动态贝叶斯网络
(一):定义及简介: 介绍(introduction) 通常我们总是对寻找某一段时间上的模式感兴趣,这些模式可能出现在很多领域:一个人在使用电脑的时候使用的命令的序列模式;一句话中的单词的序列;口语中的音素序列。总之能产生一系列事件的地方都能产生有用的模式。 考虑一个最简单的情况:有人(柯南?)试图从一块海藻来推断天气的情况。一些民间的传说认为“soggy”的海藻意味着潮湿(wet)的天气,“dry”的海藻预示着晴朗(sun)。如果海藻处于中间状态“damp”,那就无法确定了。但是,天气的情况不可能严格的
机器学习AI算法工程
2018/03/12
4.5K0
隐马尔科夫模型 和动态贝叶斯网络
小孩都看得懂的 p-value
本文是「小孩都看得懂」系列的第九篇,本系列的特点是极少公式,没有代码,只有图画,只有故事。内容不长,碎片时间完全可以看完,但我背后付出的心血却不少。喜欢就好!
用户5753894
2020/05/31
1.1K0
一文搞懂HMM(隐马尔可夫模型)
什么是熵(Entropy) 简单来说,熵是表示物质系统状态的一种度量,用它老表征系统的无序程度。熵越大,系统越无序,意味着系统结构和运动的不确定和无规则;反之,,熵越小,系统越有序,意味着具有确定和有规则的运动状态。熵的中文意思是热量被温度除的商。负熵是物质系统有序化,组织化,复杂化状态的一种度量。 熵最早来原于物理学. 德国物理学家鲁道夫·克劳修斯首次提出熵的概念,用来表示任何一种能量在空间中分布的均匀程度,能量分布得越均匀,熵就越大。 一滴墨水滴在清水中,部成了一杯淡蓝色溶液 热水晾在空气中,热量会传到
cloudskyme
2018/03/20
1.5K0
一文搞懂HMM(隐马尔可夫模型)
【机器学习研究】隐马尔可夫模型 (HMM) 最认真研究
隐马尔可夫模型 (Hidden Markov Model,HMM) 最初由 L. E. Baum 和其它一些学者发表在一系列的统计学论文中,随后在语言识别,自然语言处理以及生物信息等领域体现了很大的价值。平时,经常能接触到涉及 HMM 的相关文章,一直没有仔细研究过,都是蜻蜓点水,因此,想花一点时间梳理下,加深理解,在此特别感谢 52nlp 对 HMM 的详细介绍。 考虑下面交通灯的例子,一个序列可能是红-红/橙-绿-橙-红。这个序列可以画成一个状态机,不同的状态按照这个状态机互相交替,每一个状态都只依赖
量化投资与机器学习微信公众号
2018/01/29
2.1K0
小孩都看得懂的假设检验
本文是「小孩都看得懂」系列的第十篇,本系列的特点是极少公式,没有代码,只有图画,只有故事。内容不长,碎片时间完全可以看完,但我背后付出的心血却不少。喜欢就好!
用户5753894
2020/06/01
2K0
小孩都看得懂的假设检验
马尔科夫随机场(MRF)在图像处理中的应用-图像分割、纹理迁移
深度学习中,许多的实现并不单单是神经网络的搭建和训练,也包括使用一系列传统的方法与之结合的方式去增强深度学习的实现效果,在语义分割(semantic segmentation)和风格迁移(style transfer)中都有使用过MRF-Markov Random Field(马尔科夫随机场)这个概念,并且达到了不错的效果。
老潘
2023/10/19
2.5K0
马尔科夫随机场(MRF)在图像处理中的应用-图像分割、纹理迁移
小孩都看得懂的熵、交叉熵和 KL 散度
本文是「小孩都看得懂」系列的第八篇,本系列的特点是极少公式,没有代码,只有图画,只有故事。内容不长,碎片时间完全可以看完,但我背后付出的心血却不少。喜欢就好!
用户5753894
2019/11/08
1.4K0
小孩都看得懂的熵、交叉熵和 KL 散度
马尔可夫网络、马尔可夫模型、马尔可夫过程
这一节我们重点来讲一下马尔可夫,正如题目所示,看了会一脸蒙蔽,好在我们会一点一点的来解释上面的概念,请大家按照顺序往下看就会完全弄明白了,这里我给一个通俗易懂的定义,后面我们再来一个个详解。
大数据技术与机器学习
2019/11/20
2.9K0
[语音识别] HMM理论理解+实战
(1)04 隐马尔可夫模型 (HMM) :https://blog.csdn.net/u014365862/article/details/105007027 (2)一个隐马尔科夫模型的应用实例:中文分词: https://blog.csdn.net/u014365862/article/details/54891582
MachineLP
2020/03/25
1.8K0
Markov与HMM
马尔可夫模型(Markov Model)和回归、分类那些处理相互独立的样本数据的模型不同,它用于处理时间序列数据,即样本之间有时间序列关系的数据。Markov最核心的思想是:"当前状态只与上一时刻状态有关,而与之前其它任何时刻的状态都无关"。我个人觉得这是Markov最大的问题,至于为什么,放在文章后面。下面先举个例子具体讲解一下Markov模型
mathor
2020/02/25
6330
HMM(隐马尔可夫模型)
概率图用图的形式来表示概率分布:其中结点表示变量,结点之间直接相连的边表示相应变量之间的概率关系。
流川疯
2024/09/05
1370
HMM(隐马尔可夫模型)
HMM超详细讲解+代码[通俗易懂]
#写在前面 老习惯,正文之前瞎扯一通。HMM学了很久,最初是在《统计学自然语言处理》里面就学到了相关内容,并且知道HMM CRF一直都是NLP比较底层比较基础且较为有效的算法模型(虽然感觉还是挺难的),之前仅仅局限在了解前向算法和维特比算法上。也没有去写代码,只知道个大概思路。最近从52nlpHMM系列讲解再次入手,结合多篇博客、github项目以及李航的《统计学习方法》比较全面的对HMM做了一次学习,要求对自己强制输出,所以在整体公式推导没有什么大问题之后,昨天花了一天完善了代码,今天来做一个全面的讲解,为人为己。 本文还是坚持自己的风格,讲解和公式穿插进行,数学公式永远是最精炼的语言 ^_^
全栈程序员站长
2022/11/03
1.9K0
相关推荐
HMM(隐马尔科夫模型)与维特比算法
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验