如何用簡單易懂的例子解釋隱馬爾可夫模型?

時間 2021-05-06 04:58:11

1樓:wweewrwer

隱馬爾可夫模型(HMM)可以用五個元素來描述:

1. 隱含狀態 S :這些狀態之間滿足馬爾可夫性質,是馬爾可夫模型中實際所隱含的狀態。這些狀態通常無法通過直接觀測而得到。即扔的骰子序列

3. 初始狀態概率矩陣 :表示隱含狀態在初始時刻t=1的概率矩陣。因為第一次扔出骰子是沒有前乙個狀態的,故這個就是第一次扔出的不同骰子的概率

5. 觀測狀態轉移概率矩陣 B :即由何種骰子向扔出的點數的轉移概率。

一般的,可以用 三元組來簡潔的表示乙個隱馬爾可夫模型。

則該模型常見解決問題就可以表述為:

1.評估問題:已知 ,求P(O) --> 這個點數序列扔出來的概率是多大呢?

2.解碼問題:已知 ,求乙個S使P(S)最大 --> 哪個扔骰子序列的概率最大呢?

3.學習問題:已知O, 部分或全部未知,求使P(O)最大的 --> 從上乙個骰子轉到下乙個不同骰子的概率未知,並且可以調整,那麼怎麼調整這些概率,這個點數序列扔出來的概率最大呢?

這樣數學定義和那個例子就聯絡起來啦!

2樓:明哲

假設你是乙個吃貨。

你很愛吃包子。

我們把條件設定如下,能決定你今天是否吃包子的,是兩個因素,第一,今天到底餓不餓,第二昨天吃沒吃包子。

第一影響條件,人一餓就想吃包子,這很好理解,那麼假設,你一餓就吃包子的概率為60%;

第二影響條件,昨天吃了包子,肉餡兒和沾滿汁水的包子皮,在你口齒間和靈魂深處留下了印象,今天記起來就可能還想吃。假設這一概率為30%。

好的,下面我們引入隱馬爾可夫模型的相關概念。

隱藏狀態S:簡單理解為狀態1,你今天到底吃沒吃包子?(假設你總是偷偷吃)

可觀測狀態O:簡單理解為狀態2,你今天餓不餓?(假設你一旦餓了,肚子就叫)

初始狀態概率矩陣π簡單理解為初始概率,你第一天吃包子的概率。

隱藏狀態轉移概率矩陣A:狀態1中,之前對之後的影響概率,也就是說,昨天吃了包子,今天再吃包子的概率。

觀測狀態轉移概率矩陣B:狀態2中,之前對之後的影響概率,也就是說,今天餓了,所以今天吃包子的概率。

隱馬爾科夫模型最精簡的概括為

——λ=(A,B,π)

——隱馬爾可夫模型=(初始概率,隱藏狀態變化概率,隱藏狀態對觀測狀態的影響概率)

也就是說,第一天吃包子的概率,昨天吃包子今天再吃包子的概率,今天餓了所以今天吃包子的概率,構成了馬爾可夫模型的核心。

如果我們把包子換成其他東西呢?只要和時間序列有關,和轉移概率有關,無論吃包子包子換成DNA,換成語音識別,原理是同樣的。

所以,如果把隱馬爾科夫模型換個名字,改為吃包子雙向影響模型,是不是就好理解一些?

然後,帶著對包子的回味,記住這個公式:λ=(A,B,π)。

3樓:yangmh

推薦乙個短小精悍的tutorial

4樓:Feynman 探花郎

隱馬爾可夫模型是用來描述隱含未知引數的統計模型。

顯狀態是她的活動,隱狀態是天氣

一般來說,隱馬爾可夫模型中的馬爾可夫鏈指的是隱含狀態鏈,隱含狀態之間存在裝換概率,我們可以設定裝換概率。

可見狀態之間沒有轉換概率,但是隱含狀態和可見狀態之間有輸出概率

5樓:wqj

作為一枚現代數學方面的小白,我深刻的感覺到其實數學科普與數學研究同等重要,甚至對於乙個國家和社會更加重要。中國不是數學強國,也和我們歷史欠賬太多有關,但是現在條件這麼好了,又缺乏足夠的好的把人帶入殿堂的科普讀物,那些板著面孔一般正經說教的書完全起不到這樣的作用,這不是學習者的智商問題,而是講授者自己不行。記住愛因斯坦的話吧:

如果你不能給乙個大學本科生完全講明白乙個理論或是道理,你其實自己沒有真正搞懂。真正的大師永遠是深入淺出的。知乎裡有很多熱心和好的科普者,我深感這種深處淺出在他們身上比那些水貨叫獸強太多了。

6樓:JenningLang

目標:你不知道女神是不是喜歡你,她也不會主動告訴你,但是你很想知道。

於是你天天給她送早飯 + 早午晚安 + 尬聊 + 小禮物 + 其他殷勤,觀察她的反映,自己在心裡估計她喜歡你的程度。(等到你覺得時機成熟了就去表白了)

然而前提是你真的理解女神的反饋和你的努力之間的關係,也就是說模型不對,一切白費。。。

這個解釋雖然直觀但也比較糙了,因為女神的狀態應該大概肯定不會是符合馬氏性的,笑cry

7樓:

看過『紅高粱模特隊』嗎?

範:站好了,各位,咱們從基本步伐開始。

趙:範老師,我覺得基本步伐已經來不及了,這樣,它們幾個條件不是太好,你教我,我接受能力比較快,我會了,他們就會了,你走了,我也放心了。

範:好好好,抓緊時間哪。

範:好,向前三步走。好,挺胸,收復,提臀,好,斜視45度,你看我幹嗎?左上角45度

趙:看著了。

範:好,預備!…………,你這是幹嗎呢,你這是。

趙:範老師,你太有生活了。

範:怎麼了?

趙:我服你了

範;恩趙:你不是讓我給果樹噴農藥嗎?

範:這,這怎麼能是噴農藥呢?

趙:剛才你不知不教的就導演了一出給果樹噴農藥的勞動程式。

範:這怎麼是勞動程式嘛。

趙:收腹是勒緊小肚,提臀是要把藥箱卡住,斜視是要看清果樹,這邊加壓,這邊噴霧,他的節拍是這樣的,嗤……,一嗤嗤。二嗤嗤,三嗤嗤,四嗤嗤…………

8樓:小小的寂寞

引用維基百科的例項

Alice 和 Bob 是異地

Bob 那邊的天氣包括晴天和雨天,但是每天的天氣與之前一天的天氣相關Bob 每天可能做三種事情,出遊,購物和掃地但是 Bob 某天具體做什麼的概率與當天天氣相關Alice 每天問 Bob, 你今天做什麼Alice 並不清楚 Bob 那邊的天氣,Bob 不用告訴她,她也不用看天氣預報

但是她可以根據 Bob 每天做的事情,天氣的先驗概率,和天氣的轉化規律等因素估計 Bob 那邊這幾天的天氣規律。

9樓:Allen Han

HMM模型實際就是乙個簡易的狀態空間模型。考慮乙個馬爾科夫的系統狀態,譬如說房間內的真實溫度,該溫度取決於上一時刻的溫度加上這一時刻的變化。我們可以用溫度計去衡量溫度,然而,衡量的值並不是準確的,因為總是有一些測量誤差。

現在,我們可以通過一系列的溫度計上的值(觀測值)去幹一些好玩的事:

1. 估計當前系統狀態(真實溫度)的值

2. 預測下一時刻真實溫度

以上估計和預測都是基於知道相關引數才能進行。比如,你要知道觀測誤差是多少(方差or斜方差矩陣),上一時刻的溫度以什麼樣的方式轉換到下一時刻。

如果你想做引數估計,那麼結合EM演算法就好了。首先,設定初始引數。其次,寫出關於系統狀態(隱變數)和觀測值的似然函式,因為隱變數無法得知,我們用隱變數的期望值替代,期望值是可以從上述計算1.

2.過程中得知。這樣就得到了期望似然。

然後跟求最大似然估計一樣,估計出新的引數,計算新的期望似然。如果期望似然收斂,那麼我們可以認為引數是最有可能的。(EM演算法求的是區域性最優解,所以初始引數的設定很重要)

手機作答,將就看著吧。

10樓:傅睿卿

粗略的看了一遍,覺得必須要說兩句,之前幾乎所有人答案都是在沒有具體應用方法的背景下講理論,在實際應用中反而會讓人迷糊,HMM用途大多數情況下不會是求隱變數的場合,隱變數具體是什麼在很多的學習、分類問題下都是無關緊要的!

以下正題

首先說馬爾科夫,這是基礎,沒有這個一切都是胡鬧,之前很多答案並沒有過多的顧及馬爾科夫模型的問題,答案只能說是個隱概率模型。馬爾科夫模型描述的是當前狀態只和前一狀態相關的情況。

【先打比方】打麻將坐莊,比如現在是東風莊,那麼(理想情況下)下把有75%的概率是北風(被胡牌),25%還是東風(自己胡牌),而跟上一把是不是東風莊沒有任何關係。這就是乙個標準的馬爾科夫過程,(考慮心裡因素時也可能不是,這裡不談)

【再說不恰當的案例】而最多舉得天氣的例子,就不是很合適,第一,明天下雨的概率現實中絕對不僅依賴於今天是不是晴天,這在建模時需要首先考慮模型的精度,注意,概率模型是以[你所認知的]世界為基礎的,在某個問題下,你可以認為全人類得癌症的概率是多少多少,在其他問題下,你可能認為男性女性得癌症的概率分別是多少,這取決於模型的精度和你掌握的資訊來定。絕大部分問題不是天生就是馬爾科夫的,首先,夏天冬天不一樣,梅雨季節更不一樣,用術語說,這是時變的,當然你可以在你的模型中忽略這些,」假裝」他是馬爾科夫的。

【再說具體點】作為馬爾科夫的過程,就和HMM應用會扯上關係的問題來說,要注意,任何時候,當系統出於某一狀態時(也可以是以某一概率處於某些狀態),下週期處於狀態的概率要是確定的(比如剛說的75%,和25%,數值可以不知道,但一定是不會變的某個值

【先說定義】所謂的隱,就是看不見的意思。借用一句有切身感覺的話說」當看到速食麵中油包變成固體的時候,宅男知道,冬天來了「。這裡的季節(冬天)就是隱藏起來的變數,宅男(觀察者)不出屋,所以看不到天氣,他只可以看到速食麵調料(這叫觀測)。

所謂的HMM,用來描述乙個我們看不到系統狀態,只能看到觀測(但觀測和狀態之間有確定性的概率關係)的狀態。

【需要強調的】第一就是剛剛的最後一句,觀測和系統的狀態之間必須有確定的概率關係,這個關係和系統的執行時間,之前的觀測,之前的狀態等等都不能有任何關係。也就是任何時候我看到固體的調料包,就代表(90%冬天,10%剛剛春天)。第二就是剛說到的,HMM是用來描述這樣乙個系統使用的工具,就好像我們可以用矩陣代表乙個線性方程組一樣。

我們可以用HMM模型來表示乙個這樣的系統,定義它的量包括:(1)每個觀測下,系統處於某狀態的概率,共計觀測型別*系統狀態型別個,(由於概率總和為1,有效的量少觀測型別個)。(2)本週期系統處於某狀態時,下週期各狀態的概率分布(就是剛剛馬爾科夫中的那個矩陣),數量為狀態型別 * 狀態型別個(同上,有效的略少)。

(3)系統的初始狀態分布,就是第一週期時候系統是什麼樣子,這樣我們就可以計算出每週期的概率了。這個值一共有狀態型別個(有效的少乙個)

下面是怎麼用HMM

剛剛已經說過什麼是HMM了,就和高斯分布一樣,HMM是描述系統分布的一種手段,那我們怎麼用呢?(這裡我們只談用法思路,計算辦法網上很多,思路和模型本身關係不是那麼密切,就是算了)

【最常見的使用方法】我們說使用HMM時,一般時在解決這樣的乙個問題:當我有乙個觀測序列(樣本)時,它和我所有已經知道的HMM模型哪個最匹配。我們通常會為每個我們預計要檢測的東西訓練乙個HMM(用該類的大量樣本)。

【沿用剛剛的例子】剛在舉例子的時候沒想太周全,這裡就將就看吧。如果說我們可以用乙個HMM描述宅男看速食麵的問題的話,那麼我們最可能幹的事情就是,通過觀察速食麵油包狀態,估計宅男所處的城市。是不是有點意外?

居然不是看季節?其實HMM使用時最容易犯的錯誤就是弄混隱變數和我們的分類結果的關係了,關係就是沒有關係!我們首先選取了世界各地宅男看到的油包狀態,比如北京的1萬個宅男,深圳的1萬個,北冰洋的1萬個宅男各3年的觀察,作為樣本,這時,我們系統一共涉及到了這樣幾個資訊:

(1)我們預計有3個HMM模型,分別是北京,深圳,北冰洋(2)我們只有2個觀測結果,即油包是固態還是液態(3)我們的隱變數通常並不明確,但本例中我們估計系統狀態可能是4季,所以我們設定4個隱變數,注意:這4個就代表四季在實際應用中完全就是猜的,而且不見得訓練的結果就是四季

【解決例子中的問題】為了完成這個工作,我們要幹以下幾步:(1)分別利用每個地區的1萬個樣本,各自訓練乙個HMM,方法可參考網上各種文章。(2)在實際判斷乙個宅男的地理位置時,拿到乙個觀察序列,然後分別計算北京、深圳、北冰洋的HMM能夠得到這個觀測序列的概率。

概率最大的,就是該宅男的所在提。

最後多說幾句

HMM的求解是乙個非常麻煩的事情,可以看成是乙個EM迭代的過程,而且求解的變數非常多,這就直接導致了一些約束:(1)觀測的種類不能很多,尤其不能是連續過程(2)系統隱狀態也不宜太多(3)要檢測的目標,也就是HMM的數量,倒不是大問題,因為這是線性增長的,多一倍求解時間只多一倍,一般都能接受

如何用簡單例子講解 Q learning 的具體過程?

小波要好好愛自己 目前在做乙個無人機強化學習的專案,先簡單回答,占個坑 未完待續 探索的策略當前比較流行的有兩種 greedy和Boltzman Exploration。greedy 以 的概率進行探索,以1 的概率選擇最大Q值。這裡有個小技巧 就是剛開始的時候可以把 的概率設定得大一點。因為初始化...

如何用簡單易懂的語言來介紹量子物理?

火眼晶晶 看看量子形成.現在季節.正好乙個大家隨處可見的量子礦物質形成!乙個非常美得現象!楊樹種子現在是落地包裹層開啟後種子中心水分擴散乾淨後!看看楊樹這些種子落地過程.這個過程符合很多物理特性形成!你會看到礦物質很多形成的道理!這是乙個普遍能看到只要從落地從種子被放開空間蒸發水分到落地凝實飛不起來...

如何用通俗易懂的語言解釋指令碼(script)是什麼?

胡羅舶COOLHOBO Shirley 開發達人 指令碼是一種特定的描述性語言,計算機會按照程式順序的執行它,自動化的幫你完成一系列工作的程式。它非常方便快速,並且可以幫助開發者節省時間,而不用每次手動去執行指令。 天地一色 我覺得回答這個問題要解釋一方面要解釋它的引申意思,還要說一下它在計算機中產...