본문 바로가기
공부 정리/강화 학습

[강화학습9]Q-learning

by 블로그별명 2023. 12. 5.

 

 

저번 포스팅에서는 MC와 TD를 이용한 강화학습 방법들에 대해서 다뤘다. 이번포스팅에서는 On-Policy와 Off-Policy라는 새로운 개념을 소개하고 이를 활용한 새로운 강화학습 방법에 대해서 다뤄본다.


SARSA의 문제점

SARSA는 한 가지 단점을 가지고 있는데, 바로 탐험이 가치함수 업데이트에 직접적인 영향을 미친 다는 점이다. 이는 정확한 정책평가를 하는 데 있어서 방해가 된다. 비유를 들어보면 다음과 같다.

철수는 강화학습 에이전트로. SARSA알고리즘을 통해 학습을 진행하고 있다.

학교상태$S$에서 열심히 공부하는 행동$A$를 선택하여 즉시보상$R$을 얻고 선생님께 칭찬을 받는 상태$S'$로 전이되었다. 다만 원래계획은  선생님께 감사의 표시를 하는 행동$A'$를 취하는 것이었지만 $\epsilon - greedy$의  정책에 의한 탐험으로 인해 예상치 못하게 선생님에게 대들기$A'$라는 행동을 취하게 되었다. 결국  Q(학교에서, 열심히 공부하기)의 가치는 크게 감소하게 되었다. 이러한 문제는 SARSA가 가치함수를 업데이트할 때 현재의 행동정책[각주:1]을 사용하는 데 있다. 이 문제는 행동 정책과 타깃 정책[각주:2] 분리하는 것으로 해결할 수 있다.

On-Policy vs Off-Policy

행동정책과 타깃정책이 같은 경우 On-Policy, 행동정책과 타깃정책이 다른 경우 Off-Policy라고 한다. Off-Policy학습법은 다양한 정책에서 얻은 데이터를 활용할 수 있기 때문에 여러 종류의 데이터 소스를 활용하여 보다 효율적인 학습이 가능하다. 예를 들어 바둑을 두는 강화학습모델을 만들 때, 자신의 과거경험을 재사용하거나 프로기사가의 기보를 활용하는 것이 가능하다. TD 베이스의 On-Policy학습법에 SARSA가 있다면, TD 베이스의 Off-Policy학습법에는 Q-learning이 있다.

  SARSA Q-learning
행동정책 $\epsilon - greedy$ $\epsilon - greedy$
타깃정책 $\epsilon - greedy$ $greedy$

Q-learning

Q-learning의 타깃정책은 현재 행동정책과 무관하게 항상 가장 좋은 보상을 주는 행동을 선택하고, 이는곧 최적정책이다. 따라서 Q-learning의 가치는 다음과 같이 정의할 수 있다.

$$q^*(s, a) = \mathbb {E} [r + \gamma \max_{a'} q^*(s', a')]$$


$q^*(s_t, a_t) = \mathbb {E} [r_{t+1} + \gamma \max_{a_{t+1}} r_{t+2} + \gamma^2 \max_{a_{t+2}} r_{t+3} + \cdots]$

                  $= \mathbb {E} [r_{t+1} + \mathbb {E}[\gamma \max_{a_{t+1}}  r_{t+2} + \gamma^2 \max_{a_{t+2}} r_{t+3} + \cdots]]$                                         

                  $= \mathbb {E}[ r_{t+1} + \gamma \max_{a_{t+1}}\mathbb {E}[r_{t+2} + \gamma \max_{a_{t+2}} r_{t+3} + \cdots]]$

                  $= \mathbb {E}[ r_{t+1} + \gamma \max_{a_{t+1}} q^*(s_{t+1}, a_{t+1})]$


이에 기반한 Q-learning의 업데이트식은 다음과 같다. 

$$Q(S, A) \leftarrow Q(S, A) + \alpha(R + \gamma \max_{A'} Q(S', A') - Q(S, A))$$ 

SARSA가 현재 정책의 평가와 개선을 반복하는 정책반복과 유사하다면, Q-learning은 최적가치를 반복적으로 업데이트하는 가치반복과 유사하다.

  1. 행동정책(Behavior Policy)은 에이전트가 환경에서 실제로 어떤 행동을 취할지 결정하는 정책이다. [본문으로]
  2. 타깃정책(Target Policy)은 가치함수를 업데이트할 때 쓰이는 정책이다. [본문으로]

댓글