如何计算隐马尔可夫模型(HMM)的值?

我需要帮助来理解和解决关于HMM的两个问题。请查看这些矩阵,其中
隐藏状态为H = 快乐和S = 悲伤
Pi是初始概率表
P(x[t] | x[t-1])是转移表,而
p(y[t] | x[t])是发射表

我如何理解:如果在时间t-1时我们有p(x[t−1] = H | y[1:t−1]) = 1,那么p(x[t] = H | y[1:t−1])的值是多少?
如果是p(x[t] = H | y[1:t−1]; y[t] = 玩)呢?

我不知道如何理解和计算这些问题。我如何通过矩阵计算来计算这些值?


回答:

首先,根据给定的数据,让我们回答:p(x[t] = H | y[1:t−1]),然后p(x[t] = H | y[1:t−1]; y[t] = 玩)应该会很直观。但请注意,这里不是一个做作业的网站。

无论如何,在处理马尔可夫链时,请记住一点:历史不重要!所以无论你之前的观察是什么,你当前的观察(y)只会依赖于当前状态x[t]。(不要告诉你的历史老师这一点,她会试图让你重修这门课,就像我曾经经历的那样)。

所以:p(x[t−1] = H | y[1:t−1]) = 1等同于说前一个状态是快乐(H)。那个“给定”的y[1:t−1]没有给我们任何信息。好吧,我们对p(x[t]|x[t-1]=H)了解多少呢?嗯,第一个矩阵的第一行告诉你从一个状态转换到另一个状态的概率是多少。

现在我们可以回答你的第一个问题:p(x[t] = H) = p(x[t] = H | x[t-1] = H)*p(x[t-1] = H) + p(x[t] = H | x[t-1] = S)*p(x[t-1] = S)如果这个公式太复杂,这里有一个提示:p(x[t] = H)是她今天快乐的无条件概率。由于我们已经知道p(x[t-1] = H) =1(她昨天快乐),这意味着她昨天绝对不是悲伤的:p(x[t-1] = S) =0 => p(x[t] = H) = p(x[t] = H | x[t-1] = H),使用第一个矩阵,你得到:0.6

那么p(x[t] = H | y[1:t−1]; y[t] = 玩)呢?应用“历史不重要规则”,你得到:p(x[t] = H | y[1:t−1]; y[t] = 玩) = p(x[t] = H | y[t] = 玩)如果你想自己做,这里还有一个提示:p(x[t] = H) =0.6因为我们已经回答了这个问题!你也知道:p(x[t] = H) + p(x[t] = S) = 1(因为她只能是快乐或悲伤,对吗?)

现在应用贝叶斯规则(我知道这不太直观,但YouTube上有很多很好的视频解释背后的直觉),你可以这样写你的问题:p(x[t] = H | y[t] = 玩) = (p(y[t] = 玩| x[t] = H) * p(x[t] = H))/p(y[t] = 玩)

但你可能会说:嘿,我已经观察到她在玩,你可能会想用1来替换它,别急,因为在数学中,这个p(y[t] = 玩)表示无条件概率。

p(y[t] = 玩) = p(x[t] = H)*p(y[t] = 玩|x[t] = H) + p(x[t] = S)*p(y[t] = 玩|x[t] = S)

所以:p(x[t] = H | y[t] = 玩) = (p(y[t] = 玩| x[t] = H) * p(x[t] = H))/(p(x[t] = H)*p(y[t] = 玩|x[t] = H) + p(x[t] = S)*p(y[t] = 玩|x[t] = S))

现在你没有未知数了,从表格中代入并计算吧。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注