* [바닥부터 배우는 강화학습] 도서를 읽고 정리한 글입니다
1. MDP의 정의
MRP에 에이전트 요소가 추가되어 각 상황마다 에이전트가 액션을 취하고 그것에 의해 다음 상태로 이동하며 환경으로부터 보상을 받게 되는 프로세스이다.
수식으로 정의하면 아래와 같다.
$$ MDP \equiv ( S, A, P, R, \gamma ) $$
- 상태의 집합 S
해당 프로세스에서 가능한 모든 상태의 집합이다.
- 액션의 집합 A
해당 프로세스에서 취할 수 있는 모든 액션을 모아놓은 집합이다.
예를 들면, 포트폴리오를 운영하는 펀드매니저를 모델링한다면 펀드매니저가 취할 수 있는 모든 행동은 "매수하기", "매도하기", "관망하기" 이렇게 3가지로 정리할 수 있으며 따라서 액션 집합 A는
A={ 매수하기, 매도하기, 관망하기 }
에이전트는 스텝마다 위 액션의 집합 중 하나를 선택하여 액션을 취하며 그에 따라 다음 상태가 달라진다.
- 전이확률행렬P
$$ P_{ss^{'}}^a $$
위 식의 의미 : 현재상태가 s 에서 에이전트가 액션 a를 선택했을 때 다음상태가 \( s^{'} \) 이 될 확률
즉, 에이전트가 같은 행동을 하더라도 그 결과로 매번 같은 상태로 변하지 않으며 다음상태 변화는 정해놓은 확률 분포를 따른다는 의미이다.
전이확률의 엄밀한 정의는 다음과 같다
$$ P_{ss^{'}}^a = P[S_{t+1} = s^{'} \vert S_t = s, A_t = a ] $$
- 보상함수 R
MRP 에서는 상태 s 에서 바로 보상이 정해졌지만 MDP에서는 상태 s에서 에이전트가 액션 a를 선택해야 보상을 정할 수 있게 된다. 물론 여기서 보상도 확률적으로 접근되어 액션 a 를 선택해도 매번 보상은 달라지므로 보상의 기댓값을 사용해야 한다
MDP 에서 보상함수 R은 다음과 같다
$$ R_{s}^a = \mathbb{E}[R_{t+1} \vert S_t=s, A_t = a] $$
- 감쇠인자 \( \gamma \)
MRP에서의 \( \gamma \) 와 동일한 개념이다.
- MDP에서의 핵심은 보상의 합을 최대화하기 위해서 에이전트는 각 스텝에서 어떤 액션을 선택해야 할까를 정하는 것이다.
이 룰을 정책 (Policy) 이라고 한다. 좀 더 세부적으로 정책에 대해 알아보기로 한다.
2. 정책함수와 2가지 가치함수
- 정책함수
정책함수는 전체 보상의 합이 최대가 되기 위해서 각 상태에서 어떤 액션을 선택할 지 정해주는 함수이다.
정책함수 수식은 아래와 같다.
$$ \pi (a \vert s) = \mathbb{P} \left [ A_t = a \vert S_t = s \right ] => 상태 s에서 액션 a를 선택할 확률 $$
예를 들어, MDP 상의 상태 \( s_0 \) 에서 선택할 수 있는 액션이 \( a_0, a_1, a_2 \) 3가지 라고 할 때
정책함수는 \( s_0 \) 상태에서 에이전트가 \( a_0 \) 액션을 선택할 확률, \( a_1 \) 액션을 선택할 확률, \( a_2 \) 액션을 선택할 확률을 결정한다.
예를 들어, 수식으로 표현하면 아래와 같다
$$ \pi ( a_0 \vert s_0 ) = 0.2 $$
$$ \pi ( a_1 \vert s_0 ) = 0.5 $$
$$ \pi ( a_2 \vert s_0 ) = 0.3 $$
\( s_0 \)에서 취할 수 있는 모든 액션의 확률을 더하면 1.0 이 되어야 한다.
중요한 점은 정책 또는 정책함수는 에이전트가 가지고 있는 중요 기능이다.
또한 강화학습을 통해 에이전트는 이 정책함수를 계속 고쳐나가야 한다.
- 상태가치함수
MRP 에서 가치함수는 상태가 주어지면 리턴의 기댓값으로 가치를 계산할 수 있었다.
하지만 MDP에서는 임의의 상태에서 에이전트의 액션이 결정이 되어야 그 액션에 따른 상태와 보상이 결정되며 그에 따른 리턴이 계산될 수 있게 된다.
다시 정리하면, 상태 S에서 정책함수 \( \pi \)가 결정되어야 리턴이 계산되어 가치함수의 결과를 도출할 수 있다.
수식으로 정리하면 다음과 같다
$$ \nu_{\pi}(S) = \mathbb{E}_{\pi}[r_{t+1}+\gamma r_{t+2}+\gamma^{2} r_{t+3} + ...\vert S_t=s] $$
리턴부분을 G 기호로 변환하면 아래와 같다
$$ \nu_{\pi}(S) = \mathbb{E}_{\pi}[G_{t} \vert S_t=s] $$
이 식의 의미는 상태 S부터 에피소드 끝까지 정책함수\( \pi \)를 따라서 움직일 때 얻는 리턴의 기댓값 이다.
중요한 것은 MDP 에서 상태가치함수는 정책함수에 의존적이다 라는 것이다.
- 액션가치함수
"각 상태에서 액션의 가치도 평가할 수 없을까?"
임의의 상태에서 취할 수 있는 액션의 가치를 모두 평가해본 후 그 중 가장 가치가 높은 액션을 선택하면 성능이 좋은 에이전트가 될 것이다.
이런 이유로 "상태-액션가치함수" 라는 개념이 나온다. 축약해서 "액션가치함수" 라고 한다.
"상태-액션 가치함수"의 정의를 수식으로 표현하면 아래와 같다
$$ \mathbf{q}_{\pi} (s,a) = \mathbb{E}_{\pi} \left [ G_t \vert S_t = s, A_t = a \right ] $$
( s에서 a를 선택하고, 그 이후에는 \( \pi \)를 따라서 움직일 때 얻는 리턴의 기댓값 )
인풋 인자로 상태s 와 액션 a가 페어로 들어가는 것과 조건부식에 액션이 포함되는 것만 다르고 나머지는 상태가치함수와 같다.
상태-액션가치함수 인풋 인자로 상태 s 가 들어있는 이유는 무엇일까?
액션(a)의 가치를 평가할 때 항상 함께 고려해야 할 것이 상태(s)이다.
먼저 상태(s)가 정해지고 해당 상태에서 액션(a)을 취할 때 가치를 평가하는 것이 의미가 있다.
상태없이 액션만을 평가하는 것은 의미가 없고 틀린 결과를 도출해 낼 것이다.
예를 들면, \( S_0 \) 상태에서 액션 \( a_1 \)을 취해서 변경되는 다음상태와 보상은, \( S_2 \) 상태에서 액션 \( a_1 \)을 취해서 변경되는 다음상태와 보상하고 서로 다르기 때문에 상태 s 에 대한 정보 없이 액션 a 만을 가지고는 정확하게 액션의 가치를 평가할 수 없다.
상태가치함수 \( \nu_{\pi}(s) \)와 상태-액션가치함수 \( \mathbf{q}_{\pi}(s,a) \) 는 주어진 상태 s 에서 어떤 액션을 취하는가 하는 부분에 차이가 있다.
상태가치함수 \( \nu_{\pi}(s) \)는 상태 s 에서 정책 \( \pi \)에 따르는 확률 분포에 의해 액션 a가 선택되어 지는 것을 고려한 함수이고,
상태-액션가치함수 \( \mathbf{q}_{\pi}(s,a) \) 는 주어진 상태 s 에서 특정 액션 a로 선택된 것을 감안한 함수이다.
상태 s에서 액션 a가 선택된 이후에는 2가지 가치함수 모두 정책 \( \pi \) 에 따라 에피소드가 진행되는 점을 고려한다.
'인공지능 > 바닥부터 배우는 강화학습' 카테고리의 다른 글
ch 3. 벨만 방정식 (0) | 2021.05.29 |
---|---|
ch 2-4. 마르코프 결정 프로세스(Markov Decision Process) - Prediction과 Control (0) | 2021.05.26 |
ch2-2. 마르코프 결정 프로세스(Markov Decision Process-MDP)-마르코프 리워드 프로세스 (0) | 2021.05.23 |
ch2-1. 마르코프 결정 프로세스(Markov Decision Process-MDP)-마르코프 프로세스 (0) | 2021.05.22 |
ch 1. 강화학습이란 (0) | 2021.05.19 |