본문 바로가기

IT 정보

[강화학습①] 마르코프 결정 프로세스(Markov Decision Process)

 

 

이번 포스팅에서는 강화 학습이 풀고자 하는 문제에 대해 좀 더 자세하게 다뤄보겠습니다. 아시다시피 강화 학습은 순차적 의사결정 문제를 푸는 방법론이라고 얘기했지만, 사실 아직은 조금 추상적입니다. 순차적 의사결정 문제는 결국 MDP (Markov Decision Process)라는 개념을 통해 더 정확하게 표현할 수 있습니다. 그래서 이번 챕터의 목적은 MDP가 무엇인지 속속들이 이해하는 것입니다. 바로 MDP를 설명하면 조금 복잡하게 느껴질 수 있으니 차근차근 단계를 밟아가며 가장 간단한 개념부터 시작하여 조금씩 복잡해질 것입니다. 그래서 먼저 가장 간단한 마르코프 프로세스(Markov Process)를 설명하고, 마르코프 리워드 프로세스(Markov Reward Process)를 설명한 후에 마지막으로 MDP에 대해 설명해 볼까합니다. 이번 포스팅에서 배울 내용은 《바닥부터 배우는 강화 학습》의 끝까지 여러 번 반복되어 나올 만큼 중요한 내용입니다. 지금 그 기초 개념을 탄탄히 이해하는 것이 매우 중요합니다.

 

그럼 시작합니다.

 

마르코프 프로세스(Markov Process)

 

마르코프 프로세스Markov Process는 이름은 어렵지만 그 자체로는 사실 그렇게 어려운 개념은 아닙니다. 막 잠에 드려는 아이의 상황을 통해 마르코프 프로세스를 살펴보겠습니다.


 

 

  • 아이가 잠이 드는 마르코프 프로세스

 

위 그림은 아이가 잠이 들 때 벌어지는 상황을 마르코프 프로세스로 모델링 한 그림입니다. 아이가 취할 수 있는 상태state의 종류는 총 5가지입니다. 누워있는 상태 s0, 일어나서 노는 상태 s1, 눈을 감고 있는 상태 s2, 서서히 잠이 오는 상태 s3, 마침내 잠이 든 상태 s4입니다. 그리고 아이가 하나의 상태에 진입하게 되면 해당 상태에서 1분씩 머물게 됩니다. 1분이 지나면 다음 상태로 상태 전이state transition를 합니다. 상태 전이는 현재 상태에서 다음 상태로 넘어간다는 것의 다른 말입니다. 아이가 잠에 드는 과정은 항상 자리에 눕는 것으로부터 시작하기 때문에 마르코프 프로세스의 첫 상태는 입니다.

 

따라서 모든 여정은 s0에서 시작합니다.


아이가 누워서 그대로 잠들면 좋겠지만, 아시다시피 그런 일이 흔치 않습니다. 아이는 1분 동안 누워있다가 40% 확률로 일어나서 노는 상태 s1으로 전이하거나, 60%의 확률로 눈을 감은 상태로 넘어갑니다. 운이 나쁘게 40%의 확률에 걸려 아이가 일어나면 이제 아이의 상태는 s1입니다. 일단 일어나면 지칠 줄 모르는 아이는 쉽사리 s0로 돌아오지 않습니다. 따라서 1분이 지나 상태 전이를 해야 할 때, 무려 90%의 확률로 s1에 그대로 머물게 됩니다. 그렇게 몇 번이고 같은 상태에 머물다가 운 좋게 s0로 돌아오는 데에 성공합니다.


이번에는 다행히 눈을 감은 상태인 s2로 상태가 바뀌었고, 그 때부터는 그날 아이가 얼마나 피곤했는지에 따라 다음 상태가 정해집니다. 아이가 무척 피곤했다면 1분간 눈을 감고 있다가 바로 잠든 상태로 넘어 가지만 이 확률은 30%입니다. 70%의 확률로는 서서히 잠이 오는 상태인 s3로 이동하며 일단 s3에 오면 후진은 없습니다. 다음 단계에서 아이는 잠이 들어 s4로 이동합니다. s4는 종료 상태terminal state여서 s4에 도달하는 순간 마르코프 프로세스는 끝이 납니다. 끝이라는 개념이 어색하다면 s3에서 다시 s4로 이어지는 확률 100%짜리 화살표가 그려져 있다고 생각하셔도 좋습니다.


앞서 보았던 것처럼 마르코프 프로세스는 미리 정의된 어떤 확률 분포를 따라서 상태와 상태 사이를 이동해 다니는 여정입니다. 어떤 상태에 도착하게 되면 그 상태에서 다음 상태가 어디가 될지 각각에 해당하는 확률이 있고, 그 확률에 따라 다음 상태가 정해집니다. 하나의 상태에서 뻗어 나가는 화살표의 합은 항상 100%입니다. 이것이 마르코프 프로세스입니다. 그러면 마르코프 프로세스를 엄밀하게 정의하기 위해서는 어떤 요소들이 필요할까요? 정답은 다음과 같습니다(MP는 Markov Process의 약자입니다).

 

 ● 상태의 집합 S
가능한 상태들을 모두 모아놓은 집합입니다. 아이가 잠드는 마르코프 프로세스의 경우에는 이 집합의 원소가 5개로, s={s0, s1, s2, s3, s4}였습니다.


● 전이 확률 행렬 P

전이 확률transition probability Pss'는 상태 에서 다음 상태 s'에 도착할 확률을 가리킵니다. 예컨대 위의 마르코프 프로세스에서 s0에서 s2에 도달할 확률은 60%였습니다. 이를 수식으로 표현하면 Ps0s2=0.6이 됩니다. 첨자가 많아서 어려워 보이지만 사실 단순하죠? Pss'를 조건부 확률이라는 개념을 이용해서 조금 다른 방식으로 표현해 볼 수 있습니다.

이렇게 말이죠. 마르코프 프로세스는 정해진 간격(위 예시에서는 1분의 시간 간격)으로 상태가 바뀝니다. 그래서 시점 t에서의 상태가 였다는 것을 조건부 확률의 조건 부분에 집어 넣었습니다. 결국 시점 t에서 상태가 s였다면 t+1에서의 상태가 s'이 될 확률이라는 뜻입니다. 그냥 다른 방식의 표기법인데 이후에 이와 같은 방식의 표기가 몇 차례 등장하므로 미리 익숙해 지는 것이 좋습니다.

 

그러면 여기서 질문을 하나 하겠습니다. 왜 전이 확률이라 하지 않고 전이 확률 행렬transition probability matrix이라고 할까요? 그 이유는 Pss'값을 각 상태 s와 s'에 대해 행렬의 형태로 표현할 수 있기 때문입니다. 아이가 잠드는 마르코프 프로세스에서 상태의 개수는 총 5개였기 때문에 전이 확률 행렬은 총 25개의 값이 필요합니다. 따라서 Pss'를 행렬로 표현해보면 아래 그림과 같은 행렬이 생깁니다.

 

아이 잠드는 MP의 전이 확률 행렬(빈칸은 0을 의미)

 

그림에 있는 모든 정보가 위의 행렬에 표현되어 있음을 확인할 수 있습니다. 따라서 위의 그림과 위의 행렬은 서로 호환이 가능합니다. 행렬과 그림 사이 관계를 잘 이해했다면 위의 행렬에서 몇 개의 값이 바뀌어도 그에 대응하는 그림을 그릴 수 있어야 합니다.

 


  • 마르코프 성질

지금까지 마르코프 프로세스가 무엇인지, 마르코프 프로세스를 어떻게 정의하는지에 대하여 살펴 보았습니다. 그런데 이 과정의 이름이 왜 “마르코프” 프로세스일까요? 이 이름에는 중요한 의미가 있습니다. 그 이유는 바로 마르코프프로세스의 모든 상태가 마르코프 성질Markov property을 따르기 때문입니다. 마르코프 성질을 따른다는 것의 정의와 뜻은 다음과 같습니다.

“미래는 오로지 현재에 의해 결정된다”


보시다시피 정의에 조건부 확률이 사용되고, 조건부 확률에서 바(bar, “|”) 의 오른편에 주어진 조건을 나타냅니다. 그러므로 마르코프 프로세스에서 다음 상태가 st+1이 될 확률을 계산하려면 현재의 상태 st가 무엇인지만 주어지면 충분하다는 뜻입니다. St이전에 방문했던 상태들 s1, s2,…,st-1 에 대한 정보는 t+1시점에 어느 상태에 도달할지 결정하는 데에 아무런 영향을 주지 못합니다. 다시 말해 미래는 오로지 현재에 의해 결정되는 것입니다. 전이 확률을 어떻게 정의했었는지 다시금 생각해보면 아마도 당연하게 받아들여질 것입니다.

 

아이가 잠이 드는 MP의 예시를 생각해 봅시다. 아이는 현재 s2에 있습니다. 여러분은 다음 상태가 s3가 될 확률이 70%인지 알고 있을 것입니다. 여기서 아이가 s2에 오기 전에 어떤 상태들을 방문했는지 알 수 있을까요? 아마 모를겁니다. 왜냐하면 알려준 적이 없기 때문입니다. 그런데도 여러분은 다음 상태가 s3이 될 확률이 70%라는 것을 정확히 알고 있습니다. 그 이유는 위의 과정이 마르코프 프로세스이기 때문이고, 따라서 모든 상태가 마르코프하기 때문입니다.


사실 s2에 오기까지 정말 다양한 가능성이 있습니다. s0 > s1 > s0 > s2의 여정을 지나 왔을 수도 있고, s0 > s1 > s1> s1 > s0 > s1 > s0 > s2의 여정을 지나 왔을 수도 있습니다. 하지만 그것은 중요하지 않습니다. 어떤 상태를 어떻게 거쳐서 왔든 다음 상태가 s3될 확률이 70%임에는 변함이 없습니다.

 

아이가 잠이 드는 과정이 정말 마르코프한 지는 모르겠으나, 여하튼 우리는 이러한 가정을 가지고 아이가 잠이 드는 과정을 마르코프 프로세스로 모델링했던 것입니다. 이처럼 학습을 적용함에 있어서 현재 에이전트에게 주어지고 있는 상태가 마르코프 상태인지 따져보는 것은 이론적으로도, 또 응용의 측면에서도 정말 중요한 과정입니다. 이해를 더하기 위해 마르코프한 상태와 마르코프 하지 않은 상태 각각의 예를 들어보겠습니다.

 

 

  • 마르코프한 상태

먼저 체스 게임을 생각해 봅시다. 흑과 백이 치열한 접전을 벌이며 위 그림과 같은 상황을 맞닥뜨렸습니다. 지금은 백의 차례이고 최선의 수가 떠올랐습니다. 백이 떠오른 수는 흑과 백이 어떤 상황을 지나서 이 상황에 도달했는지 여부와 관련이 있을까요? 한 수 이전에 내 말이 어디 있었는지, 상대방의 퀸이 어느 자리에 있었는지, 내 폰이 어디서 잡아 먹혔는지 등의 과거 이력에 따라 현재 두어야 하는 최선의 수가 바뀔까요? 짐작하시겠지만 현재 상황에서 해야 하는 일과 과거 경기 양상이 어떠했는지 여부는 아무런 관련이 없습니다. 당장 맞닥뜨린 상황을 잘 읽고 미래를 내다보며 최선의 수를 둬야 하는 것이죠. 따라서 체스 판의 상태를 마르코프 상태라고 할 수 있습니다. 다른 말로 하면 어느 시점 t에 사진을 찍어서 사진만 보여주고 체스를 두라고 해도 손쉽게 어떤 수를 둘지 정할 수 있습니다.

 

 

 

  • 마르코프 하지 않은 상태

반면에 운전하고 있는 운전자의 상태를 생각해 봅시다. 특정 시점에 사진을 찍어서 해당 사진으로만 운전을 해야 한다고 해 봅시다. 위 사진처럼 말이죠. 여러분은 이 사진만 가지고 브레이크를 밟아야 할지, 엑셀을 밟아야 할지 알 수 있나요? 아마도 어려울 것입니다. 왜냐하면 심지어 지금 차가 앞으로 가고 있는지, 뒤로 가고 있는지도 알 수 없기 때문입니다. 따라서 사진만 가지고 구성한 상태는 마르코프한 상태가 아닙니다.

 

여기서 응용 질문을 하나 던져 보겠습니다. “최근 10초 동안의 사진 10장을 묶어서” 상태로 제공한다면, 이 상태는 마르코프 상태라고 볼 수 있을까요? 그렇습니다. 1초 전의 사진, 2초 전의 사진, …, 10초 전의 사진이 있다면 이야기는 달라집니다. 현재 앞으로 가고 있는지, 속도는 몇인지, 가속도는 몇인지까지 모두 알 수 있기 때문입니다. 완전히 마르코프한지는 모르겠지만 적어도 마르코프한 상태에 더 가까워졌다는 것은 의심의 여지가 없을 것 입니다. 또 굳이 사진을 묶지 않더라도 특정 시점에 사진과 더불어 속도 벡터, 가속도 벡터 등을 함께 제공한다면 이 또한 마르코프 성질을 더 잘 만족시킬 수 있습니다. 실제로 이러한 이유로 영국의 딥마인드사에서 발표한 연구1에서도 비디오 게임을 플레이하는 인공 지능을 학습시킬 때, 시점 t에서의 이미지와 함께 t-1, t-2, t-3의 과거 이미지를 엮어서 상태로 제공하였습니다. 이는 모두 상태를 조금이라도 더 마르코프하게 만들기 위함입니다.


요약하면 마르코프한 상태도 있고, 마르코프 하지 않은 상태도 있습니다. 어떤 현상을 마르코프 프로세스로 모델링 하려면 상태가 마르코프 해야 하며, 단일 상태 정보만으로도 정보가 충분하도록 상태를 잘 구성해야 합니다.


여기까지 마르코프 프로세스의 기본적인 성질들에 대해 살펴보았습니다. 다음 포스팅에서는 보상이 추가된 마르코프 리워드 프로세스Markov Reward Process 즉 MRP로 넘어가보겠습니다.

 

《바닥부터 배우는 강화 학습》

 

예스24 / 교보문고 / 알라딘 / 인터파크

반응형