【隱馬爾可夫模型】隱馬爾可夫模型的觀測序列概率計算算法及例題詳解

【隱馬爾可夫模型】用前向算法計算觀測序列概率P(O|λ)???????

【隱馬爾可夫模型】用后向算法計算觀測序列概率P(O|λ)

隱馬爾可夫模型是關于時序的概率模型,描述由一個隱藏的馬爾可夫鏈隨機生成不可觀測的狀志的序列,再由各個狀態隨機生成一個觀測而產生觀測的序列的過程。模型本身屬于生成模型,表示狀態序列和觀測序列的聯合分布,但是狀態序列是隱藏不可觀測的。

觀測序列概率的計算需要有效的算法支撐。

模型\lambda=(A,B,\pi),A為狀態轉移概率矩陣,B為觀測概率矩陣,π 為初始狀態概率向量

直接計算法

直接計算法主要用于闡釋思路,概念上可行但計算上不可行(計算量過大)

思路:

1、列舉所有可能的長度為$T$的狀態序列$I=(i_1,i_2,...,i_T)$

2、求各個狀態序列$I$與觀測序列$O=(o_1,o_2,\cdots,o_T)$的聯合概率$P(O,I|\lambda)$

3、對所有可能的狀態序列求和,得到$P(O|\lambda).$

輸入:隱馬爾可夫模型$\lambda=(A,B,\pi)$和觀測序列$O=(o_1,o_2,\cdots,o_T)$

輸出:貫徹序列$O$ 出現的概率,

1)狀態序列$I=(i_1,i_2,\cdots,i_T)$的概率

$P(I\mid\lambda)=\pi_{i_{1}}a_{i_{1}i_{2}}a_{i_{2}i_{3}}\cdots a_{i_{T-1}i_{T}}$

2)對固定的狀態序列$I=(i_1,i_2,\cdots,i_T)$ , 觀測序列$O=(o_1,o_2,\cdots,o_T)$的概率

$ P(O\mid I,\lambda)=b_{i_{1}}(o_{1})b_{i_{2}}(o_{2})\cdotp\cdotp\cdotp b_{i_{T}}(o_{T}) $

3)$O$$I$同時出現的聯合概率

\begin{aligned} P(O,I|\lambda)& =P(O|I,\lambda)P(I|\lambda)=\pi_{i_1}b_{i_1}(o_1)a_{i_1i_2}b_{i_2}(o_2)\cdots a_{i_{T-1}i_T}b_{i_T}(o_T) \end{aligned}

4)對所有可能的狀態序列$I$求和,得到觀測序列$O$的概率

$ \begin{aligned} P(O|\lambda)& =\sum_{I}P(O\mid I,\lambda)P(I\mid\lambda) =\sum_{i_{1},i_{2},\cdots,i_{T}}\pi_{i_{1}}b_{i_{1}}(o_{1})a_{i_{2}}b_{i_{2}}(o_{2})\cdots a_{i_{r-1}i_{T}}b_{i_{T}}(o_{T}) \end{aligned} $

實際操作中,步驟四的計算量很大,是$O(TN^T)$階的

前向算法

前向概率:?給定隱馬爾可夫模型\lambda=(A,B,\pi),定義到時刻t 部分觀測序列為o_1,o_2,\cdots,o_t且狀態為q_i?的概率為前向概率,記作\alpha_t(i)=P(o_1,o_2,\cdots,o_t,i_t=q_i|\lambda)

輸入:隱馬爾可夫模型$\lambda=(A,B,\pi)$和觀測序列$O=(o_1,o_2,\cdots,o_t)$

輸出:觀測序列$O$ 出現的概率$P(O|\lambda)$

1)初值,\alpha_1(i)=\pi_ib_i(o_1),\quad i=1,2,\cdots,N

2)遞推,對t=1,2,\cdots,T-1,

\alpha_{t+1}(i)=\left[\sum_{j=1}^N\alpha_t(j)a_{ji}\right]b_i(o_{t+1}),\quad i=1,2,\cdots,N

3)終止?

P(O|\lambda)=\sum_{i=1}^N\alpha_T(i)

計算量$O(TN^2)$

例: 盒子和球模型$\lambda=(A,B,\pi)$,狀態集合Q=\{1,2,3\},觀測集合V=\{Red,White\}

\left.A=\left[\begin{array}{ccc}0.5&0.2&0.3\\0.3&0.5&0.2\\0.2&0.3&0.5\end{array}\right.\right],\quad B=\left[\begin{array}{ccc}0.5&0.5\\0.4&0.6\\0.7&0.3\end{array}\right],\quad\pi=\left[\begin{array}{c}0.2\\0.4\\0.4\end{array}\right]

T=3,O=(\text{Red,White,Red}),用前向算法求$P(O|\lambda)$

解答:

1)初值?

\begin{aligned}\alpha_1(1)&=\pi_1b_1(o_1)=0.10\\\alpha_1(2)&=\pi_2b_2(o_1)=0.16\\\alpha_1(3)&=\pi_3b_3(o_1)=0.28\end{aligned}

A為狀態轉移概率矩陣,B為觀測概率矩陣,π 為初始狀態概率向量,O為觀測序列

a_{ij}?——A的i行j列,b_i(o_j)——B的i行o_j

例如o_1對應Red,對應觀測集合V的第一列,對應觀測概率矩陣B的第一列

2)遞推

\begin{aligned} \alpha_{2}(1)& =\left[\sum_{i=1}^{3}\alpha_{1}(i)a_{i1}\right]b_{1}(o_{2})=0.154\times0.5=0.077 \\ \alpha_{2}(2)& =\left[\sum_{i=1}^3\alpha_1(i)a_{i2}\right]b_2(o_2)=0.184\times0.6=0.1104 \\ \alpha_{2}(3)& =\left[\sum_{i=1}^3\alpha_1(i)a_{i3}\right]b_3(o_2)=0.202\times0.3=0.0606\\ \\ \alpha_{3}(1)& =\left[\sum_{i=1}^3\alpha_2(i)a_{i1}\right]b_1(o_3)=0.04187 & \\ \alpha_{3}(2)& =\left[\sum_{i=1}^3\alpha_2(i)a_{i2}\right]b_2(o_3)=0.03551 \\ \alpha_{3}\left(3\right)& =\left[\sum_{i=1}^3\alpha_2(i)a_{i3}\right]b_3(o_3)=0.05284 \end{aligned}

b_i(o_j)B的i行o_j列,b_1(o_3)就是對應B的第一行第一列的元素

3)終止

P(O|\lambda)=\sum_{i=1}^3\alpha_3(i)=0.13022

遞推至T=3,對前向概率求和得到$P(O|\lambda)$

后向算法

后向概率:?給定隱馬爾可夫模型\lambda=(A,B,\pi),定義到時刻t 狀態為q_i?的條件下,從t+1到T的部分觀測序列為o_{t+1},o_{t+2},\cdots,o_T的概率為后向概率,記作

\beta_t(i)=P(o_{t+1},o_{t+2},\cdots,o_T|i_t=q_i,\lambda)

輸入:隱馬爾可夫模型$\lambda=(A,B,\pi)$和觀測序列$O=(o_{t+1},o_{t+2},\cdots,o_T)$

輸出:觀測序列O出現的概率$P(O|\lambda)$

1)初值,\beta_T(i)=1,\quad i=1,2,\cdots,N

2)遞推,對t=T-1,T-2,\cdots,1

\beta_t(i)=\sum_{j=1}^Na_{ij}b_j(o_{t+1})\beta_{t+1}(j),\quad i=1,2,\cdots,N

3)終止?

P(O|\lambda)=\sum_{i=1}^N\pi_ib_i(o_1)\beta_1(i)

計算量$O(TN^2)$

例: 盒子和球模型$\lambda=(A,B,\pi)$

\left.A=\left[\begin{array}{ccc}0.5&0.2&0.3\\0.3&0.5&0.2\\0.2&0.3&0.5\end{array}\right.\right],\quad B=\left[\begin{array}{ccc}0.5&0.5\\0.4&0.6\\0.7&0.3\end{array}\right],\quad\pi=(0.2,0.4,0.4)^\mathrm{T}

T=4,O=(\text{Red,White,Red,White}),用后向算法求$P(O|\lambda)$

解答:

1)初值?

\mathrm{\beta}_4\left(\mathrm{i}\right)=1\quad\mathrm{~i}=1,2,3

A為狀態轉移概率矩陣,B為觀測概率矩陣,π 為初始狀態概率向量,O為觀測序列

從T=4向下遞推,一般設后向概率初值為1

2)遞推

遞推至\beta _1終止

\begin{aligned} \beta_3\left(1\right)& =\sum_{\mathrm{j}=1}^3\mathrm{a}_{1\mathrm{j}}\mathrm{b}_{\mathrm{j}}\left(\mathrm{O}_{4}\right)\beta_{4}\left(\mathrm{j}\right)=0.25+0.12+0.09=0.46 \\ \beta_{3}\left(2\right)& \mathrm{=\sum_{j=1}^3a_{2j}b_{j}\left(O_{4}\right)\beta_{4}\left(j\right)=0.15+0.3+0.06=0.51} \\ \beta_{3}\left(3\right)& =\sum_{\mathrm{j}=1}^3\mathrm{a}_{3\mathrm{j}}\mathrm{b}_{\mathrm{j}}\left(\mathrm{O}_{4}\right)\mathrm{\beta}_{4}\left(\mathrm{j}\right)=0.1+0.18+0.15=0.43 \\ \end{aligned}

\begin{aligned}\beta_2\left(1\right)&=\sum_{\mathrm{j}=1}^3\mathrm{a}_{1\mathrm{j}}\mathrm{b}_{\mathrm{j}}\left(\mathrm{O}_3\right)\beta_3\left(\mathrm{j}\right)=0.25*0.46+0.08*0.51+0.21*0.43=0.2461\\\beta_2\left(2\right)&=\sum_{\mathrm{j}=1}^3\mathrm{a}_{2\mathrm{j}}\mathrm{b}_{\mathrm{j}}\left(\mathrm{O}_3\right)\beta_3\left(\mathrm{j}\right)=0.15*0.46+0.2*0.51+0.14*0.43=0.2312\\\beta_2\left(3\right)&=\sum_{\mathrm{j}=1}^3\mathrm{a}_{3\mathrm{j}}\mathrm{b}_{\mathrm{j}}\left(\mathrm{O}_3\right)\beta_3\left(\mathrm{j}\right)=0.1*0.46+0.12*0.51+0.35*0.43=0.2577\end{aligned}

\begin{aligned}&\mathrm{\beta_1\left(1\right)=\sum_{j=1}^3a_{1j}b_j\left(O_2\right)\beta_2\left(j\right)=0.25*0.2461+0.12*0.2312+0.09*0.2577=0.112462}\\&\mathrm{\beta_1\left(2\right)=\sum_{j=1}^3a_{2j}b_j\left(O_2\right)\beta_2\left(j\right)=0.15*0.2461+0.3*0.2312+0.06*0.2577=0.121737}\\&\mathrm{\beta_1\left(3\right)=\sum_{j=1}^3a_{3j}b_j\left(O_2\right)\beta_2\left(j\right)=0.1*0.2461+0.18*0.2312+0.15*0.2577=0.104881}\end{aligned}

a_{ij}?——A的i行j列,b_i(o_j)——B的i行o_j

b_i(o_j)B的i行o_j列,b_1(o_3)就是對應B的第一行第一列的元素

3)終止

\mathrm{P}\left(\mathrm{O}|\lambda)\right.=\sum_{i=1}^3\pi_\mathrm{i}b_\mathrm{i}\left(\mathrm{O}_1\right)\beta_1\left(\mathrm{i}\right)=0.0600908

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/214192.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/214192.shtml
英文地址,請注明出處:http://en.pswp.cn/news/214192.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Elbie勒索病毒:最新變種.elbie襲擊了您的計算機?

引言: 在數字時代,.Elbie勒索病毒的威脅越發突出,對個人和組織的數據安全構成了巨大挑戰。本文將深入介紹.Elbie勒索病毒的特征,有效的數據恢復方法,以及一系列預防措施,幫助您更好地保護數字資產。當面對…

線性規劃-單純形法推導

這里寫目錄標題 線性規劃例子啤酒廠問題圖解法 單純形法數學推導將問題標準化并轉為矩陣形式開始推導 實例圖解法單純形法 線性規劃例子 啤酒廠問題 每日銷售上限:100箱啤酒營業時間:14小時生產1箱生啤需1小時生產1箱黑啤需2小時生啤售價:2…

從零開發短視頻電商 AWS OpenSearch Service開發環境申請以及Java客戶端介紹

文章目錄 創建域1.創建域2.輸入配置部署選項數據節點網絡精細訪問控制訪問策略 獲取域端點數據如何插入到OpenSearch ServiceJava連接OpenSearch Servicespring-data-opensearchelasticsearch-rest-high-level-clientopensearch-rest-clientopensearch-java 因為是開發測試使用…

[Linux] nginx的location和rewrite

一、Nginx常用的正則表達式 符號作用^匹配輸入字符串的起始位置$ 匹配輸入字符串的結束位置*匹配前面的字符零次或多次。如“ol*”能匹配“o”及“ol”、“oll” 匹配前面的字符一次或多次。如“ol”能匹配“ol”及“oll”、“olll”,但不能匹配“o”?匹配前面的字…

Vue3 setup 頁面跳轉監聽路由變化調整頁面訪問位置

頁面跳轉后頁面還是停留在上一個頁面的位置&#xff0c;沒有回到頂部 解決 1、router中路由守衛中統一添加 router.beforeEach(async (to, from, next) > {window.scrollTo(0, 0);next(); }); 2、頁面中監聽頁面變化 <script setup> import { ref, onMounted, wat…

@Autowired 找不到Bean的問題

排查思路 檢查包掃描&#xff1a;查詢的Bean是否被spring掃描裝配到檢查該Bean上是否配上注解&#xff08;Service/Component/Repository…&#xff09;如果使用第三方&#xff0c;檢查相關依賴是否已經安裝到當前項目 Autowired和Resource的區別 Autowired 是spring提供的注…

圖像清晰度 和像素、分辨率、鏡頭的關系

關于圖像清晰度的幾個知識點分享。 知識點 清晰度 清晰度指影像上各細部影紋及其邊界的清晰程度。清晰度&#xff0c;一般是從錄像機角度出發&#xff0c;通過看重放圖像的清晰程度來比較圖像質量&#xff0c;所以常用清晰度一詞。 而攝像機一般使用分解力一詞來衡量它“分解被…

linux通過命令切換用戶

在Linux中&#xff0c;你可以使用su&#xff08;substitute user或switch user&#xff09;命令來切換用戶。這個命令允許你臨時或永久地以另一個用戶的身份運行命令。以下是基本的用法&#xff1a; 基本切換到另一個用戶&#xff08;需要密碼&#xff09;&#xff1a;su [用戶…

APIFox:打造高效便捷的API管理工具

隨著互聯網技術的不斷發展&#xff0c;API&#xff08;應用程序接口&#xff09;已經成為了企業間數據交互的重要方式。然而&#xff0c;API的管理和維護卻成為了開發者們面臨的一大挑戰。為了解決這一問題&#xff0c;APIFox應運而生&#xff0c;它是一款專為API管理而生的工具…

【力扣100】189.輪轉數組

添加鏈接描述 class Solution:def rotate(self, nums: List[int], k: int) -> None:"""Do not return anything, modify nums in-place instead."""# 思路&#xff1a;三次數組翻轉nlen(nums)kk%nnums[:] nums[-k:] nums[:-k]思路就是&…

數據科學實踐:探索數據驅動的決策

寫在前面 你是否曾經困擾于如何從海量的數據中提取有價值的信息?你是否想過如何利用數據來指導你的決策,讓你的決策更加科學和精確?如果你有這樣的困擾和疑問,那么你來對了地方。這篇文章將引導你走進數據科學的世界,探索數據驅動的決策。 1.數據科學的基本原則 在我們…

第四屆傳智杯初賽(蓮子的機械動力學)

題目描述 題目背景的問題可以轉化為如下描述&#xff1a; 給定兩個長度分別為 n,m 的整數 a,b&#xff0c;計算它們的和。 但是要注意的是&#xff0c;這里的 a,b 采用了某種特殊的進制表示法。最終的結果也會采用該種表示法。具體而言&#xff0c;從低位往高位數起&#xf…

【linux】yum安裝時: Couldn‘t resolve host name for XXXXX

yum 安裝 sysstat 報錯了&#xff1a; Kylin Linux Advanced Server 10 - Os 0.0 B/s | 0 B 00:00 Errors during downloading metadata for repository ks10-adv-os:- Curl error (6): Couldnt resolve host nam…

在非Spring環境下Main方法中,怎么使用spring的ThreadPoolTaskScheduler啟動Scheduler?

作為Java開發人員&#xff0c;在使用spring框架的時候&#xff0c;如果想要獲取到線程池對象&#xff0c;可以直接使用spring框架提供的ThreadPoolxxx來獲取。那么在非spring環境下&#xff0c;main函數怎么使用ThreadPoolTaskScheduler呢&#xff1f;下面凱哥(凱哥Java:kaigej…

10.vue3項目(十):spu管理頁面的sku的新增和修改

目錄 一、sku靜態頁面的搭建 1.思路分析 2.代碼實現 3.效果展示

微信小程序 長按錄音+錄制視頻

<view class"bigCircle" bindtouchstart"start" bindtouchend"stop"><view class"smallCircle {{startVedio?onVedio:}}"><text>{{startVedio?正在錄音:長按錄音}}</text></view> </view> <…

排序算法:【選擇排序]

一、選擇排序——時間復雜度 定義&#xff1a;第一趟排序&#xff0c;從整個序列中找到最小的數&#xff0c;把它放到序列的第一個位置上&#xff0c;第二趟排序&#xff0c;再從無序區找到最小的數&#xff0c;把它放到序列的第二個位置上&#xff0c;以此類推。 也就是說&am…

軟件項目管理---胡亂復習版

范圍控制的一個重點是避免需求的不合理擴張。(√)一個任務原計劃2個人全職工作2周完成,而實際上只有一個人參與這個任務,到第二周末這個人完成了任務的75%,那么:BCWS = 4人周,ACWP = 2人周,BCWP = 3人周。CV = 1,SV = -1。 【在項目管理中,BCWS、ACWP和BCWP是用來衡量…

微服務測試是什么?

微服務測試是一種特殊的測試類型&#xff0c;因為它涉及到多個獨立的服務。以下是進行微服務測試的一般性步驟&#xff1a; 1. 確定系統架構 了解微服務架構對成功測試至關重要。確定每個微服務的職責、接口、依賴項和通信方式。了解這些信息可以幫助您更好地規劃測試用例和測…

ip ssl證書怎么更換ip地址

ip ssl證書是一種數字證書&#xff0c;為只有公網ip地址的站點建立安全、加密的通信通道。它通常由權威的證書頒發機構&#xff08;CA&#xff09;頒發&#xff0c;并用于驗證網站的身份和安全性。ip ssl證書的主要目的是保護敏感信息&#xff0c;如信用卡號、用戶名和密碼等&a…