machine-learning - 如何计算 HMM 的值?

标签 machine-learning probability hidden-markov-models markov

我需要帮助理解和解决 HMM 的两个问题。请参阅这些matrices , 其中
隐藏状态是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] = Play)应该是很直观的。但请注意,so 不是一个供您做作业的网站。

无论如何,在处理马尔可夫链时,请记住一件事:历史并不重要!因此,无论您之前的观察结果是什么,您当前的观察结果 ( y ) 仅取决于当前状态 x[t] 。 (不要告诉你的历史老师,她会试图让你重读这门课,就像我的情况一样)。

所以:p(x[t−1] = H | y[1:t−1]) = 1与之前的状态为 Happy ( 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] = Play) ,应用“历史无关紧要规则”,你会得到: p(x[t] = H | y[1:t−1]; y[t] = Play) = p(x[t] = H | y[t] = Play) 如果您想自己动手,这里还有另一个提示:p(x[t] = H) =0.6因为我们已经回答了!您还知道:p(x[t] = H) + p(x[t] = S) = 1 (因为她只能快乐或悲伤,对吧?)

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

但是你可能会说:嘿,我已经观察到她在玩了,你可能会想用 1 代替它,但不要那么快,因为在数学中,这个 p(y[t] = Play)表示无条件概率。

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

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

现在你没有未知数了,从表格中替换并计算。

关于machine-learning - 如何计算 HMM 的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58886441/

相关文章:

c# - 如何使用回归任务预测 ML.NET 的多个标签?

algorithm - 无放回和负权重的加权抽样

algorithm - HMM 正向算法中的下溢

Python语音识别器类型错误: '>' not supported between instances of 'float' and 'NoneType'

python - 在列表字典上使用 TfidfVectorizer

machine-learning - Seq2Seq模型中Bucketing的概念

r - 将 PCA 预处理参数传递给 train()

Python 等同于 MATLAB 的 normplot?

machine-learning - 使用 HIdden Markov 模型进行预测

java - 如何继续尝试查找播放同一首歌曲但压缩格式不同的音频文件?