【專欄】數學之美番外篇:平凡而又神奇的貝葉斯方法(12)
怎么根據接收到的信息來推測說話者想表達的意思呢?我們可以利用叫做“隱含馬爾可夫模型”(Hidden Markov Model)來解決這些問題。以語音識別為例,當我們觀測到語音信號o1,o2,o3時,我們要根據這組信號推測出發送的句子s1,s2,s3。
隱馬可夫模型(HMM)
吳軍在數學之美系列里面介紹的隱馬可夫模型(HMM)就是一個簡單的層級貝葉斯模型:
隱馬可夫模型
那么怎么根據接收到的信息來推測說話者想表達的意思呢?我們可以利用叫做“隱含馬爾可夫模型”(Hidden Markov Model)來解決這些問題。以語音識別為例,當我們觀測到語音信號o1,o2,o3時,我們要根據這組信號推測出發送的句子s1,s2,s3。顯然,我們應該在所有可能的句子中找最有可能性的一個。用數學語言來描述,就是在已知o1,o2,o3,…的情況下,求使得條件概率P(s1,s2,s3,…|o1,o2,o3….)達到最大值的那個句子 s1,s2,s3,…
吳軍的文章中這里省掉沒說的是,s1, s2, s3, ..這個句子的生成概率同時又取決于一組參數,這組參數決定了s1, s2, s3, ..這個馬可夫鏈的先驗生成概率。如果我們將這組參數記為λ,我們實際上要求的是:P(S|O, λ)(其中O表示o1,o2,o3,..,S表示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…本身可以一個句子的可能性其實就取決于參數λ,也就是語言模型。所以簡而言之就是發出的語音信號取決于背后實際想發出的句子,而背后實際想發出的句子本身的獨立先驗概率又取決于語言模型。
作者:劉未鵬 出版:電子工業出版社
貝葉斯網絡
吳軍已經對貝葉斯網絡作了科普,請直接跳轉到這里。更詳細的理論參考所有機器學習的書上都有。
參考資料
一堆機器學習,一堆概率統計,一堆Google,和一堆Wikipedia條目,一堆paper。
部分書籍參考《機器學習與人工智能資源導引》。
(待續;此文的修訂版已收錄《暗時間》一書,由電子工業出版社2011年8月出版。作者于2009年7月獲得南京大學計算機系碩士學位,現在微軟亞洲研究院創新工程中心從事軟件研發工程師工作。)
網絡編輯:謝小跳