HMM 不負責講座 (四): HMM 定义与实例

导读:
  未經原作者同意,請勿任意轉載,謝謝。
  –
  讓我們先來看個小問題。
  假設我們去一個賭場賭骰子。您知道的嘛,賭場哪有不作弊的?根據某消息靈通人士所言,這個賭場使用兩個骰子,一個是正常的骰子,也就是 1 到 6 出現的機率一樣,都是六分之一;另一個骰子是動過手腳的,6 出現的機率特別高,佔了二分之一,其餘 1 到 5 出現的機率一樣,都是十分之一。此外,賭場會偷換這兩個骰子,當他們使用正常骰子時,下一次偷換成動過手腳的骰子的機率是 0.05;當他們使用有問題的骰子時,下一次偷換成正常骰子的機率是 0.1。當然囉,我們只能看到每次骰子丟出來的點數是多少,我們並不知道賭場用的是哪一個骰子。
  根據以上的描述,我們可以畫出對應的狀態轉換圖 (圖一),這個狀態轉換圖與馬可夫鏈轉換圖略有不同:此處的狀態圖中,一個狀態有好幾種可能的對應符號。而在馬可夫鏈中,一個狀態就只能對應一種符號,例如在我們先前舉的 CpG islands 例子中,狀態 A 所對應的符號就只能是核甘酸 A (請參照 HMM 不負責講座 (二): 馬可夫鏈 (Markov Chains))。
  圖一 「賭場用骰子」的狀態轉換圖
  
  
  在這個狀態轉換圖中,我們有兩個狀態,一個代表正常的骰子,另一個代表不正常的骰子。我們有四個狀態轉換機率:從正常骰子換到正常骰子的機率是 0.95;從正常骰子換到不正常骰子的機率是 0.05;從不正常骰子換到不正常骰子的機率是 0.9;而從不正常骰子換到正常骰子的機率是 0.1。
  此外,每個狀態會有所謂的「符號產生機率」。就正常的骰子這個狀態而言,會有六個符號產生機率,分別代表點數 1 到點數 6 出現的機率 (在此都是六分之一);就不正常的骰子這個狀態而言,也會有六個符號產生機率,也分別代表了點數 1 到點數 6 出現的機率 (6 出現的機率是二分之一,而 1 到 5 出現的機率都是十分之一) 。
  像這樣的一個狀態轉換圖,就是一個 Hidden Markov Model (HMM)。
  一個 HMM 包含四項元素:可能的符號、可能的狀態、狀態間的轉換機率、以及狀態內的符號產生機率。以上述的例子來說,可能的符號就是 1 到 6 。可能的狀態就是「正常骰子」與「不正常骰子」?amp;nbsp;       顟B間的轉換機率是「正常骰子」–>「正常骰子」為 0.95、「正常骰子」–>「不正常骰子」為 0.05、「不正常骰子」–>「不正常骰子」為 0.9、「不正常骰子」–>「正常骰子」為 0.1。而狀態內的符號產生機率有兩組,分別是:就「正常骰子」來說,出現 1、2、3、4、5、6 的機率都是六分之一,而就「不正常骰子」來說,出現 1、2、3、4、5 的機率都是十分之一,出現 6 的機率是二分之一。
  這樣的模型可以產生兩種序列:狀態序列與符號序列。就以上的例子而言,狀態序列就是記錄所使用的骰子。例如「正常」「正常」「正常」「不正常」「正常」。這個序列表示第一次用的是正常的骰子、第二次用的也是正常的骰子、第三次用的還是正常的骰子、第四次用的是不正常的骰子,而最後一次 (也就是第五次) 用的是正常的骰子。而符號序列則是記錄每次骰子擲出的點數。例如 65326,分別表示從第一次到第五次所擲出的點數。相信各位可以發現,我們可以觀察到的是符號序列,而我們無法得知的是狀態序列,這也就是為什麼這個模型叫做 Hidden Markov Model ,因為我們的狀態序列是「Hidden (隱藏)」的。
  現在我們可以想一下,該如何造一個 HMM 來描述 CpG islands 的第二個問題:給定一長段 DNA 序列 X,X中的哪些區段可能是 CpG islands?
  我們可以造出如下的 HMM:可能的符號就是四種核甘酸 A、C、G、T。而可能的狀態有 A+、C+、G+、T+、A-、C-、G-、與 T- 這八個。其中 A+ 表示位於 CpG islands 內產生核甘酸 A 的狀態,而 A- 表示位於 CpG islands 外產生核甘酸 A 的狀態,以此類推。而狀態轉換機率有 A+ to A+、A+ to C+、…、A+ to G-、… 共 64 種轉換機率。而狀態內的符號產生機率有八組,其中以狀態 A+ 來說,產生 A 的機率是 1,而產生 C、G、與 T 的機率都是零。以狀態 G- 來說,產生 G 的機率是 1,而產生 A、C、與 T 的機率都是零。其餘六組以此類推。在這個模型之下,狀態序列 C+G-C-G+ 所對應的符號序列就是 CGCG;而我們知道第一與第四個核甘酸是位於 CpG islands 之內,而第二與第三個核甘酸則位於 CpG islands 之外。請注意,這只是其中一種可以用來描述這個問題的 HMM,您應該可以輕易造出另一個可以描述此問題的 HMM。
  好啦,HMM 的定義講完啦。那麼,如果我們有一個 HMM,還有一堆 training 用的序列組合 (狀態序列與其對應的符號序列) ,我們希望完成哪些事呢?可能有以下幾項:
  算出此 HMM 的狀態轉換機率與狀態內的符號產生機率 (Baum-Welch 與 Viterbi training)。
  給定符號序列,求出相對應的狀態序列 (Viterbi)。就骰子的例子來說,給定觀察到的點數序列,求出分別是用哪個骰子所擲出的。
  此 HMM 產生某段符號序列 X的機率是多少 (forward)?
  給定某段符號序列 X,X的第 i個元素是由狀態 S所產生的機率是多少 (forward 與 backward)?
  各位應該發現了,在每個問題之後都有個括弧。括弧內就是解決這些問題的既有方法。這些既有的方法都有相當好的效果。就以骰子的例子與第二個問題來說,我們可以看看圖二:
  圖二 以 Viterbi 法來猜測使用的骰子
  Rolls 315116246446644245311321631164152133625144543631656626566666
Die FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFUUUUUUUUUUUUUUU
Viterbi FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFUUUUUUUUUUUU

Rolls 651166453132651245636664631636663162326455236266666625151631
Die UUUUUUFFFFFFFFFFFFUUUUUUUUUUUUUUUUFFFUUUUUUUUUUUUUUFFFFFFFFF
Viterbi UUUUUUFFFFFFFFFFFFUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUFFFFFFFF

Rolls 222555441666566563564324364131513465146353411126414626253356
Die FFFFFFFFUUUUUUUUUUUUUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFUU
Viterbi FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFU

Rolls 366163666466232534413661661163252562462255265252266435353336
Die UUUUUUUUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
Viterbi UUUUUUUUUUUUFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

Rolls 233121625364414432335163243633665562466662632666612355245242
Die FFFFFFFFFFFFFFFFFFFFFFFFFFFUUUUUUUUUUUUUUUUUUUUUUFFFFFFFFFFF
Viterbi FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFUUUUUUUUUUUUUUUUUUUFFFFFFFFFFF
  圖二記錄了三百次的骰子結果。Rolls 是擲出的點數;Die 是實際使用的骰子,F 是指正常的骰子,U 是指不正常的骰子;Viterbi 是我們用 Viterbi 法所猜出的骰子 (在知道 Rolls 的情況下)。紅色就是我們感興趣的部分:賭場用不正常骰子作弊的部分。我們可以看到,Viterbi 法其實已經猜得相當準了。HMM 其他問題的演算法也可以得到類似這樣相當不錯的效果。
  因此,我們擔心的並不是 「操作 HMM 的工具」,而是 HMM 本身。換言之,當我們想要用 HMM 來解決問題時,狀態轉換圖才是我們的藝術所在,也是模擬及預測的效果好壞最重要的因素。只要 HMM 狀態轉換圖設計得好,模擬及預測的效果就會很好。換言之,之前提到可以模擬 CpG islands 的 HMM 不只一種,但是本文所介紹的 CpG islands HMM 應該會比其他的 HMM 效果好些。利用 HMM 來做 Gene finding 的論文也很多,但是 GENESCAN 所造出的 HMM 效果就是比別人好。
  很抱歉這一系列介紹 HMM 的文章就要在此告一段落了。我不打算進一步說明 HMM 會用到的各種方法,因為其中牽涉了一些統計與演算法的理論,可能大家看起來會比較吃力。並且這些東西其實都已經有免費的程式套件可以使用了,各位也實在不必多花心思在這上面。我想傳達的理念是,HMM 的效果好壞取決於它的狀態轉換圖,而我們對問題的本質瞭解得越深入,畫出來的狀態轉換圖就會越完備,效果也會越好。
  本文發表於星期日, 五月 5th, 2002 的 12:16 pm, 並且歸類在 生物資訊。 您可以透過 RSS 2.0feed 訂閱機制來回應此文。 您目前無法回應,但是可以從您的網站 回溯此文。

本文转自
http://yuhfan.deyuan.idv.tw/weblog/?p=12
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值