이 글은 iAI LAB, POSTECH에서 게시한 Markov chain강의를 참고해서 쓴 글입니다. 유튜브 영상 하단 더보기란에 강의 자료 ppt를 볼 수 있는 링크가 있습니다.
Markov chain에 대해서 찾아보면 다들 간단하게 설명한 내용들 밖에 없어서 직접 유튜브에 올려진 강의를 듣고 꼼꼼히 정리해보려고 한다. 시간이 있다면 강의를 들어보는 걸 추천한다.
Sequential Process
"시계열 데이터(sequential data)를 핸들링하는 방법"
시스템(system)을 연속적으로 보는 것이 아니라, N개의 "discrete한 상태(state)"들로 본다. 연속적인 건 핸들링할 수 없기 때문이다.
q∈{s1,s2,s3⋯sN}
N개의 discrete한 state들을 시간 순서대로, 1부터 순서대로 진행한다면 deterministic하고, random하게 state를 돌아다닐 수 있게 만들면 stochastic 하다. 예를 들어서 날씨를 생각해보면, 오늘의 날씨가 어떻든 내일의 날씨는 random하게 결정되기 때문에 stochstic system으로 표현할 수 있을 것이다.
ideal한 상황에서 0 부터 T까지의 시간동안 시계열 데이터가 generate된 확률을 아래처럼 나타낼 수 있을 것이다. 시계열 데이터는 시간의 영향을 받기 때문에 이전 데이터의 영향도 받게 된다. 그래서 조건부 확률로 식을 나타낼 수 있는데, 이 식을 계산하기는 불가능에 가깝다.
p(q0,q1,⋯,qT)=p(q0)p(q1∣q0)p(q2∣q0,q1)p(q3∣q0,q1,q2)⋯
Markov Chain
그래서 Andrey Markov가 "바로 이전 상태만 지금 상태에 영향을 줄 수 있다" 라고 말하고 식을 과감히 잘라냈다. 이전의 모든 상태들을 고려해서 계산하는 것이 불가능하기 때문에 바로 이전의 상태를 이용해서 apporximation하는 것이다. 이 방법이 거의 불가능에 가까웠던 계산을 "tractable" 하게 만들어주었다.
p(qt+1∣qt⋯q0)≒p(qt+1∣qt)
p(q0,q1,⋯,qT)=p(q0)p(q1∣q0)p(q2∣q1)p(q3∣q2)⋯
Markovian Property
"현재의 state가 과거의 states, 즉 누적된 history의 충분한 통계적인 정보의 축적으로 보고, 다음 state(future)를 구하기 위해서는 현재의 state만 있어도 충분하다." 라고 생각한다. 굳이 누적된 과거의 정보를 일일이 따지지 않아도 된다는 거다.
p(qt+1∣qt⋯q0)=p(qt+1∣qt)
p(qt+1=sj∣qt=si)=p(qt+1=sj∣qt=si)
State Transition Matrix
현재 state를 s′, 다음 state를 s라고 했을 때 s′에서 s로 이동하는 state transition probability는 다음과 같다.
Pss′=P[st+1=s′∣st=s]
state 1(s1)부터 state N(sN)까지의 상태가 있을 때 random한 임의의 state로 부터 다음 state로 갈 state transition probability들로 이뤄져 있는 N X N 행렬을 state transition matrix라고 한다. P11는 s1에서 s1으로 이동할 확률 일 거고, Pn1은 s1에서 sN으로 이동할 확률일 것이다. 이때 주의 할 것은 하나의 state에서 state로 이동하는 event가 발생할 확률을 구하는 것이 아니라, 그러한 event 들이 발생함으로써 시계열 데이터가 나오는 확률을 구하는 것이다.
P=⎣⎢⎢⎡P11⋯P1n⋮⋮Pn1⋯Pnn⎦⎥⎥⎤
시계열 state의 sequence가 generating 되고, 이에 따라 확률로 이뤄진 matrix도 계속 다르게 generate되기 때문에 stochastic data가 만들어진다고 할 수 있다.
Markov Process
Definition
- agent가 있을 수 있는 state의 상태는 discrete하고, finite 하다.
- 다른 state로 transition 하는 deterministic 하지 않고, 확률(transition probability)로 정의되어 있다.
P={pij}M×M,1≤i,j≤M
- initial state에 있을 확률은 π이다.
π={πi}
- Markov process는 memoryless random process이다.
바로 이전 상태만 지금 상태에 영향을 줄 수 있고, 그 전의 상태들의 변화는 랜덤하다.
- passive stochastic behavior로 진행된다.
외부의 힘 없이 한번 Markov chain 에 들어가게 되면 그 다음부터는 passive하게 진행된다. 그러면서 passive stochastic sequence가 발생하게 된다.
Property of P Matrix
s1, s2, s3 3개의 state가 있는 Markov chain(MC) 예시를 통해서 P가 의미하는 바를 알아보자.
j∈S∑Npij=1
P matrix에서 각각의 행을 모두 더했을 때의 값은 당연히 1이다. 다시 말하면 현재 state에서 다음 random한 임의의 state로 갈 확률의 총합이 1이라는 것이다.
P=⎣⎢⎡p11p21p31p12p22p32p13p23p33⎦⎥⎤=⎣⎢⎡0213102132100⎦⎥⎤
Pn은 n번 transition 했을 때의 prior state에서 later state로 갈 확률을 의미한다. Pn의 의미는 아래의 Champman-Kolomogorov Equation을 보면 더 잘 이해할 수 있을 것이다.
Champman-Kolomogorov Equation
1-step transition probabilities
1st state의 probability distribution은 열 벡터(row vector)로 된 initial state(zero state)에 transition probability matrix P와의 곱으로 표현될 수 있다.
[Π1(1)Π2(1)Π3(1)]=[Π1(0)Π2(0)Π3(0)]⎣⎢⎡P11P21P31P12P22P32P13P23P33⎦⎥⎤
row 벡터와 column 벡터를 곱해서 Π1(1),Π2(1),Π3(1)을 구하게 된다.
Π1(1)=Π1(0)P11+Π2(0)P21+Π3(0)P31
이 식을 물리적으로 해석하면 다음과 같다.
- LHS
Π1(0)P11 : 1에서 1로 transition할 확률
Π2(0)P21 : 2에서 1로 transition할 확률
Π3(0)P31 : 3에서 1로 transition할 확률
결국 현재의 어떤 상태에서 "1"로 갈 확률을 말한다.
- RHS
[Π1(0)Π2(0)Π3(0)]: initial state {πi(0)}에서 agent가 각 state에 있을 확률
P: state transition matrix
즉, [Π1(1)Π2(1)Π3(1)] 는 initial state에서 agent가 각 state에 있을 확률을 1번 state transition 한 뒤에, 각 state에 agent가 있을 확률 분포를 의미한다.
2-step transition probabilities
그럼 2번 transition을 했을 때는 어떻게 될까?
[Π1(2)Π2(2)Π3(2)]=[Π1(1)Π2(1)Π3(1)]P=[Π1(0)Π2(0)Π3(0)]P2
식을 해석해보자. 각 state에 agent가 있을 확률은 첫번째 transition을 한 확률에 P를 곱한 것과 같다. 그런데 위의 1-step transition의 경우에서 구했다시피,
[Π1(1)Π2(1)Π3(1)]=[Π1(0)Π2(0)Π3(0)]P
이기 때문에 initial state에서의 확률에 P2을 곱해준 것과 같다. P2는 P와는 또 다른 3X3 행렬로, 2번 transition해서 2nd state로 가게 될 확률을 의미한다. 예를 들어서 1에서 3으로 이동할때 2번 transition하는 걸 생각해보면, 1>2>3 도 2번의 transition을 거쳐 state이동을 했고, 1>1>3도 동일하게 2번의 transition을 거쳐 state이동을 했다고 할 수 있다.
n-step transition probabilities
바로 이어서 n step transition을 한 경우를 생각해보자, initial state에서 agent가 각 state에 있을 확률을 n번 state transition 한 뒤에, 각 state에 agent가 있을 확률 분포라고도 말할 수 있을 것이다.
[Π1(n)Π2(n)Π3(n)]=[Π1(n−1)Π2(n−1)Π3(n−1)]P=[Π1(0)Π2(0)Π3(0)]Pn
N-step Transition Probability
i-state 부터 j-state까지 N steps 동안 가야한다고 했을 때를 생각해보자. 1 step 부터 (N-1) step 까지 어떤 state로든 다 갈 수 있으나, 마지막 j-state의 바로 전 step은 무조건 k-state에서 j-state로 향해야한다.
[이미지 출처: iAI postech]
n-step transition probability를 Markov chain process를 사용해 다음과 같이 쓸 수 있을 것이다.
Pij(n)=k=1∑NPik(n−1)Pkj(1)
where{pij(n)=P(xn=j∣x0=i)pij(1)=pij=P(x1=j∣x0=i)
Staitionary Distribution
Chapman-Kolmogorov Equation을 통해서 행렬곱으로 표현하게 되면, 1 step 부터 (N-1) step 동안 i-state 부터 j-state의 직전 state인 k-state까지 갈 수 있는 확률과 무조건 k-state에서 j-state로 가는 마지막 step의 두 확률을 곱한 식으로도 표현할 수 있다.
Pij(n)=ΠP(n−1)P
여기서 n을 무한대로 보냈을 때, 즉 충분한 시간이 흐르고나서, pij(n)는 어떠한 πj로 saturation(수렴) 할까? 다시 말해서 j에 있을 확률은 어떻게 될까?
πj=k=1∑NπkPkj
j∑πj=1
n을 무한대로 보내게 되면 n-1에 있을 때의 π와 n에 있을 때의 π가 거의 동일해질 것이다. π가 의미하는 바는 steady state(시간이 충분히 지나고)에서 이 process를 따르는 agent가 각 state에 있을 확률을 말하는 것이다.
궁극적으로 알고 싶은 건, state transition matrix를 따를 때에 시간이 무한대로 지나가가고, 어떤 episode에 종착하게 될 텐데 그때 각 state에 agent가 있을 확률을 종합해서 결론을 내려야한다.
Reference
(1) 03 Markov chain (마르코프 체인), iAI LAB, POSTECH, 2022. 3. 1.
좋은 강의 영상을 올려주신 iAI POSTECH에 감사드립니다.