MDP를 모를 때 value 평가하기

MostlyFor·2023년 2월 7일
0

강화학습

목록 보기
8/12

Model Free 상황에서의 prediction

1.몬테카를로 (MC)

한번에 state value 를 추정하는 방법 - 여기서 N은 방문 횟수가 된다.

vπ(st)=V(st)N(st)v_\pi(s_t) =\frac{V(s_t)}{N(s_t)}

근데 이러한 방법보단 한 번의 에피소드마다 업데이트하는 방법이 유용하다.

V(st)V(st)+α(GtV(st)V(s_t) \leftarrow V(s_t) +\alpha(G_t-V(s_t)

2.Temporal Difference

몬테카를로 방법은 한 에피소드마다 학습을 진행한다. 하지만 실제에서는 에피소드의 끝이 명확하지 않은 경우도 있고 심지어 에피소드가 끝나지 않는 경우도 있다.

이럴 경우에 학습을 어떻게 진행해야 할까?

이러한 동기에서 발생한게 Temporal difference이다.

MC에서는 v(st)=E[Gtst]v(s_t)=E[G_t|s_t] 라는 정의를 활용한다.

이 뜻은 무수히 많은 에피소드를 진행하여 G를 계산하면 v가 참 값으로 근접해간다는 뜻이다.

하지만 우리는 이 식 외에도 벨만 방정식으로 가치함수를 표현할 수 있다.

v(st)=E[Rt+1+γv(st+1)S=st]v(s_t) = E[R_{t+1} + \gamma v(s_{t+1}) | S=s_t]

TD 방법은 위 식에 근거하여 가치함수를 추정한다. 물론 이때 V(st+1)V(s_{t+1}) 값도 추정값이므로 '추정 값으로 추정한다'라는 꼴이라 이는 편향이 존재하게 된다.

우리가 업데이트에 활용하는 식이 rt+1+γV(st+1)r_{t+1} + \gamma V(s_{t+1}) 이므로 업데이트도 다음과 같이 진행한다.

V(st)V(st)+α(rt+1+γV(st+1)V(st))V(s_t) \leftarrow V(s_t) + \alpha(r_{t+1} + \gamma V(s_{t+1}) -V(s_t))

MC vs TD

학습 시점

MC에선 Episodic MDP 만 가능하고 TD에선 Non-Episodic 상황도 적용 가능하므로 TD가 범용성 있다.

Non-Episodic 상황은 포트폴리오 관리 같은 경우가 있다.

편향성 (Bias)

Rt+1+γv(st+1)R_{t+1} + \gamma v(s_{t+1})가 TD에서 목표하는 값인데, 우리는 V(st+1)V(s_{t+1}) 값을 업데이트에 적용한다. 즉, 정확한 값이 아닌 편향된 값으로 업데이트를 적용한다.

따라서 MC가 더 편향적이지 않은 방법이다.

분산 (Variance)

MC에서는 한 에피소드가 끝나야 학습을 시작한다. 즉, 각 에피소드의 경로에 따라서 보상값이 극단에 위치할 수도 있다. 분산이 크다는 것은 보상의 평균값을 찾기 위해 더 많은 데이터가 필요하다는 것을 의미한다.

반면, TD는 한 스텝마다 학습을 진행한다. 이는 업데이트 하는 값에 대해 경로의 다양성이 없으므로 분산이 적다는 것을 의미한다.

MC와 TD의 중간

여기까지 본 TD는 한 스텝을 간 후 업데이트를 진행한다. 이를 TD-zero라고 부른다.
반면 MC는 에피소드 종료까지 스텝을 간 후 업데이트를 진행한다.

MC는 편향성에서 유리하고 TD는 학습 시점과 분산에서 유리한데 이 둘의 중간은 없을까?

N개의 step을 간 이후 업데이트 하는 방식이 존재한다.

0개의 댓글