Target, Behavior, On, Off policy 를 구분해보자.
에이전트는 환경의 상태 $s$ 에 대해서 행동 $a$ 를 선택합니다. 특성 시간 $t$ 에서 행동을 결정하는 Policy $\pi_t (a|s)$ 가 주어졌을 때, 이는 확률값일수도 있고, 무작위성을 포함한 epsilon greedy 일수도 있습니다. 시간이 지남에 따라서 에이전트는 환경에서 학습을 진행하여 더 나은 policy $\pi_t$ 를 얻게 되기에, 업데이트가 되는 sequence $\pi_1, \pi_2, \cdots, \pi_t$ 를 고려해봅시다. 만일 누군가에게 이 많은 policy 중에 하나를 고르라고 한다면, 아마 대부분의 사람들은 가장 마지막 policy $\pi_t$ 를 고르는데, $\pi _t$ 가 가장 많은 환경에 대한 학습을 진행하였기에, 제대로 학습이 되었다면 더 많은 보상을 얻는 행동을 유도하기 때문입니다.
Target Policy and Behavior Policy
$\pi_t$ 를 현재 가지고 있는 policy 라고 해봅시다. policy를 평가하기 위해서 가장 많이 사용하는 방법은 policy로부터 얻게 될 value function $Q^{\pi_t}(s,a)$ 값을 이용하는 거죠. 더 좋은 policy 라면 이 값이 더욱 높아지게 됩니다. Q-value 값을 평가하는데 있어서 한 가지 걸림돌은, 내가 지금 행동하는 policy와 이를 평가하고 사용하는 policy가 다르다는 것으로, 과거의 time step $s < t$ 에 대해서 $\pi_s$ 로 얻은 샘플에 대해서 Q-value값을 업데이트하는데, $\pi_t \ne \pi_s$ 이므로 과거의 정보를 유발한 policy $\pi_s$ 와 현재의 policy $\pi_t$ 가 다르다는 치명적인 단점을 가지게 됩니다.
따라서 이를 제대로 분석하기 위해서 강화학습 이론에서는 현재의 policy $\pi_t$ 와 과거의 policy $\pi_s$ 에 대해서 다음과 같이 이름을 붙였습니다.
- Target Policy $\pi_t$: 현재 내가 가지고 있는 policy
- Behavior Policy $\pi_b$: 과거 샘플을 생성하는데 사용했던 policy
이름이 Target 인 이유는 우리가 실제로 평가하고 싶은 policy이기 때문에 타겟 policy이며, Behavior policy는 기존에 우리가 행동했던 policy이기 때문에 behavior 라는 이름이 붙었습니다.
On Policy and Off Policy
이렇게 target과 behavior policy 를 구분하고 나면 강화학습을 나누는 대표적인 구분인 on-policy 와 off-policy에 대한 이해를 할 수 있습니다.
on-policy algorithm
- behavior policy $\pi_b$ 와 개선이 수행될 target policy $\pi$ 가 같거나 비슷해야 하는 알고리즘
- low sample efficiency
- A2C, TRPO, PPO
off-policy algorithm
- behavior policy $\pi_b$ 와 업데이트가 수행될 target policy $\pi$ 가 같지 않아도 되는 알고리즘
- replay buffer를 사용한 high efficiency
- DQN, DDPG, SAC
- offline-data로부터 적절한 policy를 만드는 것을 목표로 한다. 단점은 새로운 policy를 평가하기 어렵다.
게임으로 비유하자면 on-policy를 게임을 계속 진행하면서 학습을 합니다. 따라서 게임을 굉장히 많이 플레이 해야 합니다. off-policy를 게임을 잠시 멈추고 이전에 플레이한 것을 바탕으로 학습을 진행합니다. 최종적인 목표는 새롭게 만날 게임에서 더 높은 보상을 얻는 것이므on-policy로 하던 off-policy로 하던 더 높은 보상을 얻는 게 좋은 방식입니다.
related article
https://ai.googleblog.com/2020/04/off-policy-estimation-for-infinite.html
피드백은 언제나 환영입니다. 😁
'딥러닝 > 강화학습(RL)' 카테고리의 다른 글
강화학습에서 랜덤성과 비랜덤성에 관하여 + Return, Value Function (0) | 2022.01.21 |
---|---|
강화학습에서 Approximation 은 어떤 의미인가? / Approximation in Reinforecement Learning (0) | 2022.01.14 |
[Remark] 강화학습 Return에 대한 이해와 n-step Return (0) | 2022.01.11 |
[Remark] Sarsa와 Q-learning 비교하기 (1) | 2022.01.05 |
[Remark] Why contraction property is important for Bellman operator (0) | 2022.01.03 |