生命情報学(5) 隠れマルコフモデル - kyoto u...hmmにおける基本アルゴリズ...

35
生命情報学 (5) 隠れマルコフモデル 阿久津 達也 京都大学 化学研究所 バイオインフォマティクスセンター

Upload: others

Post on 07-Aug-2021

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 生命情報学(5) 隠れマルコフモデル - Kyoto U...HMMにおける基本アルゴリズ ム Viterbiアルゴリズ ム 出力記号列から 状態列を推定 構文解析

生命情報学 (5)

隠れマルコフモデル

阿久津 達也

京都大学 化学研究所

バイオインフォマティクスセンター

Page 2: 生命情報学(5) 隠れマルコフモデル - Kyoto U...HMMにおける基本アルゴリズ ム Viterbiアルゴリズ ム 出力記号列から 状態列を推定 構文解析

内容

配列モチーフ

最尤推定、ベイズ推定、MAP推定

隠れマルコフモデル(HMM)

Viterbiアルゴリズム

EMアルゴリズム

Baum-Welchアルゴリズム前向きアルゴリズム、後向きアルゴリズム

プロファイルHMM

Page 3: 生命情報学(5) 隠れマルコフモデル - Kyoto U...HMMにおける基本アルゴリズ ム Viterbiアルゴリズ ム 出力記号列から 状態列を推定 構文解析

配列モチーフ

Page 4: 生命情報学(5) 隠れマルコフモデル - Kyoto U...HMMにおける基本アルゴリズ ム Viterbiアルゴリズ ム 出力記号列から 状態列を推定 構文解析

モチーフ発見 配列モチーフ : 同じ機能を持つ遺伝子配列などに見られる共通の文字列パターン

正規表現など文法表現を用いるもの例: ロイシンジッパーモチーフ

L-x(6)-L-x(6)-L-x(6)-L

ジンクフィンガーモチーフC-x(2,4)-C-x(3)-[LIVMFYWC]-x(8)-H-x(3,5)-H

人間にとってわかりやすいが表現力が弱い

確率的な表現法を用いるもの重み行列(プロファイル)

HMM (隠れマルコフモデル)

人間にとってわかりにくいが一般に表現力は高い

A

C

G

T

3.8

1.5

-1.5

0.2

-3.5

1.3

-2.9

-4.1

-0.3

3.7

2.3

-4.6

3.1

-1.3

1.2

4.2

A C G G A C

score= 3.8 + 1.3 + 4.2 + 3.1

Page 5: 生命情報学(5) 隠れマルコフモデル - Kyoto U...HMMにおける基本アルゴリズ ム Viterbiアルゴリズ ム 出力記号列から 状態列を推定 構文解析

モチーフの例• ジンクフィンガーモチーフ

C-x(2,4)-C-x(3)-[LIVMFYWC]-x(8)-H-x(3,5)-H

• ロイシンジッパーモチーフ

L-x(6)-L-x(6)-L-x(6)-L

Page 6: 生命情報学(5) 隠れマルコフモデル - Kyoto U...HMMにおける基本アルゴリズ ム Viterbiアルゴリズ ム 出力記号列から 状態列を推定 構文解析

局所マルチプルアラインメント

複数配列と長さ L が与えられた時、スコア最大となるように各配列から長さ L の部分列を抽出

モチーフ発見などに有用

A T G C G A T

A T C C G A T

T T G C G A A

Sequence 1

Sequence 2

Sequence 3

Page 7: 生命情報学(5) 隠れマルコフモデル - Kyoto U...HMMにおける基本アルゴリズ ム Viterbiアルゴリズ ム 出力記号列から 状態列を推定 構文解析

相対エントロピースコアのもとでの局所マルチプルアラインメント

相対エントロピースコアの定義

fj(a): (モチーフ領域の)j列目におけるaの出現頻度

p(a): aの出現頻度(事前確率)

L: モチーフ領域の長さ

Lj

ja j

ap

afafscore

1 )(

)(log)(

実用的アルゴリズム

Gibbsサンプリング, EMアルゴリズム

Page 8: 生命情報学(5) 隠れマルコフモデル - Kyoto U...HMMにおける基本アルゴリズ ム Viterbiアルゴリズ ム 出力記号列から 状態列を推定 構文解析

Gibbs サンプリング

1. 各配列 xj からランダムに部分配列 tj を選ぶ

2. 1個の配列 xi をランダムに選ぶ

3. xi の部分列 ti’ を

に比例する確率で選ぶ

4. ti をti’ でおきかえる

5. ステップ2-4を十分な回数だけ繰り返す

( ti[j]: 部分列ti のj列目の文字 )

Step 1

x1

x3

t1

t3

x2 t2

Step 2-3

x2 t2’

Probabilistic Search

x1

x3

t1

t3

x2 t2’

Step 4

])['(

])['(

1 jtp

jtf

i

ijL

j

Page 9: 生命情報学(5) 隠れマルコフモデル - Kyoto U...HMMにおける基本アルゴリズ ム Viterbiアルゴリズ ム 出力記号列から 状態列を推定 構文解析

最尤推定、ベイズ推定、MAP推定

Page 10: 生命情報学(5) 隠れマルコフモデル - Kyoto U...HMMにおける基本アルゴリズ ム Viterbiアルゴリズ ム 出力記号列から 状態列を推定 構文解析

最尤推定

P(D|θ) (尤度) モデルパラメータ θ のもとでのデータ D の出現確率

最尤法 P(D|θ)を最大化する θ を選ぶ

例 コインを5回投げて、表が3回出た後、裏が2回出た

p(表)=a, p(裏)=1-a とすると、P(D|θ)=a3(1-a)2

a=3/5の時、 P(D|θ) は最大

一般に表が出る頻度を f とすると a=f で尤度は最大

Page 11: 生命情報学(5) 隠れマルコフモデル - Kyoto U...HMMにおける基本アルゴリズ ム Viterbiアルゴリズ ム 出力記号列から 状態列を推定 構文解析

ベイズ推定とMAP推定

ベイズ推定:尤度とモデル(パラメータ)の事前確率から、ベイズの定理により、事後確率を推定

最大事後確率(MAP)推定 P(D|θ)P(θ) を最大化する θ を計算

P(θ) が一様分布なら最尤推定と同じ

が連続値の時)(ただし、 θθ'Pθ'DPDP

DP

θPθDPDθP

)()|()(

)(

)()|()|(

θ'

Page 12: 生命情報学(5) 隠れマルコフモデル - Kyoto U...HMMにおける基本アルゴリズ ム Viterbiアルゴリズ ム 出力記号列から 状態列を推定 構文解析

不正サイコロのベイズ推定

公正サイコロと不正サイコロ

公正: P(i|公正)=1/6

不正: P(6|不正)=1/2, P(i|不正)=1/10 for i≠6

P(公正)=0.99, P(不正)=0.01

6が3回続けて出た場合の事後確率

21.0)99.0()()01.0()5.0(

)01.0()5.0(

)666(

)()|666()666|(

3

613

3

P

PPP

不正不正不正

Page 13: 生命情報学(5) 隠れマルコフモデル - Kyoto U...HMMにおける基本アルゴリズ ム Viterbiアルゴリズ ム 出力記号列から 状態列を推定 構文解析

隠れマルコフモデル

Page 14: 生命情報学(5) 隠れマルコフモデル - Kyoto U...HMMにおける基本アルゴリズ ム Viterbiアルゴリズ ム 出力記号列から 状態列を推定 構文解析

隠れマルコフモデル(HMM)

HMM≒有限オートマトン+確率

定義 出力記号集合Σ

状態集合

S={1,2,…n}

遷移確率(k→l)

akl

出力確率

ek(b) (開始状態=

終了状態= 0)

0.4

0.6

0.3

0.7

0.5

0.5 1

2

3 A: 0.2

B: 0.8

A: 0.7

B: 0.3

A: 0.1

B: 0.9

Page 15: 生命情報学(5) 隠れマルコフモデル - Kyoto U...HMMにおける基本アルゴリズ ム Viterbiアルゴリズ ム 出力記号列から 状態列を推定 構文解析

HMMにおける基本アルゴリズム

Viterbiアルゴリズム

出力記号列から

状態列を推定

構文解析

Baum-Welchアルゴリズム

(EMアルゴリズム)

出力記号列から

パラメータを推定

学習

0.4

0.6

0.3

0.7

0.5

0.5 1

2

3 A: 0.2

B: 0.8

A: 0.7

B: 0.3

A: 0.1

B: 0.9

BABBBAB

2312131

1

2

3

BABBBAB ABBABBAAB BBBABBABAB BAABBBBA

0.4

0.6

0.3

0.7

0.5

0.5 1

2

3 A: 0.2

B: 0.8

A: 0.7

B: 0.3

A: 0.1

B: 0.9

Page 16: 生命情報学(5) 隠れマルコフモデル - Kyoto U...HMMにおける基本アルゴリズ ム Viterbiアルゴリズ ム 出力記号列から 状態列を推定 構文解析

時々いかさまをするカジノ サイコロの出目だけが観測可能、どちらのサイコロを振っているかは観測不可能

サイコロの出目から、どちらのサイコロを振っているかを推定

6,2,6,6,3,6,6,6,

4,6,5,3,6,6,1,2

→不正サイコロ

6,1,5,3,2,4,6,3,

2,2,5,4,1,6,3,4

→公正サイコロ

6,6,3,6,5,6,6,1,

5,4,2,3,6,1,5,2

→途中で公正サイコロに交換

1: 1/6 2: 1/6 3: 1/6 4: 1/6 5: 1/6 6: 1/6

1: 1/10 2: 1/10 3: 1/10 4: 1/10 5: 1/10 6: 1/2

0.05

0.1

0.95 0.9

公正サイコロ 不正サイコロ

Page 17: 生命情報学(5) 隠れマルコフモデル - Kyoto U...HMMにおける基本アルゴリズ ム Viterbiアルゴリズ ム 出力記号列から 状態列を推定 構文解析

Viterbiアルゴリズム

Page 18: 生命情報学(5) 隠れマルコフモデル - Kyoto U...HMMにおける基本アルゴリズ ム Viterbiアルゴリズ ム 出力記号列から 状態列を推定 構文解析

Viterbiアルゴリズム(1)

観測列(出力配列データ) x=x1…xLと状態列π=π1…πLが与えられた時、その同時確率は

P(x,π)=a0 π1Πeπi (xi)aπiπi+1 但し、πL+1=0

x が与えられた時、最も尤もらしい状態列は π*=argmaxπ P(x,π)

例:どちらのサイコロがいつ使われたかを推定

0.05

0.05 0.1

0.95

0.9

0.95

0.05

0.1

0.9

0.95

0.9

0.1

x2=3

0 0

0.5

0.5

x1=4 x3=2

61

61

61

321321π95.095.05.0),(π),(max 公公公xxxxxx PP

Page 19: 生命情報学(5) 隠れマルコフモデル - Kyoto U...HMMにおける基本アルゴリズ ム Viterbiアルゴリズ ム 出力記号列から 状態列を推定 構文解析

Viterbiアルゴリズム(2)

x から、π*=argmaxπ P(x,π) を計算

そのためには x1…xi を出力し、状態 k に至る確率最大の状態列の確率 vk(i) を計算

vk(i)は以下の式に基づき動的計画法で計算

))(()()1( max1 avxev klk

k

illii

axev jjj

i

jj

ik ππ 1

π

)( )(max

Page 20: 生命情報学(5) 隠れマルコフモデル - Kyoto U...HMMにおける基本アルゴリズ ム Viterbiアルゴリズ ム 出力記号列から 状態列を推定 構文解析

Viterbiアルゴリズム(3)

0.05

0.05 0.1

0.95

0.9

0.95

0.05

0.1

0.9

0.95

0.9

0.1

4 6 1

i-1 i i+1

})(1.0)1(),(95.0)1(max{)1( iii vevev 不公公公公

Page 21: 生命情報学(5) 隠れマルコフモデル - Kyoto U...HMMにおける基本アルゴリズ ム Viterbiアルゴリズ ム 出力記号列から 状態列を推定 構文解析

EMアルゴリズム

Page 22: 生命情報学(5) 隠れマルコフモデル - Kyoto U...HMMにおける基本アルゴリズ ム Viterbiアルゴリズ ム 出力記号列から 状態列を推定 構文解析

EM(Expectation Maximization)アルゴリズム

「欠けているデータ」のある場合の最尤推定のための一般的アルゴリズム

最大化は困難であるので、反復により尤度を単調増加させる(θtよりθt+1を計算)

HMMの場合、「欠けているデータ」は状態列

の最大化目標:

パラメータ集合

欠けているデータ、観測データ、

y

)( log)( log

:

::

x,y|θPx|θP

θ

yx

Page 23: 生命情報学(5) 隠れマルコフモデル - Kyoto U...HMMにおける基本アルゴリズ ム Viterbiアルゴリズ ム 出力記号列から 状態列を推定 構文解析

EMアルゴリズムの導出

とすれば尤度は増大よって、

、ロピーで常に正なので最後の項は相対エント

とおくと、右辺第1項を

についての和をとり、をかけて両辺に

)|(maxarg

)|()|()|(log)|(log

),|(

),|(log),|()|()|(

)|(log)|(log

)|(

),|(log),|()|,(log),|()|(log

),|(

),|(log)|,(log)|(log

1 t

θ

t

tttt

y

ttttt

t

t

t

yy

t

t

θθQθ

θθQθθQθxPθxP

θxyP

θxyPθxyPθθQθθQ

θxPθxP

θθQ

θxyPθxyPθyxPθxyPθxP

yθxyP

θxyPθyxPθxP

Page 24: 生命情報学(5) 隠れマルコフモデル - Kyoto U...HMMにおける基本アルゴリズ ム Viterbiアルゴリズ ム 出力記号列から 状態列を推定 構文解析

EMアルゴリズムの一般形

1. 初期パラメータ Θ0 を決定。t=0とする

2. Q(θ|θt)=∑P(y|x, θt) log P(x,y|θ) を計算

3. Q(θ|θt)を最大化するθ*を計算し、θt+1 = θ* とする。t=t+1とする

4. Qが増大しなくなるまで、2,3を繰り返す

Page 25: 生命情報学(5) 隠れマルコフモデル - Kyoto U...HMMにおける基本アルゴリズ ム Viterbiアルゴリズ ム 出力記号列から 状態列を推定 構文解析

前向きアルゴリズム

配列 x の生成確率P(x)=∑P(x,π) を計算

Viterbiアルゴリズムと類似

fk(i)=P(x1…xi,πi=k)

をDPにより計算

a

axe

kk k

klk

kill

k

LfxP

ifif

ff

0

0

)()(

)1()()(

0)0(,1)0(

1

2

3

1

2

3

a11

a21

a31 ))1(

)1(

)1((

)()(

313

212

111

11

a

a

a

xe

if

if

if

ifi

Page 26: 生命情報学(5) 隠れマルコフモデル - Kyoto U...HMMにおける基本アルゴリズ ム Viterbiアルゴリズ ム 出力記号列から 状態列を推定 構文解析

後向きアルゴリズム

k lll

k kilklk

kk

bxea

bxeab

ab

xP

ii

L

)1()()(

)1()()(

)(

10

1

0

bk(i)=

P(xi+1…xL|πi=k)

をDPにより計算

P(πi=k|x) =

fk(i)bk(i)/P(x)1

2

3

1

2

3

a11 a12

a13 ))1()(

)1()(

)1()((

)(

31313

21212

11111

1

i

i

i

i

bxea

bxea

bxea

b

i

i

i

Page 27: 生命情報学(5) 隠れマルコフモデル - Kyoto U...HMMにおける基本アルゴリズ ム Viterbiアルゴリズ ム 出力記号列から 状態列を推定 構文解析

Viterbi と前向きアルゴリズムの比較

Viterbiアルゴリズム

Forwardアルゴリズム

iiii

n

ix

eaθxP,πππ 1

1

)|π,(

)|π,(maxπ

θxP

)|π,(π

θxP

1

2

a12 a21

A e1,A

B

e1,B

A e2,A

C e2,C

Π for “BACA”=

{ 1121, 1122, 1221,1222 }

a11

a22

Page 28: 生命情報学(5) 隠れマルコフモデル - Kyoto U...HMMにおける基本アルゴリズ ム Viterbiアルゴリズ ム 出力記号列から 状態列を推定 構文解析

HMMに対するEMアルゴリズム(Baum-Welchアルゴリズム)

bi

j

k

j

k

jj

i

j

l

j

ilkl

j

k

jj

x

iifP

bk

iifPkl

j

j

bx

E

bxeax

A

|

1

)()()(

1)(

)1()()()(

1

値から現れる回数の期待が状態文字

番目の配列値が使われる回数の期待

kbbk

jkl

E

xaAj

kl

:)(

::

'' ')'(

)()(ˆˆ

b k

k

k

l kl

kl

kl b

bb

EE

eA

Aa

パラメータの更新式

Page 29: 生命情報学(5) 隠れマルコフモデル - Kyoto U...HMMにおける基本アルゴリズ ム Viterbiアルゴリズ ム 出力記号列から 状態列を推定 構文解析

Baum-WelchのEMによる解釈

''

0 11

1 0 1

0 1

)(),(

1

,)'(

)()(

log

log)(log)(

log)()(log),(),|()|(

)|,(log),|()|(

)()|,(

l kl

kl

kl

bk

k

k

iii ii

M

k

M

lklklk

M

k bk

M

k

M

k

M

lklkl

bkk

t

π

t

t

π

t

M

k

M

l

π

kl

πbM

k bk

AA

aE

Ee

pqqp

aAeE

aAeE

ae

b

bb

bb

πbπbθxπPθθQ

θπxPθxπPθθQ

AE

bθπxP kl

k

の時、最大より、はここで

より、

および

Page 30: 生命情報学(5) 隠れマルコフモデル - Kyoto U...HMMにおける基本アルゴリズ ム Viterbiアルゴリズ ム 出力記号列から 状態列を推定 構文解析

プロファイルHMM

Page 31: 生命情報学(5) 隠れマルコフモデル - Kyoto U...HMMにおける基本アルゴリズ ム Viterbiアルゴリズ ム 出力記号列から 状態列を推定 構文解析

配列アラインメント

2個もしくは3個以上の配列の類似性の判定に利用

2個の場合:ペアワイズアラインメント

3個以上の場合:マルチプルアラインメント

文字間の最適な対応関係を求める(最適化問題)

配列長が同じになるよう、ギャップ記号を挿入

HBA_HUMAN VGAHAGEY HBB_HUMAN VNVDEV MYG_PHYCA VEADVAGH GLB5_PETMA VYSTYETA LGB2_LUPLU FNANIPKH GLB1_GLYDI IAGADNGAGV

HBA_HUMAN V G A - - H A G E Y HBB_HUMAN V - - - - N V D E V MYG_PHYCA V E A - - D V A G H GLB5_PETMA V Y S - - T Y E T A LGB2_LUPLU F N A - - N I P K H GLB1_GLYDI I A G A D N G A G V

Page 32: 生命情報学(5) 隠れマルコフモデル - Kyoto U...HMMにおける基本アルゴリズ ム Viterbiアルゴリズ ム 出力記号列から 状態列を推定 構文解析

プロファイルHMM (1)

配列をアラインメントするためのHMM

タンパク質配列分類やドメイン予測などに有用 例:ドメインの種類ごとにHMMを作る

PFAM(http://pfam.wustl.edu/)

一致状態(M)、欠失状態(D)、挿入状態(I)を持つ

M M M

I I I I

D D D

BEGIN END

Page 33: 生命情報学(5) 隠れマルコフモデル - Kyoto U...HMMにおける基本アルゴリズ ム Viterbiアルゴリズ ム 出力記号列から 状態列を推定 構文解析

プロファイルHMM (2)

M M M

I I I I

D D D

BEGIN END

M M ・ M

A

A

A

G

G

A

A

G

A

A

A

A

A G - C

C

C

C

- -

・ ・

こうもり

ラット

ネコ

ハエ

ヤギ

マルチプルアラインメント

プロファイルHMM

Page 34: 生命情報学(5) 隠れマルコフモデル - Kyoto U...HMMにおける基本アルゴリズ ム Viterbiアルゴリズ ム 出力記号列から 状態列を推定 構文解析

プロファイルHMM (3)

各配列ファミリーごとに HMM を作成

スコア最大のHMMのファミリーに属すると予測

HMM1

HMM2

class 1

class 2

Known Seq. (Training Data)

EM

EM

New Seq. (Test Data)

Score= 19.5

Score= 15.8

win !

Viterbi

Viterbi

Page 35: 生命情報学(5) 隠れマルコフモデル - Kyoto U...HMMにおける基本アルゴリズ ム Viterbiアルゴリズ ム 出力記号列から 状態列を推定 構文解析

まとめ

配列モチーフ 局所マルチプルアラインメント

Gibbsサンプリング

HMMによる配列解析 最尤推定、ベイズ推定、MAP推定

隠れマルコフモデル(HMM)

Viterbiアルゴリズム

Baum-Welchアルゴリズム EMアルゴリズムに基づく

前向きアルゴリズム、後向きアルゴリズム

プロファイルHMM