生命情報学(5) 隠れマルコフモデル - kyoto u...hmmにおける基本アルゴリズ...
TRANSCRIPT
生命情報学 (5)
隠れマルコフモデル
阿久津 達也
京都大学 化学研究所
バイオインフォマティクスセンター
内容
配列モチーフ
最尤推定、ベイズ推定、MAP推定
隠れマルコフモデル(HMM)
Viterbiアルゴリズム
EMアルゴリズム
Baum-Welchアルゴリズム前向きアルゴリズム、後向きアルゴリズム
プロファイルHMM
配列モチーフ
モチーフ発見 配列モチーフ : 同じ機能を持つ遺伝子配列などに見られる共通の文字列パターン
正規表現など文法表現を用いるもの例: ロイシンジッパーモチーフ
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
モチーフの例• ジンクフィンガーモチーフ
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
局所マルチプルアラインメント
複数配列と長さ 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
相対エントロピースコアのもとでの局所マルチプルアラインメント
相対エントロピースコアの定義
fj(a): (モチーフ領域の)j列目におけるaの出現頻度
p(a): aの出現頻度(事前確率)
L: モチーフ領域の長さ
Lj
ja j
ap
afafscore
1 )(
)(log)(
実用的アルゴリズム
Gibbsサンプリング, EMアルゴリズム
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
最尤推定、ベイズ推定、MAP推定
最尤推定
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 で尤度は最大
ベイズ推定とMAP推定
ベイズ推定:尤度とモデル(パラメータ)の事前確率から、ベイズの定理により、事後確率を推定
最大事後確率(MAP)推定 P(D|θ)P(θ) を最大化する θ を計算
P(θ) が一様分布なら最尤推定と同じ
が連続値の時)(ただし、 θθ'Pθ'DPDP
DP
θPθDPDθP
)()|()(
)(
)()|()|(
θ'
不正サイコロのベイズ推定
公正サイコロと不正サイコロ
公正: 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
不正不正不正
隠れマルコフモデル
隠れマルコフモデル(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
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
時々いかさまをするカジノ サイコロの出目だけが観測可能、どちらのサイコロを振っているかは観測不可能
サイコロの出目から、どちらのサイコロを振っているかを推定
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
公正サイコロ 不正サイコロ
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
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
1π
π
)( )(max
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 不公公公公
EMアルゴリズム
EM(Expectation Maximization)アルゴリズム
「欠けているデータ」のある場合の最尤推定のための一般的アルゴリズム
最大化は困難であるので、反復により尤度を単調増加させる(θtよりθt+1を計算)
HMMの場合、「欠けているデータ」は状態列
の最大化目標:
パラメータ集合
欠けているデータ、観測データ、
y
)( log)( log
:
::
x,y|θPx|θP
θ
yx
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
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を繰り返す
前向きアルゴリズム
配列 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
後向きアルゴリズム
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
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
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
パラメータの更新式
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
の時、最大より、はここで
より、
および
プロファイルHMM
配列アラインメント
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
プロファイルHMM (1)
配列をアラインメントするためのHMM
タンパク質配列分類やドメイン予測などに有用 例:ドメインの種類ごとにHMMを作る
PFAM(http://pfam.wustl.edu/)
一致状態(M)、欠失状態(D)、挿入状態(I)を持つ
M M M
I I I I
D D D
BEGIN END
プロファイル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
プロファイル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
まとめ
配列モチーフ 局所マルチプルアラインメント
Gibbsサンプリング
HMMによる配列解析 最尤推定、ベイズ推定、MAP推定
隠れマルコフモデル(HMM)
Viterbiアルゴリズム
Baum-Welchアルゴリズム EMアルゴリズムに基づく
前向きアルゴリズム、後向きアルゴリズム
プロファイルHMM