강화학습 - Model Free(3)

BSH·2023년 5월 22일
0

강화학습_basic

목록 보기
7/12

앞서 배운 MC, TD중 어떤 것이 더 좋다라고 말하기는 어렵습니다. 각 방법에 대해 장점이 존재하기 때문에 여러 측면에서 살펴보겠습니다.

MC vs TD

학습 시점

MC는 에피소드가 끝나고 리턴이 정해져야 되돌아가면서 학습을 진행하고 TD는 한 스텝마다 바로바로 값을 업데이트 합니다.

  • Episodic MDP
    MDP의 상태들 중 종료 상태가 존재하여 에이전트의 경험이 에피소드 단위로 나눌 수 있음
  • Non-Dposodic MDP
    종료 상태 없이 하나의 에피소드가 무한히 이어지는 MDP

바둑, 스타크래프트와 같음 게임처럼 종료 조건이 명확한 경우에는 episodic MDP 형태로 만들 수 있습니다. 그러나 주식시장이나 RPG게임 같은 경우는 하나의 에피소드가 너무 길어지는 문제가 있습니다. MC는 episodic MDP에만 적용가능하지만 TD는 어떤 MDP에서든 적용할 수 있습니다. 이런 측면에서는 TD의 장점을 볼 수 있습니다.

편향성(bias)

MC:vπ(st)=E[Gt]TD:vπ(st)=E[rt+1+γvπ(st+1)]MC: v_{\pi}(s_{t})=\mathbb{E[G_{t}]}\\ TD: v_{\pi}(s_{t})=\mathbb{E[r_{t+1}+\gamma v_{\pi}(s_{t+1})]}

MC는 가치 함수의 정의, TD는 벨만 기대 방정식으로부터 식이 나왔습니다.

MC는 리턴의 평균을 향해 업데이트하는데 가치 함수의 정의가 리턴값이기 때문입니다. 그렇기에 리턴들을 모아 평균내는 방식은 절대 틀릴 수가 없습니다. 샘플이 모일수록 평균은 실제가치에 수렴하여 편향되어있지 않은(unbiased) 값을 얻게됩니다.

TD의 경우에는 TD target인 rt+1+γvπ(st+1)r_{t+1}+\gamma v_{\pi}(s_{t+1}) 값을 계산해 타깃과 현재 추측치 사이의 차이를 줄여주는 방향으로 업데이트 합니다. 근데 벨만 방정식의 기댓값 연산자 안의 수식은 rt+1+γvπ(st+1)r_{t+1}+\gamma v_{\pi}(s_{t+1})인데 업데이트에 사용하는 수식은 rt+1+γV(st+1)r_{t+1}+\gamma V(s_{t+1})입니다.
vπv_{\pi}는 정책 π\pi의 실제 가치이며 이 값은 아무도 모릅니다. 반면에 VV는 업데이트하고 있는 테이블 안에 있는 값이며 vπv_{\pi}와 같아지기 바라는 값입니다. 결론은 실제 밸류와 차이가 있기에 업데이트 방향이 실제 최적정책과 다를 수 있습니다.

V(st+1)vπ(st+1)V(s_{t+1}) \neq v_{\pi}(s_{t+1})

따라서 실제 TD target인 rt+1+γvπ(st+1)r_{t+1}+\gamma v_{\pi}(s_{t+1})은 불편 추정량이지만 우리가 업데이트에 사용하는 rt+1+γV(st+1)r_{t+1}+\gamma V(s_{t+1})는 편향되어 있습니다.

즉, 우리가 사용하는 TD 타깃은 샘플을 무한히 모아서 지속적으로 업데이트해도 실제 가치에 다가간다는 보장이 없습니다. 그러면 TD 방법론은 쓸모없는게 아닌가 생각할 수있지만 테이블 룩업과 더불어 조건(TD-zero)이 추가로 붙으면 TD 타깃이 불편 추정량이라는 정리가 존재하며, 딥러닝을 도입하면서 불편추정량이라는 보장은 없지만 실제로는 매우 잘 동작한다는 것이 알려져 있습니다.

분산

MC는 리턴을 샘플링 하면서 업데이트를 합니다. 평균값을 내지만 각각의 에피소드에 따라 확률적으로 리턴값들이 멀리 퍼져있는 경우가 많습니다. 이는 곧 정답으로 부터 변동성이 크다는 것을 말하며 곧 분산이 크다는 것을 의미합니다. 반면 TD는 한 샘플만 보고 업데이트 하기 때문에 분산이 작습니다. MC는 수십에서 수백 개의 확률적 결과로 이루어지지만 TD는 확률적 요소가 별로 없습니다. 그래서 TD는 평균 근처에 값이 몰려있고 분산이 작습니다.


위의 차이를 가지고 어느 것이 더 좋다라고 할 순 없지만 요즘 나오는 많은 강화학습 알고리즘은 TD를 많이 사용하고 있어 TD가 조금 더 좋은 방법이라고 할 수 있을 것 같습니다.

n_step TD

이제 여기까지 했다면 MC와 TD의 중간은 없을까하는 의문점이 생깁니다.TD 타깃을 생각해봅시다.

rt+1+γV(st+1)r_{t+1}+\gamma V(s_{t+1})

여기서 한 스텝으로 추측을 하고 있지만 생각해보면 꼭 한 스텝만 할 필요는 없습니다. 두 스텝만큼 집행하고 가치를 평가할 수 있습니다.

rt+1+γrt+2+γ2V(st+2)r_{t+1}+\gamma r_{t+2}+\gamma^{2}V(s_{t+2})

이와 같은 방식으로 n스텝까지 갈 수 있겠죠

그러면 N이 무한으로 가면 어떻게 될까요?

rt+1+γrt+2+γ2rt+3+...+γT1RTr_{t+1}+\gamma r_{t+2}+\gamma^{2}r_{t+3}+...+\gamma^{T-1}R_{T}

종료하는 MDP라고 가정하면 위의 식이 나옵니다. 근데 이 식은 MC방식에서 보던 식입니다. 결국 n-step이 무한으로 가면 리턴값이 되어 버립니다. 다시 말해서 TD는 MC의 일부였던 것입니다. TD의 한 극단에는 TD-zero(N=1인 경우)가, 다른 쪽에는 MC가 있는 것입니다.

n이 커질수록 TD-zero에서 MC에 가까워지며 그와 동시에 편향성과 분산에 대한 성질도 바뀝니다. MC에 가까워질수록 업데이트할 때 쓰는 값에서 추측이 차지하는 비중이 줄어들고, 실제 보상값이 차지하는 비중이 늘어납니다. 따라서 MC에 가까워지면 bias는 줄어들고 variance는 높아지게 됩니다.

n을 몇으로 해야 최적인가에 대한 정답은 없습니다. A3C 알고리즘을 소개한 논문에서 n-step 리턴을 사용했는데 n을 5로 사용했다고 합니다. 책을 다 읽고 읽어봐야겠습니다.

profile
컴공생

0개의 댓글