본문 바로가기
강화학습

[강화학습 논문 리뷰] BEBOLD: EXPLORATION BEYOND THE BOUNDARY OF EXPLORED REGIONS

by 미스터탁 2020. 10. 29.

이전 포스팅에서 RND다음으로 exploration bonus하는 논문인 RIDE에 대해서 소개하였습니다.

 

bluediary8.tistory.com/115?category=640398

 

Rewarding impact-driven exploration for procedurally-generated environments.

이번에 소개 할 논문은 Rewarding impact-driven exploration for procedurally-generated environments이라는 논문입니다. 2020 ICLR에 accept된 논문 입니다. (openreview.net/forum?id=rkg-TJBFPB) RIDE: Rewar..

bluediary8.tistory.com

 

이번에는 올해 나온 exploration bonus에 대해 소개 해 드리겠습니다.

 

BeBold라는 논문으로 현재 2021 ICLR 에 submit되었고, review 진행 중에 있습니다. BeBold는 비교 방법으로 RND와 RIDE를 제시 하여 본인들이 제안한 방법의 우수성을 입증하려 노력하였습니다. 기본적으로 저자들은 BeBold가 count based exploration 과 state-diff approach를 결합한 novel exploration method라고 주장하고 있습니다. 

 

  • 충분한 exploration 이후에 reward가 감소되는 문제를 막고
  • Trajectory의 끝부분과 explored 영역과 unexplored영역 사이의 boundary에서 reward가 매우 큰 이점을 가지고 있음.

앞서 RIDE가 reward가 다른 방법에 비해 intrinsic reward가 덜 감소되는 것을 보였는데, 저자들은 BeBold는 그것보다 reward가 감소되는 현상을 더 막겠다 라고 주장하고 있습니다. 더불어, 이미 agent가 탐험한 영역과 탐험하지 않은 영역 사이의 boundary에서 매우 큰 rewar을 줄 수 있다고 합니다. 아래 그림처럼 RND와 다르게 BeBold의 reward는 탐험한 영역과 탐험하지 않은 영역 사이의 reward가 매우 큰것을 알 수 있습니다.

 

기본적으로 BeBold reward는 다음 수식에 의해 계산됩니다.. N은 visitation count입니다. 현재 state에 10번,다음 state에 1번 방문했다라고하면 reward는 0.9가 되고 현재 state에 100번 방문했다라고 하면 reward는 0.99가 되죠. Clip하는 이유는 음수를 줬을 경우 이전의 state로 돌아갈 수 있기 때문입니다.

이러한 reward는 RND가 겪는 문제(reward가 빠르게 감소되는)를 완화시켜 agent가 지속적으로 더 많은 area를 탐험하도록 합니다. (각각의 다른 trajectory에 대하여 uniform하게 explore하도록 함)

 

 

Episodic Restriction on Intrinsic Reward (ERIR)

많은 exploration method는 agent가 'go back'하는 현상을 겪게 되는데, RIDE는 이를 intrinsic reward에 대하여 state visit count로 scaling하면서 회피하려고 했었습니다. BeBold는 아래와 같이 더 공격적인 제한을 두게 됩니다.

 

N_e는 매 episode가 시작될때 초기화 됨. 즉, 매 episode마다 다음 state를 처음 만날때에만 reward를 사용하고 그렇지 않은 경우 0을 부여합니다. N_st는 다음과 같이 RND를 이용하여 구합니다. 이러한 restriction은 agent가 'go back' 하지 못하도록 하기 위한 장치로 보입니다.

 

최종적으로 식을 정리하면 다음과 같이 정리 할 수가 있습니다. (다음 state의 RND error - 현재 state의 RND error) 로 이야기 할 수 있겠죠. 이 reward는 다음 state가 novel state일때만 유효합니다. 즉 다음 state가 매우 새로 울때만 reward를 주고 그렇지 않을 떄는 0을 부여하게 됩니다. 이때 rewar의 양은 얼마나 'novel'한지의 기준을 현재 state의 RND값으로 penalty를 줌으로써 결정하는 것 같습니다. 

 

 

BeBold가 RND나 RIDE에 비해서도 성능이 좋다라고 주장하고 있습니다.

 

현재 ICLR에서 review중이긴 한데, accept될지는 잘 모르겠습니다. 성능으로 보면 RND나 RIDE보다 훨씬 더 좋은 모습을 보이고 있긴합니다. 즉, 성능면에서는 무조건 accept되는게 맞는 것 같긴 합니다만, BeBold의 주요 컨셉 아이디어에 대한 설명이 조금 부족하다는 느낌을 많이 받았습니다. Agent가 'GoBack'하지 않도록 장치를 둔 건 좋았는데, RIDE수식을 (다음 state의 RND error - 현재 state의 RND error)와 같이 정리 하면서, 이게 뭘 의미하는지에 대한 설명이 조금 부족해서 직관적으로 와닿지는 않은 것 같습니다. 더불어, 항상 'GoBack' 하지 않으면 좋은 건가? 라는 의문이 들기도 하네요. 결국 한 방향으로만 agent가 직진 할 수도 있다라는 생각이 듭니다.

 

 

반응형

댓글