본 세션에서는, Artificial Neural Network 라고 부르기는 어렵지만, 다른 여러 Artifical Neural Netowrk 구조의 근간이 되는 확률 모델에 대해서 알아보려고 합니다.
Markov Chain 의 구조를 보시면 Input 과 Output Cell 이 존재하지 않습니다. Variational Auto Encoder (VAE) 에서 나왔던 Probabilistic Hidden Cell 여러 개와 이들 모두를 Deep Feed Forward Network (DFF) 마냥 이어준 형태를 가지고 있습니다.
그렇다면, 이러한 구조의 확률 모델은 왜 생겨나게 되었을까요?
눈치채신 분들도 계시겠지만, Markov Chain (MC) 는 Inference 를 위한 구조가 아닙니다. 정확히 말씀드리자면, inference 를 위해 사용할 수 없는 것은 아니지만 Output Cell 이 없는 구조이기 때문에 명확하게 Output 이 나오는 구조가 아닙니다. 단순히 확률적 계산과정을 모델로 시각화한 것에 그쳤다고 보시는 것이 좋습니다.
앞서, 확률적 계산과정 을 이야기 드렸습니다.
그렇다면, Markov Chain 이 확률적으로 계산하여 풀고 싶었던 문제는 무엇일까요?
답부터 말씀드리자면, Markov Property 를 가지는 확률변수가 미래에 가질 상태에 대한 확률입니다.
간단한 예시로 많이 나오는 것이 일기예보입니다.
일기예보의 간략한 버전으로, 날씨는 크게 두 가지 맑음, 그리고 흐림 만 존재한다고 가정해봅시다.
이렇게, 가능한 날씨의 경우의 수를 Markov Chain (MC) 에서는 State (상태) 라고 이야기합니다.
일기예보에서 중요한 것은 날씨를 예측하는 것이고, 이를 Markov Chain (MC) 에 적용하면, 미래의 상태를 예측하는 것이라고 볼 수 있습니다. 이 때 Markov Chain (MC) 에서 다루는 확률 변수인 날씨에 대해서 앞서 이야기한 Markov Property 를 가정합니다.
Markov Property 는 이전 상태만으로 다음 상태의 확률을 구해낼 수 있다는 가정입니다. 날씨로 이야기를 드리면, 오늘 날씨로 내일 날씨가 어떨지를 확률적으로 표현해낼 수 있다는 것입니다. 이는 연속적인 확률과정에서 과거의 데이터를 저장할 필요가 없기 때문에 memoryless 한 특성을 가지고 있다고 표현되기도 합니다.
Markov Property 때문에, 미래의 상태를 예측하기 위해 Markov Chain (MC) 에서 알아야 할 정보는 오로지 이전 상태에 따른 다음 상태의 확률 정보 뿐입니다. 이를 Trasition Matrix, 라고 부릅니다. 일기예보의 관점에서는 아래처럼 오늘의 날씨에 따른 내일의 날씨 확률 표 속의 데이터라고 볼 수 있습니다.
오늘/내일 | 맑음 | 흐림 |
맑음 | 0.2 | 0.8 |
흐림 | 0.4 | 0.6 |
위 데이터를 가지고 있으면, 오늘 흐렸는데 내일 흐릴 확률은 얼마일까? 에 대한 답을 구할 수 있게 됩니다.
마찬가지로, 오늘 흐렸는데 내일 맑을 확률은 얼마일까? 에 대한 답도 구할 수 있게 됩니다.
그리고, 오늘 흐렸는데 이틀 후에 흐릴 확률은 얼마일까? 에 대한 답도 구할 수 있게 됩니다.
이런 식으로 계산하게 되면, 미래의 어떤 특정한 날에 흐리거나 맑을 확률을 구하는데에 전혀 문제가 없습니다. 일반화하여 오늘 날씨가 흐릴 때 N 일 후의 날씨가 맑을 확률 및 흐린 확률은 다음과 같습니다.
즉, Markov Chain 으로 현재 상태와 Transition Matrix 만 알고 있다면 미래의 상태를 예측할 수 있습니다.
여기까지 오시면, 의문이 생기실 수 있습니다.
저조차도 제가 소개드린 내용이 기초 통계학적 내용으로도 충분히 가능한 내용인데, 거창하게 Markov Chain (MC) 라는 이름을 붙일 필요가 있는 내용인가? 혹은 그리고 해당 구조가 무슨 의미가 있느냐? 에 대한 궁금증이 많았습니다.
결론부터 말씀드리자면, 시스템을 모델링하는 방법 중 하나로 보시는 것이 좋을 것 같습니다. 어떤 데이터를 분석할 때 모델링으로 사용시도를 해볼 수 있는 방법 중 하나라고 보시면 됩니다. 확실하게 Markov Property 를 가지고 있는 데이터를 기반으로 계산을 해보는 것이 아닌, 현재 가지고 있는 데이터를 이런 형태로 모델링하면 잘 들어맞을까? 정도로 시도할 수 있는 방법론으로 보시면 됩니다.
더불어, 머신러닝 혹은 추론에 조금 더 의미를 둔다면 Hidden Markov Chain (HMC) 로 갈 때 그나마의 의미가 생긴다- 정도로 말씀드릴 수 있을 것 같습니다. 기존에 설명드린 예시는 Transition Matrix 가 주어졌었는데 이는 일반적으로 과거의 데이터로부터 생성할 수 있습니다. 날씨의 예시로 들자면, 과거에 날씨 정보를 들여다 봄으로써 Markov Chain (MC) 를 구성할 수 있는 것입니다.
하지만, 과거의 날씨 정보를 모른다면 어떻게 할까요?
Hidden Markov Chain (HMC) 에서는 이러한 상황에서 날씨에 따른 아이스크림 소비량 등의 데이터를 이용해서 역으로 날씨 변화의 Transition Matrix 를 생성해낼 수 있습니다. 물론, 이 Hidden Markov Chain (HMC) 에서 사용하는 알고리즘도 gradient + back propagation 이 포함되지 않은 고전 머신러닝 알고리즘이기는 합니다.
이렇게 이번 세션에서는 Markov Chain (MC) 에 대해서 알아보는 시간을 가졌습니다. Markov Chain (MC) 는 Neural Network 가 아니며, 앞으로 소개드릴 네트워크의 기본이 되는 구조 정도로 알아두시면 좋을 것 같습니다.