본문 바로가기
강화학습

[강화학습 논문 리뷰] Curiosity-driven Exploration by Self-supervised Prediction

by 미스터탁 2022. 12. 10.

이번에 포스팅할 논문은 "Curiosity-driven Exploration by Self-supervised Prediction" 으로 2017년 5월에 arxiv에 올라온 논문 입니다. 제목에서 알 수 있듯이, 강화학습의 exploration에 관한 내용입니다.

 

게임과 같은 환경이 아니라 실제환경 같은 경우에는 reward가 매우 sparse합니다. 이는 이전에서 포스팅한 HDQN에서도 언급한 내용입니다. 본 논문에서는 curiosity(호기심)이 agent가 explore하는데 도움을 주며 future scenario에서 skill을 습득하는데 도움을 준다고 언급하고 있습니다. (curiosity라는 개념은 e-greedy와 같은 일종의 exploration하기 위한 알고리즘이라고 보시면 될 것 같습니다.) 실험을 통해 extrinsic reward (외부 reward) 없이 curiosity 기반 intrinsic reward만으로도 학습이 잘되는 것을 보였으며, 특정 환경에서 학습시키고 조금 다른 환경에 실험할시 좀 더 빠르게 학습한다고 언급하고 있습니다.(슈퍼마리오 1단계 학습 -> 2단계 학습)

 

 

Curiosity-Driven Exploration

 

 논문에서는 curiosity-driven exploration에 대하여 다음과 같이 서술 하고 있습니다. "We formulate curiosity as the error in an agent’s ability to predict the consequence of its own actions in a visual feature space learned by a self-supervised inverse dynamics model." curiosity를 agent의 연속적인 action의 예측 능력 error로 규정하고 있습니다. Inverse dynamic model이라는 어떤 모델을 통해 예측되어지는 feature space속에서 agent가 action을 예측하여 그 예측이 틀리면 틀릴 수록 curiosity를 많이 가져가게 하겠다라는 의미입니다. 처음 논문을 읽었을 때 잘 이해가 되지 않았던 부분인데 이 부분에 대해서는 이후 다시 언급하도록 하겠습니다.

 

 

논문에서는 아래와 같은 두개의 sub-model구조를 제안합니다. 

 

 - Reward Signal을 최대화 시키는 연속적인 action을 가지는 policy network

 - Curiosity-driven intrinsic reward signal을 만드는 reward generator

 

첫번째 policy network는 기존에 우리가 알고있는 policy기반 network라고 이해하시면 되고, 두번째 network가 사실 논문에서 제안하는 핵심 부분입니다. 외부 reward가 없는 상황이기 때문에 Intrinsic reward가 필요하고 이를 curiosity-driven으로 생성하겠다는 것입니다. 당연히 Reward signal = Intrinsic reward + Extrinsic reward(mostly zero) 이고, 저자들이 말하는 main contribution은 Environment에 대한 agent의 지식의 prediction error에 기반한 intrinsic reward signal을 design 하였다 라는 것입니다. 결국 외부 reward 없이 intrinsic reward를 잘 생성해냈다는 뜻이지요.

 

 

 
 

Prediction error as curiosity reward

 

앞서 curiosity reward를 agent의 action prediction error로 규정하겠다고 서술하였습니다. 그런데 Raw sensory space에서 prediction 하는 것은 매우 어려운 task입니다.  논문에서는 다음과 같은 예제를 들고 있습니다.  바람에 흔들리는 나뭇잎의 움직임을 예측하는 것을 매우 어려운 일 일것입니다. 바람이 불면 매 step마다 prediction error가 계속 클 것이고 curiosity 또한 계속 남아있게 됩니다. 그러나, agent에게 나뭇잎의 움직임은 중요하지 않을 것입니다. 즉, 이 부분에서 언급하고 있는 문제점은 prediction error가 reward로서 작용하게 되는데 agent에 대하여 중요하지 않은 부분이 prediction error가 커지면 문제가 될 수 있다는 것입니다. 그렇다면 Prediction error가 curiosity의 좋은 척도가 되기 위한 올바른 feature space는 무엇일까요? 모든 source에 대하여 다음 세가지 경우로 나눌 수 있습니다. 

 

1) Agent에 control 되는 경우

2) Agent에 control되지 않으나 agent에 영향을 주는 경우 (다른 agent에 운전되는 차)

3) Agent에 control되지도 않고 agent에 영향도 주지 않는 경우 (움직이는 나뭇잎)

 

Curiosity를 위한 good feature space는 (1)과 (2)를 modeling 하고 (3)에 영향을 받지 않는 것일 것입니다. Agent에 중요한 변동 원인 없는 경우 Agent는 (3)에대해 알아야 할 동기가 전혀 없습니다.

 

 

 

 

Self-supervised predictions for exploration

 

 앞에서 계속 주구장창 예기 했던 prediction error를 구하기 위해 아래그림과 같은 모델 구조를 제안합니다. ICM(Intrinsic Curiosity Module)이라는 이름을 붙였는데, 처음에는 왜? 왜 이렇게하지?? 라는 생각 (이해력이 딸려서..)이 들었는데, 이해하고 나면 매우 직관적이고 간단하다라는 것을 알 수 있습니다.

우선 아래그림의 외쪽으로 보시면 State로부터 policy를 통해 action과 reward를 받고 Environment를 통해 다음 state받고 그 다음 다시 policy를 통해 다시 action을 취하는 것. 이 과정은 일반적인 강화학습 절차와 같습니다. 그런데 여기서는 ICM구조가 들어가 있죠. ICM구조를 보시면 Inverse Model과 Forward Model로 구성되어 있습니다. 아래 그림의 노란색 박스로 쳐진 부분이 Inverse Model인데 현재 State(feature)와 다음 State(feature)로 Action을 예측합니다. 그 함수를 g로 표현했습니다. 즉 현재 state에서부터 다음 state가 나오려면 어떤 action을 취해야할까? 라는 질문에 대답을 할 수 있도록 학습이 되는 거죠. 

 

 

 

 

 녹색박스로 쳐져있는 부분이 forward model입니다. Forward model 에서는 현재 state(feature)와 action을 통해 다음 state(feature)를 예측을 합니다. 그리고 실제 다음 state(feature)와 예측된 다음 state(feature)의 차이를 Intrinsic reward로 정의합니다. 이 reward를 통해 agent가 학습이 되는 것입니다.

 

 

 

 

 

 

그런데 Inverse model을 통해 왜 state와 다음 state를 가지고 action을 예측 하는 것일까요? 예측된 action은 다른 곳에서 쓰이지 않습니다. Inverse model은 state와 다음 state를 통해 action을 예측만 하지 그 이상의 역할은 하지 않습니다. 처음 이 논문을 접했을때에는 이 예측된 action을 대체 어떻게 한다는 거지 라는 생각을 했는데. Inverse model이 중요한 점은 action을 잘 예측하는 게 아니라 action을 잘 예측하게 끔 State와 다음 state의 feature를 잘 뽑도록 하는 것입니다. 이 글의 앞부분에서 언급했던 내용을 다시 가져오겠습니다. "We formulate curiosity as the error in an agent’s ability to predict the consequence of its own actions in a visual feature space learned by a self-supervised inverse dynamics model." 논문에 쓰여있는 이 구절이 핵심인데요(제생각). Inverse dynamics model에 의해 학습되어지는 feature space에서 agent의 action 예측 능력 error가 curiosity다! . 이 말에서 Inverse dynamics model은 action을 예측하는 것 자체 보다 feature space를 잘 만드는 역할이라는 것을 알 수 있죠. 

다시 바람에 흔들리는 나뭇잎이 state에 있다고 가정해보죠. State와 다음 State에서는 나뭇잎의 위치가 매우 다를 것입니다. 그런데 state와 다음 state를 input으로 하여 action을 ‘잘‘ 예측하게 한다면, state와 다음 state의 feature가 나뭇잎에 대하여 robust할 것 이라는거죠. 즉, 앞서 언급한 prediction error가 curiosity의 좋은 척도가 되기 위한 올바른 feature space를 만들기 위한 model인 것입니다.  

 

전체 loss는 다음과 같습니다. B와 lambda는 사용자 parameter입니다.

 

 

 

 

 

 

Result (Sparse Reward Setting)

 

 

Dense reward setting : ICM(Pixels)이 상대적으로 늦게 학습이 되는 이유는 Visdoom의 texture가 매 방마다 달라서 그런 것 이라 추정

Sparse reward setting : ICM(Pixels)이 start마다 동일한 texture를 마주함

 

ICM(Pixels) 은 feature space가 아니라 pixel space그대로 가져가는 모델인것 같습니다. Dense reward setting은 extrinsic reward가 가끔 있는 환경이고 sprase와 very sparse reward setting은 거의 reward가 없는 (start 지점에서 goal지점이 굉장히 먼) 환경입니다. 

 

 

 

Robustness to uncontrollable dynamics

 

ICM모델이 과연 robust한것인가에 대한 실험을 진행하기 위해 아래 그림처럼 Visdoom 이미지에 noise를 부여하여 학습시켜서 실험했다고 합니다. (앞서 언급한 산들바람과 같은 예제이죠). 그 결과 매우 뛰어난 성능을 보였다고 .. 심지어 TRPO보다 더 좋은성능을 보였다고합니다.

 

 

 
 
 
반응형
 
No Reward Setting
 

 

 

 - Optimal step – 250 /  model – 2100 step 

 - Agent가 optimal한 action을 보이는 것은 아니나, random exploration보다 좋은 모습을 보임 

 
 Reward가 아예 없는 경우에는 엄청 잘 되지는 않았으나, random하게 하는 것보다 좋았다고..합니다.
 
 
 

Generalization to Nevel Scenarios

 

 

Mario
 - Level1에서 학습 시킨 agent를 Level2 / 3에 Test결과
 - Level3에서 잘 되는 모습을 보임(지형이나 적이 다름에도 불구하고)
 - Level2가 안되는 이유는 배경이 night 라서인 듯 / Level1, 3는 Sunset 배경
 - Level2는 fine-tuning 시키면서 좋은 결과를 냄. 
 - Level3에서 fine-tunning을 시키면 오히려 더 안좋아짐 – 특정 구간을 못 넘는 현상, Agent가 호기심을 억제해 버렸다고.. 이전의 hard point를 agent가 이미 학습을 함에 따라 curiosity reward를 거의 받지 못하고 policy를 update하려 하기 때문이라 함.
 
 

 

반응형

댓글