昨天在看的时候, 才发现, HMM参数求解给忘了 状态转移矩阵A的求解, 我以为我做了...好气哦, 不多比比, 直接来.

A 是状态转移矩阵, 表示在 已知前一个状态下, 求解后一个概率(写出来就是一个条件概率)

\(p(z_{k+1} =j | z_k = i) = \frac {p(z_{k+1}=j, z_k = i)}{p(z_k = i)}\)

最基础的条件概率公式哈

分母 \(p(z_k = 1)\) 可以通过前面的 F/B 算法计算出来, 所以问题在于如何计算 \(p(z_{k+1}, z_k=i)\) 这个联合概率

估计 A-理论

由上, 我们的目标是如何计算 \(p(z_{k+1}, z_k = i | x)\) , 在观测值已知的情况下.

由 \(z_k 与 x_k\) 是一 一对应的关系, 通过贝叶斯公式可以得到:

\(p(z_k=i , z_{k+1}=j| x) 与 p( z_k =i, z_{k_1}=j, x) 是正比关系\)

跟之前同样的套路, 对 x 进行区间拆分, 即:

\(=p(z_k, z_{k+1}, x_{1:k}, x_{k+1}, x_{k+2:n})\) 换个变量顺序哈, 为了把 \(z_k, x_{1:k}\) 看为一个整体, 求解技巧是为了最终形式简洁

\(=p(z_k, x_{1:k}, z_{k+1}, x_{k+1}, x_{k+2:n})\) 展开写:

\(=p(z_k, x_{1:k}) \ p(z_{k+1}|z_k, x_{1:k}) \ p(x_{k+1}|z_k, x_{1:k}, z_{k+1}) \ p(x_{k+2:n}|z_k, x_{1:k},z_{k+1}, x_{k+1} )\)

同样根据 D-separation性质 可将与条件概率无关的独立变量进行省略, 化简得到:

\(p(z_k, x_{1:k}) \ p(z_{k+1}|z_k) \ p(x_{k+1}|z_{k+1}) \ p(x_{k+2:n}|z_{k+1})\)

这几个项, 不就刚好对应: Forward, 状态转移矩阵, 发射概率矩阵, Backwark 呀.

也就是可以算出所有的:

\(p(z_k=i , z_{k+1}=1| x) 正比于 p( z_k =i, z_{k_1}=1, x)\)

\(p(z_k=i , z_{k+1}=2| x) 正比于 p( z_k =i, z_{k_1}=2, x)\)

\(p(z_k=i , z_{k+1}=3| x) 正比于 p( z_k =i, z_{k_1}=3, x)\)

....

再进行一个归一化的操作, 则就算出了 \(p(z_k=i, z_{k+1}=j|x)\) 的概率了, (用来估计A要用到的)

估计A-栗子

考虑 Z, 假设有3个样本, 通过之前的 F/B 算法, 可以得到每个z_i 的概率分布.

样本1

z1 z2 z3 z4 z5 z6
0.6 0.5 0.6 0.7 0.6 0.2
0.3 0.3 0.2 0.2 0.1 0.3
0.1 0.2 0.2 0.1 0.3 0.5

样本2

z1 z2 z3 z4 z5
0.5 0.4 0.3 0.6 0.3
0.3 0.4 0.5 0.3 0.1
0.2 0.2 0.2 0.1 0.6

样本3

z1 z2 z3 z4
0.5 0.1 0.3 0.5
0.3 0.2 0.3 0.1
0.2 0.7 0.3 0.4

我们要计算的是 \(p(z_k=i, z_{k+1}=j | x)\) 这个概率. 根据上面的数据, 方法就是前面的理论推导的式子, 过程跟 HMM的第2篇, 已知Z 来计算是差不多的过程. 这里就不展开了.

最后呢就计算出来状态转移矩阵 A.

用到的EM算法

随机初始化 参数 \(\theta=(\pi, A, B)\)

while not 收敛:

​ E-step: (核心是为了计算 p(z|x)

​ 根据已知的 \(\theta=(\pi, A, B)\) 计算

​ \(p(z_k^{i} | x^i), i = 1, 2, ...n\) // 用 F/B 算法求解

​ \(p(z_{k}^i, z_{k+1}^i | x^i), i = 1, 2...n\)

​ M-step:

​ 参数更新

​ \(\pi, A, B\)

不搞了 HMM 就先搞到这, 我感觉之前我还挺清晰的, 写着写着, 这些概率公式, 总感觉留有bug, 真心觉得, 概率模型贼不好理解, 一不小心就自己个就弄混了, 什么条件概率, 全概率, 贝叶斯, 条件独立 , 序列, 值概率....自己都写崩溃了, 赶紧撤退, 战略性放弃一波, 再恶补一波概率论先.

(补) HMM 求解参数-状态转移矩阵 A的更多相关文章

  1. Page5:状态转移矩阵及性质、连续线性系统离散化及其性质[Linear System Theory]

    内容包含脉冲响应矩阵和传递函数矩阵之间的关系,状态转移矩阵及性质,以及线性连续系统离散化及其性质

  2. NVIDIA TX2--3--NVIDIA Jetson TX2 查看系统版本参数状态及重要指令

    NVIDIA Jetson TX2 查看系统参数状态. 当前博主的TX2更新的版本为:Jetpack 3.3, cuda 9.0.252, cudnn7.0, opencv3.3.1, TensorR ...

  3. HMM的概率计算问题和预测问题的java实现

    HMM(hidden markov model)可以用于模式识别,李开复老师就是采用了HMM完成了语音识别. 一下的例子来自于<统计学习方法> 一个HMM由初始概率分布,状态转移概率分布, ...

  4. 【中文分词】隐马尔可夫模型HMM

    Nianwen Xue在<Chinese Word Segmentation as Character Tagging>中将中文分词视作为序列标注问题(sequence labeling ...

  5. 浅谈分词算法(3)基于字的分词方法(HMM)

    目录 前言 目录 隐马尔可夫模型(Hidden Markov Model,HMM) HMM分词 两个假设 Viterbi算法 代码实现 实现效果 完整代码 参考文献 前言 在浅谈分词算法(1)分词中的 ...

  6. 浅谈分词算法基于字的分词方法(HMM)

    前言 在浅谈分词算法(1)分词中的基本问题我们讨论过基于词典的分词和基于字的分词两大类,在浅谈分词算法(2)基于词典的分词方法文中我们利用n-gram实现了基于词典的分词方法.在(1)中,我们也讨论了 ...

  7. 痞子衡嵌入式:语音处理工具Jays-PySPEECH诞生记(5)- 语音识别实现(SpeechRecognition, PocketSphinx0.1.15)

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是语音处理工具Jays-PySPEECH诞生之语音识别实现. 语音识别是Jays-PySPEECH的核心功能,Jays-PySPEECH借 ...

  8. 【算法】BILSTM+CRF中的条件随机场

    BILSTM+CRF中的条件随机场 tensorflow中crf关键的两个函数是训练函数tf.contrib.crf.crf_log_likelihood和解码函数tf.contrib.crf.vit ...

  9. 隐马尔科夫模型HMM(三)鲍姆-韦尔奇算法求解HMM参数

    隐马尔科夫模型HMM(一)HMM模型 隐马尔科夫模型HMM(二)前向后向算法评估观察序列概率 隐马尔科夫模型HMM(三)鲍姆-韦尔奇算法求解HMM参数(TODO) 隐马尔科夫模型HMM(四)维特比算法 ...

  10. 鲍姆-韦尔奇算法求解HMM参数

    1. HMM模型参数求解概述 HMM模型参数求解根据已知的条件可以分为两种情况. 第一种情况较为简单,就是我们已知DD个长度为TT的观测序列和对应的隐藏状态序列,即{(O1,I1),(O2,I2),. ...

随机推荐

  1. 在table中tr的display:block显示布局错乱问题

    参考链接:https://blog.csdn.net/zj853975468/article/details/51554054?utm_medium=distribute.pc_relevant_do ...

  2. 无分类有tag

    1 2

  3. 1Panel 专业版评测:全面超越宝塔的运维面板新标杆

    一. UX体验与移动端适配:更直观的跨平台交互 1Panel 专业版在用户体验上实现了对宝塔的全面超越.其界面采用现代化设计语言,以黑金主题为代表的可定制化主题系统支持一键切换,视觉风格更符合技术审美 ...

  4. Codeforces Round 1006 (Div. 3) 比赛记录

    Codeforces Round 1006 (Div. 3) 比赛记录 比赛链接 这场的题目名称都很长啊~. 很简单的一场(毕竟是div3,能不简单嘛)赛时切掉了A - F,C题花的时间有点多,G题偶 ...

  5. 百万架构师第四十七课:并发编程的原理(二)|JavaGuide

    原文链接 JavaGuide <并发编程的艺术> 并发编程的实现原理 目标 上节课内容回顾 synchronized 原理分析 wait 和 notify Lock 同步锁 回顾 原子性 ...

  6. FastAPI 核心机制:分页参数的实现与最佳实践

    title: FastAPI 核心机制:分页参数的实现与最佳实践 date: 2025/3/13 updated: 2025/3/13 author: cmdragon excerpt: 在构建现代W ...

  7. linux中如何判断一个rpm是手动安装还是通过yum安装的

    现状 对于一个不熟悉的服务器或者是虽然是自己的服务器,但历史比较久远,对于上面安装了的一些软件包,我们记忆都慢慢模糊了. 我今天遇到一个情况,在安装一个工具x2openEuler时,安装失败,提示依赖 ...

  8. HIVE将长整数转字符串的错误

    有一个超长字符串,比如:441066000000001005712973,原来存放在HIVE里表A 是用DECIMAL(24)类型.现在要与另外一个用string类型保存这个字段的表B关联,老是失败. ...

  9. 想查看某些网站源码,结果发现网站F12被禁用,怎么解决?

    当我们访问某些网站的时候,发现网站是禁用了F12和右键功能的.比如想保存网页上的一些文字或图片等, 新手不知道怎么破除. 下面分享给大家几种方法:1.打开网页后,鼠标点进浏览器地址栏,再按F12键,就 ...

  10. windows 稀疏文件 (sparse file) 的一个实用场景——解决 SetEndOfFile 占据磁盘空间引入的性能问题

    前言 之前写过一篇文章说明文件空洞:<[apue] 文件中的空洞>,其中提到了 windows 稀疏文件是制造空洞的一种方式,但似乎没什么用处,如果仅仅处理占用磁盘空间的场景,使用SetE ...