Rohit Singh, Tommi Jaakkola, and Ali Mohammad. 6.867 Machine Learning. Fall 2006. Massachusetts Institute of Technology: MIT OpenCourseWare, https://ocw.mit.edu. License: Creative Commons BY-NC-SA.
Lecture 19, 20.
qは初期分布,kはstateの数とする.またMarkov chainの初期のstateはX1である.
Markov chains(cont’d)
Markov chainを記述する方法には2つある. state transition diagramとgraphical modelである. transition diagramはstateたちをノードとし,遷移確率が0でないstateをつないだ有向グラフであって,例えばfig.1のようである. また,初期分布を,特別に設定したnull stateからの遷移とみてグラフに書き込むことも出来る.
graphical modelでは対照的に,確率変数たちの独立/従属関係に着目する. ある時刻におけるstate Xtは確率変数であって,Xt−1と独立でないことがMarkov chainの定義から言える. ある頂点(state)がほかのある頂点(state)に従属しているときに有向辺によってその従属関係を示して,graphical modelを構成する.つまり,
Xt−1→Xt⇔ Xtはt−1に従属する
という規則をグラフ化する. fig.2 がその例である.
State prediction
P(Xt+m=j|Xt=i)=[Pm]ij
から,任意のnに
P(Xn=j)=k∑i=1q(i)P(Xn=j|X1=i)=k∑i=1q(i)[Pn−1]ij
が成立する. qTPn−1はj番目の要素がP(Xn=j)であるような横ベクトルであって,
αTt=qTPP⋯PP_t−1 times
と書くことにすると,
qT=αT1αTt−1P=αTt,t>1k∑i=1αt−1(i)Pij=αt(j)
が成立する.
Estimation
sample pathの観測からMakov chainのtransition matrixを推測することが出来る.
{Xt}の現れ(sample path)のx1,....,xnが与えられたとき,そのlog-likelihoodは,
ˆn(i,j)をx1,...,xnにおいてみられたiからjへの推移の回数とすると,
logP(x1,..,xn)=log[P(X1=x1)n−1∏t=1P(Xt+1=xt+1|Xt=xt)]=logq(x1)+n−1∑t=1logPxt,xt+1=logq(x1)+∑i,jˆn(i,j)logPij
であって,∑jPij=1を考えれば,transition matrix Pの最尤推定は
ˆPij=ˆn(i,j)∑j′ˆn(i,j′)
である. しかし,初期分布qを推測するには多くのsample path が必要不可欠である.
Hidden Markov Models
Hidden Markov Models (HMMs)は,観測している値が,直接観測されないMarkov chainが更に確率的に生成しているものであると仮定したモデルである. HMMモデルは広く利用され,例えば,あとで発話をphoneme(音素)のMarkov chainでHMM化し,また,アミノ基の列であるタンパク質をモデル化するのに,タンパク質分子をその構造的特徴のMarkov chainによってHMM化する.
HMMはMarkov chainとmixture modelによって理解できる. fig.3の単純な例を議論する. 時刻はt=1,2,3,4の4つだけで,fig.3.aは何度かの観測によって得られた値y1,..,y4の複数のプロットである. 一旦時刻の情報を捨て去って,yの値だけを基準にクラスタリングすると,two component mixture
P(y)=2∑j=1P(j)P(y|j)
でうまくモデル化出来る. 例えばP(y|j)∼N(y;μj,σ2j)などとできる. このmixture modelから(まだ時刻を無視しつつ)各時刻でsampleを生成すると,fig.3.bの楕円の中に収まるようになる. このとき,各時刻における観測値のサンプルytは,選ばれたコンポーネントxtからのみ生成される(fig.4).
各時刻で正しい方の楕円でのみsampleを生成させるためにMarkov chainを使う. Markov chainによって正しい方のcomponentを選ぶようにするのである. すなわち,t=2でのcomponentを,t=1で選んだcomponentによって選ぶ(fig.5).
Probability model
HMMをgraphical modelで書くことによって,全ての確率変数に対する同時確率を簡単に書き下せる. グラフはどの変数がどの変数に依存しているかを明確にし,どの条件付き確率が同時確率のfactorであるかがわかる. fig.5では,
P(x1,...,xn,y1,..,yn)=P(x1)P(y1|x1)P(x2|x1)P(y2|x2)⋯=P(x1)P(y1|x1)n−1∏t=1[P(xt+1|xt)P(yt+1|xt+1)]=q(x1)P(y1|x1)n−1∏t=1[Pxt,xt+1P(yt+1|xt+1)]
である.
Three problems to solve
- 観測値の確率を評価する
P(y1,...,yn)=∑x1,...,xnP(x1,...,xn,y1,..,yn) - 観測値{yi}が与えられたとき,最もありそうな隠れたMarkov path {x∗i}を推測する.
{x∗1,...,x∗n}=argmaxx1,...,xnP(x1,..,xn,y1,..,yn) - 時系列に沿った観測値の集合の集合 {{y(l)i}nli=1}Ll=1から,モデルのパラメータを推測する.
Problem 1.
αt(j)=P(y1,...,yt,Xt=j),βt(i)=P(yt+1,...,tn|Xt=i)として,
αtをt=1,2,...と計算していくアルゴリズム(forward algorithm)と,βtをt=n,n−1,...と計算していくアルゴリズム(backward algorithm)があり,どちらか一方だけでも計算できるのだが,計算ステップ(t)が多くなるほど計算量が幾何級数的に増大するので,前後から挟み撃ちして効率的に計算する.
以下はforward algorithmの導出だが,backwardの場合も殆ど同様である.
Dy=diag(P(y|1),...,P(y|k))
によって
qTDy11=k∑i=1q(i)P(y1|i)=P(y1)
などと計算できる. 同様に
qTDy1PDy21=k∑i=1[q(i)P(y1|i)k∑j=1PijP(y2|j)]=P(y1,y2)
これを繰り返して,
qTDy1PDy2P⋯PDyn1=P(y1,...,yn)
が得られる. αt(j)=P(y1,...,yt,Xt=j)とすると,
qTDy1=αT1αTt−1PDyt=αTt or equivalently(k∑i=1αt−1(i)Pij)P(yt|j)=αt(j)
さらにβt(i)=P(yt+1,...,tn|Xt=i)とすると,
βn=1βt=PDy+1βt+1 or equivalentlyβt(i)=k∑j=1PijP(yt+1|j)βt+1(j)
である.組み合わせて
P(y1,..,yn)=αTtβt=k∑i=1αt(i)βt(i)
が任意のtに成立する.
これは,
P(y1,..,yn)=qTDy1P⋯PDyt_αTtPDyt+1⋯PDyn1_βt
と理解でき,あるいはMarkov propertyによって
P(y1,...,yn)=k∑i=1P(y1,...,yt,Xt=i)_αt(i)P(yt+1,...,yn|Xt=i)_βt(i)=k∑i=1P(y1,...,yt,Xt=i)=k∑i=1αn(i)=P(y1,..,yn)
からも理解できる.
Problem 2. most likely hidden state sequence (Viterbi)
目的は
maxx1,...,xnP(y1,..,yn,x1,...,xn)=P(y1,...,yn,x∗1,...,x∗n)
なる{x∗t}を求めることだった.
dt(j)=maxx1,...,xt−1P(y1,...,yt,x1,..,xt−1,Xt=j)
とすると,
q(j)P(y1|j)=d1(j)(maxidt−1(i)Pij)P(yt|j)=dt(j)
が計算できる. maxx1,...,xnP(y1,....,yn,x1,...,xn)=maxjdn(j)であって,これによって
x∗n=argmaxjdn(j)
が得られて,これを起点として
x∗t=argmaxidt(i)Pi,x∗t+1
によって,x∗n−1,x∗n−2,...,x∗1を計算していく.
このように,forwad algorithmによってdt(j)=maxx1,...,xt−1P(y1,...,xt−1,Xt=j)の最大値をj∈{1,...,k}ごとに計算し,さらにbackward algorithmによって,具体的にP(y1,..,xn)を最大化するx∗n,...,x∗1を求めていくアルゴリズムをViterbi Algorithmという.
Example
fig.1で表されるHMMを例に上のアルゴリズムを考察する.state j=1,2が選ばれると,,P(y|j)=N(y,μj,σ2)によって観測される値が確率的に決まるとし,μ1=3,μ2=1,σ2はj=1,2で共通とする.観測点はy1,...,y8が与えられていて,x∗1,...,x∗8を推測する.
まず,y1,...,y8が,σ2の変化によってどう振る舞うかを見る. σ2が大きいとき,P(y|1),P(y|2)はほとんど同じ分布になり,観測値が役に立たなくなる.
d1(1)/d1(2)=1,d2(1)/d2(2)=1/2,d3(1)/d3(2)=1/4,...と近似できるから,x∗i=2となる.
σ2が非常に小さい時,今度はほとんど観測値と制約条件だけが推測に影響するようになる.というのは,
dt(1)dt(2)=maxidt−1(i)Pi1maxidt−1(i)Pi2_(1)⋅P(yt|j)P(yt|2)_(2)
において,(2)の部分が極めて大きな,あるいは極めて小さな値を取るようになり,(1)の部分をほとんど無視できるからである.
σ2が極端な値でない場合には,Markov chainのtransition matrixからstate 2へできるだけ早く移ろうとする性質と,観測値に合ったhidden pathを辿ろうとする性質のバランスを取ろうとする. 例えばσ2=1なら,most likely state sequenceは1122222である.
Problem 3: estimation
Hidden statesを観測できず,そこから確率的に生成される値のみを観測できるというのは,モデルの全ての変数を知ることなくモデルを推測しようとしているという点でmixture modelと似ている. この問題はmixture modelと同様にEM algorithmを反復的に用いることで解ける. 普通は複数回行われる,すなわち{{yt}n1}qp=1のように観測値が得られるのだが,簡単のためにq=1すなわち観測値は1通りしか無いとする.
EM-algorithmを導く簡単な方法は,まずは全ての変数が観測されているとしてモデルを構成することである.
δ(i|t)={1 (xt=i)0otherwiseδ(i,j|t)={1 (xt=i,xt+1=j)0otherwise
とすると,complete log-likelihoodは
l({xt},{yt})=k∑i=1δ(i|1)logq(i)_(1)+k∑i=1(n∑t=1δ(i|t)logP(yt|i))_(2)+k∑i=1k∑j=1(n∑t=1δ(i,j|t)_(3))logPij_(4)
(1): 初期状態の確率
(2): 各state iにおける,yを生成する確率をi∈{1,...,k}での総和
(3): x1,...,xnでi→jの遷移が起きる回数
(4): 全てのstateの組で,遷移がどれほど起こるかの総和
δを緩和させた”soft”なカウントpを
p(i|t)=P(Xt=i|y1,...,yn)p(i,j|t)=P(xt=i,Xt+1=j|y1,...,yn)
と定める.
P(y1,..,yn,Xt=i)=P(y1,...,yt,Xt=i)P(yt+1,..,yn|Xt=i)=αt(i)βt(i)
だから,posteriorは
P(Xt=i|y1,...,yn)=αt(i)βt(i)∑ki′=1αt(i′)βt(i′)
という正規化で計算できて,同様に
P(y1,...,yn,Xt=i,Xt+1=j)=P(y1,...,yt,Xt=i)PijP(yt+1|j)P(yt+2,...,yn|Xt+1=j)=αt(i)PijP(yt+1|j)βt+1(j)
したがって
P(Xt=i,Xt+1=j|y1,....,yn)=αt(i)PijP(yt+1|j)βt+1(j)∑ki′=1∑kj′=1αt(i′)Pi′j′P(yt+1|j′)βt+1(j′)
Multiple (partial) alignment
複数の列が与えられるとき,その類似点をさがすのがalignment問題である. そのパターンは,全ての列に存在するということの他にはほとんど情報が得られていないとする. 簡単のため,そのパターンは長さ4であることは既知とする. この状況で考えられる最も簡単なHMMはfig.2である.m1,..,m4というstatesは”match states”といって,求めるべきパターンを生成したであろうstatesである. I1,I2は”insert states”であって,探しているパターン以外の列を生成する. それぞれのstateはP(y|Ii),i=1,2,P(y|mi),i=1,...4というoutput distributionをもつ.これらの分布とpの値を与えられた列たちから推測する.
このモデルは有限長の列を生成する. I1に入って最初の要素を生成し,平均1/pステップI1にとどまった後,m1に遷移してパターンを生成し,I2に遷移してまた平均1/pステップとどまってから列を終わらせる.
複数の列が与えられたとき,このHMMのパラメータを,EM algorithmによって最尤推定する. ここではまだどこが生成されたパターンなのかは考えず,単にパラメータを最適化する. パラメータが見つかったら,Viterbi algorithmによってそれぞれの観測点がどのhidden stateによって生成されたかを推測する.例えば観測列y1,...,ynに
hiddenI1I1⋯I1m1m2m3m4I2I2⋯I2observationy1y2⋯yt−1ytyt+1yt+2yt+3yt+4yt+5⋯yn
という対応の推測が得られたとき,hiddenの列とobesrvationの列には一対一の関係が有り,この例では,パターンはtにおいて,すなわちmatch statesが始まったところで始まる.
それぞれの観測列でのパターンの部分列はfig.3のようにアラインされる.
figure 3
0 件のコメント:
コメントを投稿