본문 바로가기
강화학습

[강화학습 논문 리뷰] Self-Imitation Learning

by 미스터탁 2022. 12. 10.
반응형

 

이번에 포스팅 할 논문은 Self-Imitation Learning이라는 논문으로, ICML 2018에 나온 논문입니다.  

이 논문의 컨셉은 agent의 과거 경험중에 좋은 decision을 내린 경험을 학습시키자 라는 것이고, 이는 간접적으로 deep exploration으로 이끌 수 있다라고 주장하고 있습니다. 

 

Introduction

exploration과 exploitation의 trade off는 강화학습의 주 challenges 중 하나입니다. Exploit은 reward를 maximize하기 위해 필요하고 explore는 더 좋은 policy를 찾기 위해 필요합니다. 본 논문에서는 agent의 과거 경험을 활용하여 RL의 성능을 높일수 있을지에 대해 다룹니다. 이 논문의 main contribution은 다음과 같습니다.

 

1. 과거의 좋은 경험을 취하는 방법인 Self-Imitation Learning (SIL) 을 제안

2. 이론적으로 SIL의 목적식이 Optimal Q-function의 lower bound로 부터 도출된다라는 것을 증명한 점.

3. 모든 actor-critic network에 적용 가능하다는 점. (SIL이 매우 심플하기 때문에)

4. SOTA보다 성능이 뛰어나다는 점. 

 

 

 

Self-Imitation Learning

SIL의 목적은 agent의 과거 좋은 경험을 모방하도록 하는 것입니다. 이를 위해 DQN의 replay buffer와 같은 저장소가 필요하고 이를 D = {(st, at, Rt)}로 정의합니다.  

는 t시점에서의 discounted sum of reward입니다. 본 논문에서는 다음과 같은 off-policy actor-critic loss를 제안합니다.

 

 

 

SIL의 전체  loss는 policy loss와 value loss로 구성되어 있습니다. 이는 기존의 actor-critic loss와 같습니다. 다만,  loss안에  operator 

 가 껴있다라는 점만 다른 점입니다. 즉, 

인 경험에 한해서만 network의 parameter를 update 시키겠다 라는 것입니다.  

 

만약, 과거의 R값이 현재의 value 보다 크다면, agent로 하여금 과거의 state에서 선택했던 action을 선택하도록 학습시키는 것입니다. 반면에 R값이 현재 value보다 작거나 같다면, network의 parameter를 update 시키지 않습니다. 기대했던 것보다 더 큰 보상을 return해주는 과거의 decision을 agent가 모방하도록 하는 것입니다. 

 

 

Prioritized Replay

기본적으로 replay buffer에서는 모든 trajectories들을 저장하고 랜덤하게 샘플링하게 되는데, SIL에서는 '좋은' 경험(state-action pair)는 R > V인 경우이기 때문에, 이러한 trajectories들에대해 가중치를 두어 sampling하기 위해 PER-DQN 기법을 사용합니다. 즉 '좋은' 경험을 더 학습시키기 위해 replay buffer에서 sampling할때 R-V 값으로 가중치를 두어 샘플링하게 되는 것입니다.

 

Advantage Actor-Critic with SIL

SIL은 어떤 actor-critic network와도 결합이 가능합니다. 본 논문에서는 advantage actor-critic network와 SIL의 결합에 대해 중점적으로 다룹니다.  최종적으로 사용하는 A2C의 목적식은 아래와 같이 쓸수 있습니다.  그런데 본 논문에서 말하는 A2C는 흔히 말하는 A3C와 같은 것 같습니다. (multi-step loss와 entropy loss term이 있는 걸 봐서)

 

 

 

 

알고리즘

SIL의 알고리즘은 다음과 같습니다. 네트워크의 큰 구조는 PER-DQN + ActorCriticNetwork의 조합이라고 보시면 편할 것 같습니다. 네트워크를 초기화 시키고, transition을 매 step마다 임시 버퍼에 저장하고 에피소드가 끝나면 R값을 구하여 replay buffer에 저장합니다. 이때 임시버퍼는 초기화를 시킵니다. 그리고 actor-critic network를 update시킵니다. (이는 에피소드 중간마다 update 시켜도 상관없을 것 같습니다.) 그리고 나서 SIL을 수행합니다. 당연히 actor network와 critic network 둘다 update 시켜야합니다. 이때 주의해야할 점은 R-V값을 구할때 이전에 replay buffer에 저장할때 연산해 놓은 R-V값을 사용하는 것이 아니라 현재 critic network로 평가한 V값으로 R-V를 구해야합니다. 그래야만 과거의 경험이 현재의 상태보다 의미가 있는지 없는지 판단할 수 있기 때문이죠. R-V 가 0보다 작은 경우에는 해당 batch index에는 error값을 0으로 부여해서 Back propagation시키면 되겠죠. Actor network도 같은 방법으로 back propagation 시킵니다.

 

 

 

 

Theoretical Justification

본 논문에서는 SIL에 대하여 다음과 같이 주장합니다.

The self-imitation learning objective ( Eq. 1) can be viewed as an implementation of lower-bound-soft-Q-learning under the entropy-regularized RL framework. 

SIL의 목적식은 entropy-regularized RL 의 lower bound soft Q learning 의 implementation의 형태로 볼 수 있다라는 것입니다. 여기서 갑자기 entropy-regularized RL이 나오게 되고 논문에서는 간단하게 소개하고 넘어갑니다.

 

 

 

 

Entropy-Regularized Reinforcement Learning

Entropy-Regularized RL은 아래와 같은 목적식을 가집니다. Discount sum of reward 뿐만 아니라 policy의 entropy도 동시에 최대화 시키겠다라는 것입니다. 이를 통해 exploration을 강화시키겠다라는 의도입니다. 논문을 찾아보면, 이전에 모아놓은 데이터를 학습의 효율성을 위해 재사용하는 off-policy 형태를 띄고 학습의 안정성과 exploration을 위해 entropy를 maximize시키는 것이 큰 특징이라고 서술하고 있습니다. 이 알고리즘의 경우, large scale의 문제에서 SOTA의 결과를 보이고 학습을 할때마다 동일한 결과를 보였다고 합니다.(Large scale의 경우 exploration 때문에 학습이 불안정하고 매번 다른 곳으로 수렴할수 가 있죠)   

 

 

 

Optimal Q-function, optimal soft value function, Optimal한 Policy는 아래와 같이 유도가 됩니다. (증명은 다른 논문을 참조하라네요....ㅎㅎ 이부분은 시간될때 보고 올려보도록 하죠.) 

 

 

 

Lower bound of optimal soft Q-value

그런데 entropy-regularized RL의 lower bound는 아래와 같이 적을 수 있습니다. Optimal한 soft Q-value는 discounted sum of reward 와 Entropy가 최대가 된 값이기 때문에, 학습을 통해서 얻는 policy는 optimal값보다 작거나 같을 수 밖에 없겠죠. 이는 너무 자명한 사실입니다.

 

 

그리고 본 논문에서는 다음과 같은 목적식을 가지는 lower bound soft Q-learning을 제안을 합니다. 

 

 

직관적으로 봤을때 return된 값(discounted sum of reward + entropy)이 Q-value보다 높으면 update시키는 것을 알 수 있습니다.  그런데 위에서 보았듯이 estimated Q-value는 optimal soft Q-value값보다 작습니다. Estimated Q-value가 return value에 가깝게 하도록 학습시키고 싶은 것이고, 그 return값은 optimal soft Q-value보다 작기 때문에 아래와 같은 부등식이 성립하게되죠. 만약 R < Q 인경우 그러한 state-action pair는 학습에 좋은 정보를 주지를 못하게 되겠죠. 

 

사실 논문을 읽으면서 왜 lower bound를 이야기 하는지 이해가 잘 되지를 않았습니다.(물론 지금도 잘..) 제 생각에는 학습의 효율성을 위한 것 같습니다. Entropy-regularized RL의 optimum Q-value는 알지 못하지만 그의 lower bound는 behavior policy를 통해 얻어지는 Q-value라는 것을 알 수 있죠. 그 behavior policy를 통해 얻어지는 Q-value로 빠르게 도달하기 위해 제약조건을 거는 형태로 볼 수 있지 않을까 싶습니다. 

 

 

Connection between SIL and Lower Bound Soft Q-Learning

위에서 정의한것과 같은 entropy-regularized RL의 value function과 policy는 다음과 같이 적을 수 있고. Q-value 또한 식 (16)과 같이 적을 수 있습니다. 식 17과 18은 아래 증명을 유도하기 위해 편의상 설정한 것이라고 보시면 됩니다. R_hat을 식 17로 정의하고 18에 대입하면 쎄타는 lower-bound-soft-Q-value - estimated q-value 라는것을 알 수 있습니다.

 

 

식 16을 

에 대입하여 lower-bound-soft Q-learning의 gradient를 유도하면 아래와 같이 유도가 됩니다. 식 19에서 식 20으로 넘어가는 부분은 세타를 (lower-bound-soft-Q-value - estimated q-value) 로 정의하였기 때문이고 다른 부분은 자연스레 유도가 되는 것을 확인 할 수 있습니다. 

 

 

결국에 lower-bound-soft Q-learning의 Gradient를 구하게 되면 Policy term과 value term으로 나뉘게 되고 각각 식 28과 29로 쓸수가 있습니다.

 

 

결국에 a가 0으로 감에 따라  lower-bound-soft Q-learning은 논문에서 제안한 SIL의 형태와 같아진다라는 것입니다. 즉, SIL은 entropy를 optimizing 하는 것을 제외한 (a -> 0) lower-bound-soft-Q-learning의 한 form이라고 볼 수 있다 라는 것이죠. Lower-bound-soft-Q-learning은 direct로 optimal Q-value의 lower bound로 update를 시키기 때문에, SIL은 policy와 value를 direct로 optimal policy와 optimal value로 각각 update된다라고 볼 수 있습니다. 

 

 

 

Relationship between A2C and SIL

직관적으로 A2C는 on-policy trajectories를 통해 policy의 기대값을 최대화 하는 방향으로 학습을 시키는 것이고 반면에 SIL은 off-policy trajectories에서  direct로 optimal policy와 value로 학습시키는 것을 알 수 있습니다. 최근 연구에서는 entropy-regularized A2C는 n-step online soft Q-learning으로 볼 수 있다라고 주장하고 있습니다. 그러므로 A2C와 SIL은 entropy-regularized RL framework의 optimal soft Q-function 을 학습하는 것이라고 볼 수 있습니다. 그러므로 두 알고리즘 모두 서로 상호보완적인 알고리즘이라고 저자들은 주장하고 있습니다.

 

 

Experiment

다양한 형태로 실험을 진행하였는데, 아래 질문에 답할 수 있도록 실험설계를 하였다고 합니다.

1. SIL이 과연 exploration에 유용한가?

2. SIL이 count-based exploration method와 상호보완적인 모습을 보이는가?

3. 다양한 task에 대하여 전체적으로 성능을 높이는가?

4. 어떤 상황에서 SIL이 도움이 되고 그렇지 않은가?

5. 다른 off-policy actor-critic mehtod에 적용이 가능한가

6. PPO와 같은 continuous model에도 잘 작동하는가

 

 

Key-Door-Treasure Domain

SIL이 exploration이 도움이되고 count-based exploration (EXP) method와 상호보완적인 역할을 하는지 보기 위해서 아래 그림처럼 다른 두개의 환경으로 설정하여 실험을 진행하였습니다. Count-based exploration은 state의 방문횟수에 따라 bonus reward를 주는 형태로 처음 방문하는 state에는 더 많은 reward를 받고 자주 방문 하는 state에는 적은 reward를 받도록 하여 exploration을 강화시키는 형태입니다. 그 결과 A2C+SIL+EXP가 가장 좋은 모습을 보이고 sparse한 환경에서는 이 모델만 학습이 되었다고 합니다. 

 

 

Hard Exploration Atari Games

Actor-Critic Network와 비교하여 SIL이 exploration에 얼마나 도움이 되는지 확인하기 위하여 atari game에서 가장 sparse 한 reward 환경인 6개의 게임에 대해 실험을 진행하였습니다. 그 결과 A2C + SIL이 항상 더 좋은 모습을 보였습니다.

 

 

아래 표를 보시면 다른 SOTA 알고리즘과 대비했을 때 7게임중 6게임을 SOTA 성능을 보인것을 확인 할 수 있습니다. 이 것을 통해 효율적으로 deep exploration을 유도하는 것 뿐만 아니라 과거의 좋은 경험을 취하는 것 또한 중요하다라는 것을 알 수가 있습니다. 그런데 A2C+SIL은 Venture game에서 전혀 positive reward를 받지 못했습니다. 반면에 Reactor-PixelCNN은 좋은 성능을 보이는 것을 확인 할 수가 있죠. 그 이유는, agent가 reward가 없는 환경에서 다른 state를 탐험하게끔 유도하기 때문 이라고 합니다. 매우 reward가 sparse하기 때문에 과거의 좋은 경험을 취하는게 큰 의미가 없는 것이기 때문이라고 이해하시면 될 것 같습니다. 좋은 경험이라 말할 수 있는 경험을 하기 위해서는 굉장히 deep한 exploration이 필요한 환경인거죠. 이러한 환경에서는 exploration이 필수적으로 들어가야하는 요소입니다.

 

 

 

Overall Performance on Atari Games

Actor-Critic network와 비교하여 A2C+SIL은 49개의 atari game에서 매우 좋은 성능을 보였습니다. 그러나 몇몇 게임에서 게임초반에 local+optimal policy에 빠져버리는 현상이 발생했는데(Jamesbond, StarGunner), 이는 게임 초반에 과하게 exploitation을 함으로써 안좋은 성능을 야기시킨 것이라고 해석하였습니다. 그래서 자동적으로 SIL의 정도를 조절해주는 것이 필요할 것 이라고...(future work)

 

 

 

Performance on MuJoCo

Open AI Gym MujoCo에 대하여 PPO와 PPO+SIL 의 비교 실험결과, PPO+SIL이 거의 항상 좋은 모습을 보였다고 합니다. 즉, action이 continuous인 경우에도 SIL이 잘 작동한다라는 이야기이죠. 

 

 

 

R로 쉽게 배우는 강화학습   (할인쿠폰코드) 334-7a52bf639841

https://www.inflearn.com/course/R-%EA%B0%95%ED%99%94%ED%95%99%EC%8A%B5-%EA%B8%B0%EC%B4%88#

 

R로 하는 웹 크롤링 - 입문편(할인쿠폰코드) 236-69fc51d93a53 
https://www.inflearn.com/course/R-crawling# 

R로 하는 웹 크롤링 - 실전편 (할인쿠폰코드) 237-55c672aeb038 
https://www.inflearn.com/course/R-crawling-2# 

R로 하는 텍스트마이닝 (Top keyword부터 감성분석까지) (할인쿠폰코드) 238-c86096730061 
https://www.inflearn.com/course/R-text-mining#

 

R로 무작정 해보는 data science (할인쿠폰코드) 310-c6164f3d9be9 
https://www.inflearn.com/course/R-%EB%8D%B0%EC%9D%B4%ED%84%B0%EC%82%AC%EC%9D%B4%EC%96%B8%EC%8A%A4-%EB%9D%BC%EC%9D%B4%EB%B8%8C%EC%BD%94%EB%94%A9#

 

반응형

댓글