隐马尔科夫模型
1、馬爾科夫過程
馬爾可夫過程的定義: ⑴設 是一個隨機過程,如果在 在 時刻所處的狀態為已知時,與它在時刻 之前所處的狀態無關,則稱具有馬爾可夫性。 ⑵設 的狀態空間為S,如果對于任意的n≧2,任意的 ,在條件 下,X(tn)的條件分布函數恰好等于在條件 下的條件分布函數,即則稱 為馬爾可夫過程。
2、馬爾科夫鏈
馬爾可夫鏈(Markov Chain),描述了一種狀態序列,其每個狀態值取決于前面有限個狀態。馬爾可夫鏈是具有馬爾可夫性質的隨機變量的一個數列。這些變量的范圍,即它們所有可能取值的集合,被稱為“狀態空間”,而 的值則是在時間n的狀態。如果 對于過去狀態的條件概率分布僅是 的一個函數,則這里x為過程中的某個狀態。上面這個恒等式可以被看作是馬爾可夫性質。3、馬爾科夫模型
隱馬爾可夫模型(Hidden Markov Model,HMM)是統計模型,它用來描述一個含有隱含未知參數的馬爾可夫過程。其難點是從可觀察的參數中確定該過程的隱含參數。然后利用這些參數來作進一步的分析,例如模式識別。隱馬爾可夫模型是馬爾可夫鏈的一種,它的狀態不能直接觀察到,但能通過觀測向量序列觀察到,每個觀測向量都是通過某些概率密度分布表現為各種狀態,每一個觀測向量是由一個具有相應概率密度分布的狀態序列產生。所以,隱馬爾可夫模型是一個雙重隨機過程----具有一定狀態數的隱馬爾可夫鏈和顯示隨機函數集。自20世紀80年代以來,HMM被應用于語音識別,取得重大成功。到了90年代,HMM還被引入計算機文字識別和移動通信核心技術“多用戶的檢測”。HMM在生物信息科學、故障診斷等領域也開始得到應用。數學之美3–隱含馬爾科夫模型在語言處理中的應用
此博文包含圖片 (2009-02-18 13:04:02)轉載▼
標簽: google黑板報 數學之美 數學模型 馬爾科夫模型 it
2006年4月17日 上午 08:01:00
發表者:吳軍,Google 研究員
前言:隱含馬爾可夫模型是一個數學模型,到目前為之,它一直被認為是實現快速精確的語音識別系統的最成功的方法。復雜的語音識別問題通過隱含馬爾可夫模型能非常簡單地被表述、解決,讓我不由由衷地感嘆數學模型之妙。
自 然語言是人類交流信息的工具。很多自然語言處理問題都可以等同于通信系統中的解碼問題 – 一個人根據接收到的信息,去猜測發話人要表達的意思。這其實就象通信中,我們根據接收端收到的信號去分析、理解、還原發送端傳送過來的信息。以下該圖就表 示了一個典型的通信系統:
數學之美3–隱含馬爾科夫模型在語言處理中的應用
其中 s1,s2,s3…表示信息源發出的信號。o1, o2, o3 … 是接受器接收到的信號。通信中的解碼就是根據接收到的信號 o1, o2, o3 …還原出發送的信號 s1,s2,s3…。
其 實我們平時在說話時,腦子就是一個信息源。我們的喉嚨(聲帶),空氣,就是如電線和光纜般的信道。聽眾耳朵的就是接收端,而聽到的聲音就是傳送過來的信 號。根據聲學信號來推測說話者的意思,就是語音識別。這樣說來,如果接收端是一臺計算機而不是人的話,那么計算機要做的就是語音的自動識別。同樣,在計算 機中,如果我們要根據接收到的英語信息,推測說話者的漢語意思,就是機器翻譯; 如果我們要根據帶有拼寫錯誤的語句推測說話者想表達的正確意思,那就是自動糾錯。
那么怎么根據接收到的信息來推測說話者想表達的意思呢?我們可以利用叫做”隱含馬爾可夫模型” (Hidden Markov Model)來解決這些問題。以語音識別為例,當我們觀測到語音信號 o1,o2,o3 時,我們要根據這組信號推測出發送的句子 s1,s2,s3。顯然,我們應該在所有可能的句子中找最有可能性的一個。用數學語言來描述,就是在已知 o1,o2,o3,…的情況下,求使得條件概率
P (s1,s2,s3,…|o1,o2,o3….) 達到最大值的那個句子 s1,s2,s3,…
當然,上面的概率不容易直接求出,于是我們可以間接地計算它。利用貝葉斯公式并且省掉一個常數項,可以把上述公式等價變換成
P(o1,o2,o3,…|s1,s2,s3….) * P(s1,s2,s3,…)
其中
P(o1,o2,o3,…|s1,s2,s3….) 表示某句話 s1,s2,s3…被讀成 o1,o2,o3,…的可能性, 而
P(s1,s2,s3,…) 表示字串 s1,s2,s3,…本身能夠成為一個合乎情理的句子的可能性,所以這個公式的意義是用發送信號為 s1,s2,s3…這個數列的可能性乘以 s1,s2,s3…本身可以一個句子的可能性,得出概率。
(讀者讀到這里也許會問,你現在是不是把問題變得更復雜了,因為公式越寫越長了。別著急,我們現在就來簡化這個問題。)我們在這里做兩個假設:
第一,s1,s2,s3,… 是一個馬爾可夫鏈,也就是說,si 只由 si-1 決定 (詳見系列一);
第二, 第 i 時刻的接收信號 oi 只由發送信號 si 決定(又稱為獨立輸出假設, 即 P(o1,o2,o3,…|s1,s2,s3….) = P(o1|s1) * P(o2|s2)*P(o3|s3)…。
那么我們就可以很容易利用算法 Viterbi 找出上面式子的最大值,進而找出要識別的句子 s1,s2,s3,…。
滿足上述兩個假設的模型就叫隱含馬爾可夫模型。我們之所以用”隱含”這個詞,是因為狀態 s1,s2,s3,…是無法直接觀測到的。
隱 含馬爾可夫模型的應用遠不只在語音識別中。在上面的公式中,如果我們把 s1,s2,s3,…當成中文,把 o1,o2,o3,…當成對應的英文,那么我們就能利用這個模型解決機器翻譯問題; 如果我們把 o1,o2,o3,…當成掃描文字得到的圖像特征,就能利用這個模型解決印刷體和手寫體的識別。
P (o1,o2,o3,…|s1,s2,s3….) 根據應用的不同而又不同的名稱,在語音識別中它被稱為”聲學模型” (Acoustic Model), 在機器翻譯中是”翻譯模型” (Translation Model) 而在拼寫校正中是”糾錯模型” (Correction Model)。 而P (s1,s2,s3,…) 就是我們在系列一中提到的語言模型。
在利用隱含馬爾可夫模型解決語言處理問題前,先要進行模型的訓練。 常用的訓練方法由伯姆(Baum)在60年代提出的,并以他的名字命名。隱含馬爾可夫模型在處理語言問題早期的成功應用是語音識別。七十年代,當時 IBM 的 Fred Jelinek (賈里尼克) 和卡內基·梅隆大學的 Jim and Janet Baker (貝克夫婦, 李開復的師兄師姐) 分別獨立地提出用隱含馬爾可夫模型來識別語音,語音識別的錯誤率相比人工智能和模式匹配等方法降低了三倍 (從 30% 到 10%)。 八十年代李開復博士堅持采用隱含馬爾可夫模型的框架, 成功地開發了世界上第一個大詞匯量連續語音識別系統 Sphinx。
我 最早接觸到隱含馬爾可夫模型是幾乎二十年前的事。那時在《隨機過程》(清華”著名”的一門課)里學到這個模型,但當時實在想不出 它有什么實際用途。幾年后,我在清華跟隨王作英教授學習、研究語音識別時,他給了我幾十篇文獻。 我印象最深的就是賈里尼克和李開復的文章,它們的核心思想就是隱含馬爾可夫模型。復雜的語音識別問題居然能如此簡單地被表述、解決,我由衷地感嘆數學模型 之妙。
總結
- 上一篇: java excel 转pdf
- 下一篇: SWAT模型