MH 알고리즘은 현재 zt라고 assignment 되어있는것을 다음 transient 를 통해 어떠한 assignment로 바뀔지 candidate하는 것이다. 기존의 정보를 활용(zt)에서 제안하는것이 MCMC의 근간에서 온것이다. 이것을 Proposal distriburion 이라 한다.
그다음 α 에 따라 coin toss를 해서 accept가 일어나면 z*를 받아 들이고 accept 되지 않으면 기존의 zt를 가져가는것이 MH 알고리즘이의 핵심이라 할수 있다.
q는 우리가 정하는것이다. p는 우리가 evaluate 할수 있는것이다.
Reversible Markov chain의 condition을 만족하면 되겠다는것이 MH 알고리즘에서 accept probaibliy를 정하는 핵심이 된다.
만약 위의 ratio r이 1보다 작으면 z*에서 zt로 transient 되는 확률보다 zt에서 z*로 가는 확률이 더 크다고 할수 있다.
그렇게 되면 detailed balance를 만족시키지 못하고, Reversible Markov chain 을 만족시키지 못한다.
q에 대한 특정한 정보가 없기 때문에 충분히 발생할수 있는 현상이다.
그래서 accept 와 reject를 통해 조절을 하여 , z*와 zt의 비율을 조절해서 accept probability를 만들어 보겠다.
위에서 1로 보낸다는것은 확률적으로 max로 높이는것이라 할수 있다.
즉 잘 정의되지 않은 q의 상태에 대해서도 ratio를 통해 만들어진 acceptance probability 를 활용해서 detailed balance equation을 만족시켜주고, 그것을 Reversible Markov chain 으로 만들어주고 이것이 바로 나중에 계속 transition을 통해 stationary distribution으로 바뀔 수 있다는 것을 알게 되었다.
Random walk는 어떻게 할수 있을까?
z*를 noramal distribution 에서 나온다고 해보자. z*는 기존의 zt를 통해 나오는것이다.
위의 그림에서 sample t에서 zt에서 z*로 transit 하게 되면 z*가 sample t+1에서는 zt가 되는것이고 여기서 다시 nomal에서 sampling을 해서 z*를 찾아내는 것이다.
σ가 작으면 이동하는 폭이 작은 상태에서 sampling이 된다.. 정밀도가 높아진다.
σ가 크면 이동하는 폭을 넓게 하여 sampling을 하게 된다.
Random walk M-H를 쓸때는 처음에는 σ를 크게해서 mode를 잘찾아 보고 mode가 잘 찾아지면 σ를 작게해서 정밀하게 sampling하는 과정이 필요해 보인다.
'머신러닝 > 문일철 교수님 강의 정리 (인공지능및기계학습개론)' 카테고리의 다른 글
10.7 Gibbs Sampling (0) | 2020.01.01 |
---|---|
Week 10.5 Markov Chain for Sampling (0) | 2019.12.10 |
Week 10.4 Markov Chain (0) | 2019.12.02 |
Week 10.3 Importance Sampling (0) | 2019.11.28 |
Week 10.2 Rejection Sampling (0) | 2019.11.27 |