* [바닥부터 배우는 강화학습] 도서를 읽고 정리한 글입니다

2. 마르코프 리워드 프로세스 (Markov Reward Process)

마르코프 프로세스에 보상의 개념이 추가된 프로세스이다.

 

위 그림은 아이가 잠이 드는 과정을 마르코프 프로세스로 모델링하여 표현한 것이다.

아이가 특정 상태에 들어오면 그에 따른 보상을 받게 되어 있다.

 

MRP를 정의하기 위해서는

보상함수 \( R \)과 감쇠인자 \( \gamma \) (감마) 가 추가로 필요하다

$$ MRP \equiv ( S, P, R, \gamma ) $$

 

- 보상함수 R

R은 어떤 상태 s에 도착할 때 받는 보상을 의미한다

$$ R = \mathbb{E} \left [ R_t \vert S_t = s \right ] $$

 

기댓값이 나온 이유는 특정 상태에 도달했을 때 받는 보상이 매번 조금씩 다를 수 있기 때문이다.

예를 들어, 어떤 상태에 도달하면 보상을 줄 때 동전을 던져 앞면이 나오면 500원, 뒷면이 나오면 받지 못한다고 하면 실제 보상은 매번 달라질 것이다. 이런 경우 기댓값을 적용하면 보상은 250원이 된다. 

 

기댓값의 이런 성격을 이용하여 어떤 상태에 도달했을 때 보상을 일반화해서 표현을 할 때 기댓값이 사용되는 것이다.

 

거꾸로 생각해보면 어떤 값을 표현할 때 기댓값을 사용했다는 의미는 그 값이 항상 나오는 고정된 값이 아니라는 의미를 내포하고 있는 것이다.

 

- 감쇠인자 \( \gamma \) 

\( gamma \) 는 강화학습에서 미래 얻을 보상에 비해 당장 얻을 보상을 얼마나 더 중요하게 여길 것인지 나타내는 파라미터이다. ( 0 에서 1 사이의 숫자 )

 

더 구체적인 설명을 위해 우선 리턴 이라는 개념을 이해해야 한다.

 

- 감쇠된 보상의 합, 리턴

MRP 모델에서는 상태가 바뀔때마다 보상을 받는다.

상태 \( S_0 \) 에서 시작하여 보상 \( R_0 \)를 받고 이어서 다음 상태로 전환되면서 보상을 받는 프로세스로 진행되다가 마지막 상태 \( S_T \) 에서 \( R_T \) 보상을 받고 종료된다.

 

이와 같이 시작상태에서 마지막 상태까지 이동하는 과정을 에피소드 라고 한다.

에피소드를 기호로 표시하면 아래와 같다.

$$ S_0, R_0, S_1, R_1, ... , S_T, R_T $$

 

리턴 ( \( G_t \) )이란 t 시점 이후 상태 \( S_{t+1} \)에서부터 에피소드가 종료할 때까지의 미래에 받을 감쇠된 보상의 합이다

$$ G_t = R_{t+1} + \gamma R_{t+2} + \gamma^{2} R_{t+3} + ... $$

\( \gamma \)의 값이 0에서 1 사이 값이므로 먼 미래 시점 항은 \( \gamma \)를 여러 번 곱해지면서 계산값은 작아져 0에 가까워진다.

결국 t 시점의 리턴값은 먼 미래에 받을 보상의 영향은 줄이고 가까운 미래에 받을 보상의 영향을 크게 하는 방식으로 계산된다.

 

엄밀히 말하면 강화학습은 리턴값이 최대화되도록 학습하는 방식이라고 할 수 있다.

리턴은 과거의 보상값은 포함시키지 않는다. 과거는 중요치 않다는 것이다.

 

\( \gamma \)는 왜 필요한가?

\( \gamma \)를 1에 가까운 값을 사용하게 되면 미래 보상값이 리턴에 거의 그대로 영향을 주게되며 이것은 먼 미래도 중요시 생각하는 장기적인 시야를 갖도록 하는 모델이 되도록 할 것이다.

반대로 \( \gamma \)를 0에 가까운 값을 사용하게 되면 먼 미래 보상값은 0에 가깝게 작아지게 되어 근시안적인 모델이 되도록 할 것이다.

 1) 수학적 편리성 때문에

\( \gamma \)를 1보다 작게 해줌으로 리턴 \( G_t \) 가 무한의 값을 가지는 것을 방지할 수 있다.

따라서 다양한 수학연산에 리턴값을 활용할 수 있게 된다.

 

 2) 사람의 선호 반영

사람은 먼 미래에 보상보다 가까운 미래에 보상을 더 선호한다.

 

3) 미래에 대한 불확실성 반영

먼 미래 상태는 확률적으로 더 불확실 하므로 그에 대한 보상 역시 불확실성을 반영하여 감쇠시킨다

 

- MRP에서 각 상태의 밸류 평가하기

어떤 상태의 가치를 평가할 때 과거보다 미래를 고려하여 평가하게 된다.

MRP에서도 특정 시점의 상태에 대한 가치 밸류를 계산하려면 해당 시점 기준으로 미래에 받을 보상들의 합이 높으면 그 상태 밸류가 높다고 생각할 수 있다.

여기서 이야기한 미래에 받을 보상의 합이 바로 리턴값 ( \( G_t \) ) 이다.

 

문제는 리턴값이 매번 바뀐다는 점이다.

확률적 요소에 의해 다음 상태가 정해지므로  t 시점 기준으로 다음 도달 상태들이 매번 달라질 수 있다. 결국 그에 대한 보상이 달라지므로 보상의 합인 리턴값이 매번 바뀐다는 것이다.

이때 사용되는 개념이 기댓값 이다.

 

상태가치함수(State Value Function)

상태가치함수는 임의의 상태 S를 인풋으로 넣으면 그 상태의 밸류를 아웃풋으로 출력하는 함수이다.

$$ \mathcal{V}(S) =  \mathbb{E} \left [ G_t \vert S_t = s \right ] $$

조건부로 붙는 \( S_t = s \)의 의미는 시점 t에서 상태 s부터 시작하여 에피소드가 끝날 때까지의 리턴을 계산하라는 뜻

같은 상태에서 출발하여도 주어진 확률분포때문에 매번 실행할 때마다 에피소드가 달라지면서 리턴값이 달라지므로 

상태가치함수의 인풋으로 동일한 S를 입력하여도 결과 리턴값이 다르게 나오게 된다.

이런 경우 위에서 언급한 기댓값 성질을 이용한다.

 

여기서 \( S_t \) 상태의 가치를 계산하는 방법으로 리턴의 기댓값을 사용한다는 의미는 무엇일까?

\( S_t \) 상태부터 종료상태까지 해당 프로세스를 상당히 여러번 실행시켜 다양한 에피소드 샘플들을 얻어 각 샘플 에피소드의 리턴값을 합산 후 평균을 냄으로 기댓값으로 활용할 수 있다는 의미이다.

 

정리하면, MRP에서는 상태별 보상을 줌으로 현재 상태에 대한 리턴 이라는 개념을 추가하게 되었으며 이 리턴이 결국 상태가치함수 값이 된다.

 

다음은 MDP에 대한 설명으로 넘어간다

 

+ Recent posts