본문 바로가기

강화학습

2. 강화학습 MDP(Markov Decision Process)

반응형

 안녕하세요 '코딩 오페라'블로그를 운영하고 있는 저는 'Master.M'입니다.

오늘 알아볼 내용은 'MDP(Markov Decision Process)'입니다. 

 

 저의 경우 2016년 알파고와 이세돌의 바둑 대결로 인해 인공지능에 관심이 많이 생기기 시작했고 이후 구글의 딥마인드 팀에서 발표한 DQN논문 특히 아타리사의 '브레이트 아웃' 게임을 하는 것을 보고 많은 감명을 받아 '강화 학습'이라는 학문에 많은 관심을 갖게 되었습니다. 그래서 오늘부터는 강화 학습에 대해 차분히 정리를 해보도록 하겠습니다.

 

 저는 '파이썬과 케라스로 배우는 강화 학습'이라는 책을 읽으면서 독학을 하였습니다. 이 글은 이 책을 참고하여 제작합니다.(광고 아닙니다!!)

 

 강화학습은 순차적으로 행동을 계속 결정해야 하는 문제를 푸는 것입니다. 이런 문제를 수학적으로 표현한 것이 'MDP(Markov Decision Process)'입니다. MDP의 구성요소는 다음과 같습니다. 

 

 

1. 상태(state) : 에이전트 자신의 상황에 대한 관찰로 S는 상태의 집합을 의미합니다. 예를 들어 아래 그림과 같이 25개의 상태가 있으면 S={(1, 1), (1, 2),..., (5,5)}라고 표현이 가능합니다. 시간 t에서의 상태를 S_t라 하고 이는 집합 S안에서 (1, 2), (3, 4) 등등 무작위로 변할 수 있습니다. 때문에 이는 확률변수(Random Variable)입니다. 

 

 

2. 행동(action) : 에이전트가 할 수 있는 행동으로 행동의 집합은 A라고 합니다. 예를들어 위의 그림과 같이 상하좌우로 움직이는 에이전트가 있다면 A = {up, down, left, right} 이렇게 4개가 됩니다. 시간 t에서의 상태를 A_t라고 합니다. 

 

3. 보상함수(Reward Function) : 에이전트가 학습할 수 있는 유일한 정보로서 환경이 에이전트에게 주는 정보. 시간 t에서 상태 S_t = s, A_t = a 일 때 에이전트가 받을 보상은 다음과 같습니다. 

$$R_{s}^{a} = E [R_{t+1}|S_{t}=s, A_{t}=a]$$ 

자세히 보시면 보상은 기댓값(E)입니다. 기댓값이란 일종의 평균으로 '확률변수*확률'의 합입니다. '|'는 조건부로 R_(t+1) | S_t = s, A_t = a는 S_t = s, A_t = a일때 R_(t+1)를 의미합니다. 특이한점은 행동은 시간 t일 때 하는데 보상은 t+1에서 받는다는 점입니다. 이는 환경이 에이전트에게 시간 t+1이 돼서야 보상을 주기 때문입니다.

 

4. 상태 변환 확률 : 일반적으로 에이전트는 지금 상태 s에서 행동을 하여 다음 상태 s'로 이동합니다. 그러나 예측할 수 없는 변수가 생길 수도 있으므로 이는 확률상 100%가 아닙니다. 때문에 우리는 이 문제를 확률적으로 접는 하는데, 이를 상태 변환 확률이라고 합니다. 아래는 상태 s에서 행동 a를 취했을 때 상태 s'가 되는는 확률을 나타냅니다. 

$$P_{ss'}^{a} = P[S_{t+1}=s'|S_{t}=s, A_{t}=a]$$

 

5. 감가율(Discount Factor) : 에이전트가 항상 현재에 판단을 내리기 때문에 현재에 가까운 보상일수록 크고 먼 미래일수록 값이 작습니다. 이를 위해 감가율을 각 보상에 시간의 승수만큼 감가율을 곱해줍니다. 감가율은 흔히 $$\gamma$$라고 하고 0부터 1까지의 범위에 해당합니다.

 

 

 이렇게 하여 MDP의 기본적인 구성요소에 대해 알아보았습니다. 그러면 지금부터 그 외 적인 부분에 대해 알아보도록 하겠습니다.

 

 

1. 정책(Policy) : 모든 상태에서 에이전트가 할 행동으로, 상태가 입력으로 들어오면 행동을 출력으로 내보내는 일종의 함수입니다. 정책은 각 상태에서 행동을 단하나 또는 확률적으로 나타낼 수 있습니다. 이를 수식으로 나타내면 아래와 같습니다. $$\pi(a|s) = P[A_{t}=a|S_{t}=s]$$

 

2. 가치 함수(Value Function) : 에피소드가 다 끝나지 않아 정확하지 않더라도 현재의 정보를 토대로 행동여 보상을 예측하는 개념입니다. 이를 수식으로 나타내면 아래와 같습니다. 

$$v(s) = E [G_{t}|S_{t}=s] = E [R_{t+1}+\gamma R_{t+2}+\gamma^2 R_{t+3}...|S_{t}=s] = E[R_{t+1}+\gamma G_{t+1}|S_{t}=s] = E[R_{t+1}+\gamma v(S_{t+1})|S_{t}=s]$$

$$v_{\pi}(s) = E_{\pi}[R_{t+1}+\gamma v_{\pi}(S_{t+1})|S_{t}=s]$$

여기서 G_(t+1)은 반환 값으로 현재와 미래 예측 보상들의 합입니다. 이를 통해 수식을 정리해주면 마지막 줄의 수식이 나옵니다. 이를 '벨만 기대 방정식(Bellman Expectation Equation)'이라 부릅니다. 이는 현재 상태의 가치 함수(v(s))와 다음 상태의 가치함수 (v(S_(t+1)))사이의 관계를 설명하는 방정식입니다. 

 

3. 큐 함수(Q-function) : 어떤 상태에서 어떤 행동이 얼마나 좋은지 알려주는 행동 가치 함수. 지금까지 우리는 다음 상태를 예측하는 모델을 사용해 왔었는데 그럴 필요없이 어떤 상태에서 어떤 행동이 얼마나 좋은지 알면 되는데 이를 행동 가치함수 또는 큐 함수라고 합니다. 수식은 아래와 같습니다. 

$$v_{\pi}(s) = \sum_{}^{} \pi(a|s) q_{\pi}(s, a)$$

$$q_{\pi}(s, a) = E_{\pi}[R_{t+1}+\gamma q_{\pi}(S_{t+1}, A_{t+1})|S_{t}=s, A_{t}=a]$$ 

 오늘은 강화 학습의 기본 개념 중 하나인 'MDP(Markov Decision Process)'에 대해 알아보았습니다. 도움이 되셨나요? 만약 되셨다면 구독 및 좋아요로 표현해 주시면 정말 많은 힘이 됩니다. 궁금한 사항 혹은 앞으로 다루어 주었으면 좋을 주제가 있으시면 댓글 남겨주시면 감사하겠습니다. 저는 '코딩 오페라'의 'Master.M'이었습니다. 감사합니다.

 

 

 

반응형