日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

初学者也能看懂的隐马尔科夫模型介绍

發布時間:2023/12/10 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 初学者也能看懂的隐马尔科夫模型介绍 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

點擊上方“小白學視覺”,選擇加"星標"或“置頂

重磅干貨,第一時間送達

隱馬爾科夫模型是(hidden Markov model,HMM)是可用于標注問題的統計學習模型,描述由隱藏的馬爾科夫鏈隨機生成觀測序列的過程。

隱馬爾可夫模型(hidden Markov model,HMM)是時間序列的概率模型,常用于詞性標注,語音識別,文本分析等領域。HMM是基于馬爾科夫鏈進行標注的,我們對已經觀察的數據序列O進行標注,標注序列I相當于不可觀測序列(隱變量),如何求解概率最大的標注序列?I?是HMM的核心問題,我們以圖解的方式形象的描述HMM問題。

已知觀測序列,標注序列,其中觀測序列是相互獨立的且與對應的標注序列相關,標注序列符合馬爾科夫鏈模型,如下圖:

再次強調下隱馬爾科夫模型假設的場景,1)觀測序列是相互獨立的,2)標注序列符合馬爾科夫鏈模型,3)觀測序列由標注序列決定。

HMM模型主要處理以下三個問題:

1)已知觀測序列O,如何求解HMM模型參數。

2)已知觀測序列O和模型參數,如何求解最有可能的標注序列 I 。

3)已知觀測序列O和模型參數,如何求解觀測序列O出現的概率。

下面給出大致的解決方案:

1) 已知觀測序列O,如何求解模型參數。

其中I為標注序列,在上式中的含義為隱變量,因此可用EM算法求解上式的模型參數。

2) 已知觀測序列O和模型參數,如何求解最有可能的標注序列?I?

3)已知觀測序列O和模型參數,如何求解觀測序列O出現的概率概率

后續內容會給出具體的算法和實例。

介紹到這里,相信大家對HMM有了初步的理解了吧,舉一個例子來說明HMM的應用場景:

小明每天穿的服裝為,假設小明穿的服裝與前一天穿的服裝是相互獨立的,且服裝的選擇受精神狀態的影響,當天的精神狀態受到前一天精神狀態的影響,精神狀態為,已知觀察序列,求對應的精神狀態序列,這類問題我們可以用HMM來解決。

介紹到這里,相信大家對HMM的基本概念和應用場景有了一定的概念,如果對HMM還不是很理解的話,先別慌,下面循環漸進的介紹HMM,數學要求不高的人也能很好的理解。

1.概率與隨機過程的區別

概率是反映隨機事件發生的可能性,大學課程《概率論與數理統計》全文內容是基于概率介紹的。若隨機事件發生的概率隨時間而改變,我們在考慮時間因素或空間因素的情況下去分析隨機事件發生的概率,稱為隨機過程。

若我們每次拋擲硬幣且正面向上的概率為0.5,正面向上的概率不隨拋擲次數而改變,我們可以用概率來描述這一事件,如P(X),其中X表示硬幣正面向上的隨機事件。

若我們每次拋擲硬幣,硬幣落在地上會導致形狀的改變,正面向上的概率隨拋擲次數的改變而改變,我們用隨機過程來描述這一事件,如,其中表示第i次拋擲硬幣正面向上的隨機事件。籠統的講,概率是分析一個隨機變量,而隨機過程是分析一組隨機變量。

2.馬爾科夫過程的概念

當隨機過程的變量滿足馬爾科夫性的無記憶性質時,則稱為馬爾科夫過程。

我們定義為第i個時刻的隨機變量,如下圖的隨機過程:

若隨機變量滿足:

上式的含義為t時刻的隨機變量只依賴于t-1時刻的隨機變量,與其他時刻無關,則稱該過程為馬爾科夫過程。

3.馬爾科夫模型與隱馬爾科夫模型的區別

馬爾科夫模型與隱馬爾科夫模型的區別在于是否含有隱變量,本節還是用小明穿服裝的例子來形象的說明馬爾科夫模型與隱馬爾可夫模型的區別:

若小明每天的服裝只受到前一天所穿服裝的影響, 下圖為小明最近N天所穿服裝的序列:

由上節介紹可知服裝序列為馬爾科夫過程,基于馬爾科夫過程的統計模型則稱為馬爾科夫模型。

若小明每天的服裝與前一天所穿服裝是相互獨立的,且每天所穿的服裝是受到當天的精神狀態影響,精神狀態符合馬爾科夫鏈原理,令服裝序列為,精神狀態序列為,用下圖描述這一過程:

其中服裝序列是可觀測序列且觀測變量是相互獨立的,精神狀態序列是不可觀測序列(隱變量)且狀態變量符合馬爾科夫模型,基于上述過程的統計模型稱為隱馬爾科夫模型。

4.隱馬爾科夫模型參數介紹

由上節介紹可知,隱馬爾科夫模型包含了觀測序列和未觀測的狀態序列,其中狀態序列由初始狀態概率向量π和狀態轉移概率矩陣A決定,觀測序列由觀測概率矩陣B決定。

還是用小明作為例子,假設小明可選的服裝為三件,分別為。小明的精神狀態有兩種,分別為。

因此狀態轉移概率矩陣A表示為:

其中,

是在時刻t處于狀態的條件下在時刻t+1轉移到的概率。

觀測概率矩陣B表示為:

其中,

是在時刻t處于狀態的條件下生成觀測的概率。

初始狀態概率向量表示為:

其中,

是時刻t=1處于狀態的概率。

我們用參數λ表示隱馬爾科夫模型參數,即:

A,B,π稱為隱馬爾可夫模型的三要素。

5.?隱馬爾可夫模型參數求解算法

上節我們介紹了隱馬爾可夫模型參數的含義,如何僅通過觀測序列,求解模型參數。

我們知道隱馬爾可夫過程包含了隱變量 I,那么隱馬爾可夫模型事實上是一個含有隱變量的概率模型:

當構建包含隱變量的模型參數時,我們首先想到用EM(期望最大值)算法實現,算法可參考文章(一文讓你完全入門EM算法)

模型參數求解步驟:

1)初始化隱馬爾可夫模型參數

2)確定模型完全數據的對數似然函數,隱馬爾可夫模型的完全數據包含了觀測數據

和隱數據,完全數據是

因此完全數據的對數似然函數為:

3)EM算法的E步,即求完全對數似然函數下隱變量的期望,稱為Q函數

有:

其中是隱馬爾科夫模型的當前估計值,是馬爾科夫模型參數。

根據上節介紹的隱馬爾可夫模型參數的含義,完全數據的似然函數可展開為:

因此Q函數可寫成:

4)?EM算法的M步,求Q函數的最大值,得到模型參數,由上節可知模型參數

即令:

約束條件為初始狀態概率分布的和等于1,即:

狀態已知的情況下,觀測概率分布的和等于1,即:

由上面的等式得到模型參數,即更新了模型參數的值。具體計算過程這里不再詳細描述了,具體可參考李航老師的《統計學習方法》,若有不懂歡迎交流。

5)重復步驟(3)(4),直到函數收斂,得到最終的模型參數

6.觀測序列概率計算算法

上一節介紹了如何通過觀測序列去估計模型參數,當模型參數已知時,隱馬爾可夫模

型也相應的確定了,觀測序列的概率可以通過模型參數計算出來。下面介紹兩種觀測序列概

率計算算法:

1)枚舉法

給定模型和觀測序列,計算觀測序列O出現的概率。假設狀態序列,可能的狀態數是N,因此每個觀測變量都可能由N個狀態生成,且模型參數已知,我們就能算出每個可能的狀態序列生成觀測序列的概率。如下圖:

這種列舉所有可能的狀態數來計算觀測序列的概率理論上是可行的,但是計算量非常大,如上圖對于長度為T的觀測序列,復雜度達到了。

2)遞推法

隱馬爾科夫具有時間序列的特點,因此我們可以用遞推的方法去計算觀測序列出現的概率。給定馬爾科夫模型?,定義到時刻t部分觀測序列為且狀態為的前向概率為。

1)時刻t=1時刻的觀測概率為:

2)遞推,對于,有:

3)當t=T時,

算法復雜度研究:因為該算法考慮的是用遞推關系求觀測序列的概率,遞推過程如下圖:

方程表示為:

由上式可知,計算t+1時刻狀態為?i?的計算量為N次相乘求和,且t+1時刻狀態的可能數為N,因此由t時刻遞推到t+1時刻的計算量為?階,觀測序列的長度為T,那么計算量為階,與之前枚舉法相比,計算量大大降低了。

7.狀態序列預測算法

給定模型參數?和觀測序列,如何預測最有可能的狀態序列,這是隱馬爾科夫模型的應用最廣的場景,如詞性標注,給定一個句子,標注每個單詞的特性;

本節介紹維特比算法(Viterbi algorithm)來預測狀態序列。維特比算法是一種動態規劃算法,用于尋找最有可能產生的狀態序列。

通過節點

算法的核心思想是:若t時刻最有可能的狀態序列通過節點(為t時刻的狀態),那么從t時刻到T時刻的最優路徑一定包括。我們利用這一思想確定了最優狀態序列的最后一個時刻的狀態,然后利用該狀態回溯時刻的最優狀態。用一個例子說明維特比算法:


已知模型,觀測集合V={紅,白},狀態集合Q={1,2,3},其中

若觀測序列O=(紅,白,紅),求最優狀態序列

解:定義為時刻t狀態為?i?的所有單個路徑中概率的最大值,含義為給定前t-1時刻的狀態和前t時刻的觀測序列,求最優路徑t時刻的狀態,即:

定義為時刻t狀態為?i?的所有單個路徑中概率最大路徑的第t-1個節點為:

根據維特比算法的核心思想,我們計算觀測序列下的最優路徑:

1)t=1時,令是觀測為狀態為i的概率,由題目可知為紅色,有:

代入已知條件得:

2)t=2時,

由上面兩式得:

2)t=3時,

得:

以表示最優路徑的概率,最優路徑的終點:

因此最優狀態序列:

8.小結

本文首先用一個例子通俗的講解了隱馬爾可夫模型的適用場景以及隱馬爾可夫模型的三個主要處理問題,然后循序漸進的介紹了隱馬爾可夫模型的概念和相關問題的解決方法,所用的例子選取了《統計學習方法》的內容。后續文章會介紹另一種相似的算法——條件隨機場以及兩者的區別,希望對初學者能有所幫助。

下載1:OpenCV-Contrib擴展模塊中文版教程

在「小白學視覺」公眾號后臺回復:擴展模塊中文教程即可下載全網第一份OpenCV擴展模塊教程中文版,涵蓋擴展模塊安裝、SFM算法、立體視覺、目標跟蹤、生物視覺、超分辨率處理等二十多章內容。

下載2:Python視覺實戰項目52講

在「小白學視覺」公眾號后臺回復:Python視覺實戰項目即可下載包括圖像分割、口罩檢測、車道線檢測、車輛計數、添加眼線、車牌識別、字符識別、情緒檢測、文本內容提取、面部識別等31個視覺實戰項目,助力快速學校計算機視覺。

下載3:OpenCV實戰項目20講

在「小白學視覺」公眾號后臺回復:OpenCV實戰項目20講即可下載含有20個基于OpenCV實現20個實戰項目,實現OpenCV學習進階。

交流群

歡迎加入公眾號讀者群一起和同行交流,目前有SLAM、三維視覺、傳感器、自動駕駛、計算攝影、檢測、分割、識別、醫學影像、GAN、算法競賽等微信群(以后會逐漸細分),請掃描下面微信號加群,備注:”昵稱+學校/公司+研究方向“,例如:”張三?+?上海交大?+?視覺SLAM“。請按照格式備注,否則不予通過。添加成功后會根據研究方向邀請進入相關微信群。請勿在群內發送廣告,否則會請出群,謝謝理解~

總結

以上是生活随笔為你收集整理的初学者也能看懂的隐马尔科夫模型介绍的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。