隱含馬爾可夫模型是什么以及如何應(yīng)用
隱含馬爾可夫模型最早成功的使用場(chǎng)景是語(yǔ)音識(shí)別,后來(lái)陸續(xù)成功的應(yīng)用在機(jī)器翻譯、拼寫錯(cuò)誤、手寫體識(shí)別、圖像處理、基因序列分析等很多it領(lǐng)域,目前也被用于股票預(yù)測(cè)和投資。
背景介紹
若只有兩個(gè)事件Ot,St,那么,P(Ot|St) = P(Ot,St)/P(St)。
條件概率的意思:就是事件Ot在另外一個(gè)事件St已經(jīng)發(fā)生條件下的發(fā)生概率,條件概率表示為P(Ot|St),讀作“在St條件下Ot的概率”。
如果有足夠多人工標(biāo)記的數(shù)據(jù),知道經(jīng)過(guò)狀態(tài)St有多少次#(St),每次經(jīng)過(guò)這個(gè)狀態(tài)時(shí),分別產(chǎn)生的輸出Ot是什么,并分別有多少次的#(Ot,St),就可以用兩者的比值P(Ot|St) =#(Ot,St)/#(St),估算出模型的參數(shù)。
有限狀態(tài)機(jī)
有限狀態(tài)機(jī)是一個(gè)特殊的有向圖,他包括一些狀態(tài)(節(jié)點(diǎn))和連接這些狀態(tài)的有向弧。
地址的識(shí)別和分析是本地搜索必不可少的技術(shù),判斷一個(gè)地址的正確性,同時(shí)非常準(zhǔn)確的提煉出相應(yīng)的地理位置信息(省-市-區(qū)-街道-門牌號(hào)等)看似簡(jiǎn)單實(shí)際很麻煩。
如:北京市大興區(qū)欣航路與黃鵝路交叉口東150米;北京市朝陽(yáng)區(qū)東壩單店西路2號(hào)院。
這些地址寫的都有點(diǎn)模糊,但是郵件和包裹都能收到,說(shuō)明郵遞員可以識(shí)別。但是,如果讓一個(gè)程序員寫一個(gè)分析器分析這些地址的描述,恐怕就不是一件容易的事情了。根本原因在于,地址的描述雖然看上去簡(jiǎn)單,但是它依然是比較復(fù)雜的上下文有關(guān)的文法,而不是上下文無(wú)關(guān)。
如:北京市海淀區(qū)馬連洼街道19號(hào)院。當(dāng)識(shí)別器掃描到馬連洼街道時(shí),它和后面的門牌號(hào)是否構(gòu)成一個(gè)正確的地址,需要看它的上下文即城市名。地址的文法是上下文有關(guān)文法中相對(duì)簡(jiǎn)單的一種,因此有很多識(shí)別和分析的方法,但最有效的是有限動(dòng)態(tài)機(jī)。
有限狀態(tài)機(jī)是一個(gè)特殊的有向圖,他包括一些狀態(tài)(節(jié)點(diǎn))和連接這些狀態(tài)的有向弧。
每一個(gè)有限狀態(tài)機(jī)都有一個(gè)開(kāi)始狀態(tài)和一個(gè)終止?fàn)顟B(tài),以及若干中間狀態(tài),每一條弧上都帶有從一個(gè)狀態(tài)進(jìn)入下一個(gè)狀態(tài)的條件。比如:在途中,當(dāng)前狀態(tài)是“省”,如果遇到一個(gè)詞組和(區(qū))縣有關(guān),那么就進(jìn)入“區(qū)縣”的狀態(tài),如果遇到的下一個(gè)詞組和城市有關(guān),那么就進(jìn)入“市”的狀態(tài),如此等等。
如果一條地址能從狀態(tài)機(jī)的開(kāi)始狀態(tài)經(jīng)過(guò)狀態(tài)機(jī)的若干中間狀態(tài),走到終止?fàn)顟B(tài),則這條地址有效,否則無(wú)效。比如:“北京市建國(guó)路88號(hào)”對(duì)于上面的有限狀態(tài)來(lái)講有效,而“上海市遼寧省馬家莊”則無(wú)效,因?yàn)闊o(wú)法從市走到省。
使用有效狀態(tài)機(jī)識(shí)別地址,關(guān)鍵要解決兩個(gè)問(wèn)題:
- 通過(guò)一些有效的地址建立狀態(tài)機(jī);
- 給定有限的狀態(tài)機(jī)后,地址字串的匹配算法。
有了關(guān)于地址的有限狀態(tài)機(jī)后,就可以用它分析網(wǎng)頁(yè),找出網(wǎng)頁(yè)的地址部分,建立本地搜索的數(shù)據(jù)庫(kù)。同樣,也可以對(duì)用戶輸入的查詢進(jìn)行分析,挑出其中描述地址的部分。當(dāng)然,剩下的關(guān)鍵字就是用戶要查找的內(nèi)容。比如:對(duì)于用戶輸入的“北京市建國(guó)路附近的麻辣燙”,本地會(huì)自動(dòng)識(shí)別出地址“北京市建國(guó)路”和要找的對(duì)象“麻辣燙”。
基于狀態(tài)機(jī)的地址識(shí)別方法在實(shí)用中會(huì)存在一些局限:當(dāng)用戶輸入的地址不太標(biāo)準(zhǔn)時(shí)或者有錯(cuò)別字的時(shí)候,有限狀態(tài)機(jī)會(huì)束手無(wú)措,因?yàn)樗荒苓M(jìn)行嚴(yán)格的匹配。當(dāng)用戶希望看到可以進(jìn)行模糊匹配,并給出一個(gè)字串為正確地址的可能性。為了實(shí)現(xiàn)這一目的,科學(xué)家們提出了基于概率的有限狀態(tài)機(jī)。
馬爾可夫鏈
19世紀(jì),概率論的發(fā)展從相對(duì)靜態(tài)的隨機(jī)變量的研究到對(duì)隨機(jī)變量的時(shí)間序列s1,s2,s3…st,…即隨機(jī)過(guò)程(動(dòng)態(tài))的研究。隨機(jī)過(guò)程要比隨機(jī)變量復(fù)雜得多。
- 首先,在任何時(shí)刻t,對(duì)應(yīng)的狀態(tài)時(shí)st,都是隨機(jī)的。舉個(gè)常見(jiàn)的例子,把s1,s2,s3…st,…看成是北京每天的高溫,這里面每一個(gè)st都是隨機(jī)的。
- 其次,任意狀態(tài)st的取值都可能和周圍的其他狀態(tài)有關(guān)。也就是說(shuō),任何一天的最高溫度,與這段時(shí)間以前的溫度有關(guān)的,這樣隨機(jī)過(guò)程就有了兩個(gè)維度的不確定性。
馬爾可夫?yàn)楹?jiǎn)化這一問(wèn)題,提出一種簡(jiǎn)化的假設(shè),即隨機(jī)過(guò)程中的每個(gè)狀態(tài)st的概率分布,只與他的前一個(gè)狀態(tài)有關(guān)即p(st|s1,s2,s3…st-1)=p(st|st-1)。
比如:對(duì)于天氣預(yù)報(bào),硬性假設(shè)今天的氣溫只和昨天有關(guān)而和前天無(wú)關(guān)。當(dāng)然這種假設(shè)未必適合所有的應(yīng)用,但是至少對(duì)以前很多不好解決的問(wèn)題給出了相似解。這個(gè)假設(shè)后來(lái)被命名為馬爾可夫假設(shè),而符合這個(gè)假設(shè)的隨機(jī)過(guò)程稱為馬爾可夫過(guò)程,也稱為馬爾可夫鏈。
在馬爾可夫鏈中,四個(gè)圈表示四個(gè)狀態(tài),每條邊表示一個(gè)可能的狀態(tài)轉(zhuǎn)換,邊上的權(quán)值是轉(zhuǎn)移概率。例如:狀態(tài)m1到m2之間只有一條邊,并且邊上權(quán)值為1.0.這表示從m1只可能轉(zhuǎn)換到m2,轉(zhuǎn)移概率是100%。從m2出發(fā)的有兩條邊:到m3和到m4,其中0.6表示:某個(gè)時(shí)刻的狀態(tài)是m2,下一個(gè)時(shí)刻的狀態(tài)是m3的概率是60%。
把馬爾可夫鏈想象成一臺(tái)機(jī)器,它隨機(jī)地選擇一個(gè)狀態(tài)作為初始狀態(tài),隨后按照上述規(guī)則隨機(jī)的選擇后續(xù)狀態(tài)。運(yùn)行一段時(shí)間后,就會(huì)產(chǎn)生一個(gè)狀態(tài)序列s1,s2,s3…st,…??吹竭@個(gè)序列,不難算出某個(gè)狀態(tài)的mi 的出現(xiàn)次數(shù)以及從mi到mj的轉(zhuǎn)換次數(shù),從而估算出概率。
隱含馬爾可夫模型是上述馬爾可夫鏈的一個(gè)拓展,在任何時(shí)刻t的狀態(tài)st是不可預(yù)見(jiàn)的。所以我們沒(méi)辦法觀察一個(gè)狀態(tài)序列,來(lái)推測(cè)出轉(zhuǎn)移概率等參數(shù)。但是,隱含馬爾可夫模型在每個(gè)時(shí)刻t會(huì)輸出一個(gè)符號(hào)o,而且這個(gè)符號(hào)僅與st相關(guān)。
使用場(chǎng)景
隱含馬爾可夫模型最早成功的使用場(chǎng)景是語(yǔ)音識(shí)別,后來(lái)陸續(xù)成功的應(yīng)用在機(jī)器翻譯、拼寫錯(cuò)誤、手寫體識(shí)別、圖像處理、基因序列分析等很多it領(lǐng)域,目前也被用于股票預(yù)測(cè)和投資。
目前國(guó)內(nèi)已有的語(yǔ)音識(shí)別是iPhone的Siri,小米的小愛(ài)音箱能夠做到的也只是能夠喚醒某個(gè)軟件的啟動(dòng),微軟的小冰目前仍然有很大的局限性。
這是因?yàn)閿?shù)據(jù)是人工標(biāo)記的,這種方法是有監(jiān)督的訓(xùn)練方法。人是無(wú)法確定產(chǎn)生某個(gè)語(yǔ)音的狀態(tài)序列的,因此也就無(wú)法標(biāo)注訓(xùn)練模型的數(shù)據(jù)。而在另外一些應(yīng)用中,雖然標(biāo)注數(shù)據(jù)是可行的,但是成本非常高。比如:訓(xùn)練中英機(jī)器翻譯的模型,需要大量中英對(duì)照的語(yǔ)料,還要把中英文的詞組一一對(duì)應(yīng)起來(lái),這個(gè)成本非常高。
參考資料:《如何用簡(jiǎn)單易懂的例子解釋隱馬爾可夫模型?》
本文由 @小可愛(ài) 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載
題圖來(lái)自 Pixabay,基于 CC0 協(xié)議
- 目前還沒(méi)評(píng)論,等你發(fā)揮!