본문 바로가기
강화학습

[강화학습 논문 리뷰] Exploration by Random Network Distillation

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

 

이번에 포스팅 할 논문은 Exploration by Random Network Distillation이라는 논문입니다. OpenAI에서 2018년 10월에 발표한 논문이고 제목에서 알수 있듯이 exploration에 관한 논문입니다. 매우 간단한 아이디어에서 시작된 논문이지만 (사실 처음에 직관적으로 잘 이해가 되지 않았습니다), 성능은 매우 띄어 납니다. (연구실 프로젝트에도 적용해보았는데, 효과가 꽤 좋습니다) Reward가 sparse한 환경으로 많이 실험하는 Atari-Montezuma에서 SOTA를 기록했고 최초로 인간성능을 뛰어 넘었습니다. 여태까지 매우 많은 강화학습 알고리즘이 나왔지만 이 Montezuma에서는 인간의 성능을 뛰어 넘지 못했었죠. 그런데 드디어 최초로 인간성능을 뛰어넘는 알고리즘이 나왔습니다.

 

 

 

 

본 논문에서는 Intrinsic reward(exploration bonus)를 Fixed randomly initialized NN의 state feature를 예측한 오차로 정의 하였습니다. (처음엔 이게 무슨말인가 싶었습니다..ㅠ). Extrinsic reward 없이도 Montezuma에서 절반이상 클리어 한다라고 합니다. 아래 그림에서 한 episode안에서 intrinsic reward가 증가하는 시점과 게임화면을 match시켜서 보실수가 있습니다. 

 

 

 

 

Reward가 sparse한 환경에서 어떻게하면 문제를 잘 풀수 있을까 하는 고민은 결국 exploration을 잘하자! 라는 결론으로 귀결 됩니다. Exploration과 Exploitation은 항상 trade off 관계에 있고 이들을 잘 다루는게 강화학습의 주 challenge중 하나입니다. 외부에서 발생하는 reward외에 내부에서 발생시키는 intrinsic reward(Exploration bonus) 를 도입하는 시도는

 

이전부터 있었고, 주로 사용하는 방법이 prediction error(curiosity)를 사용하는 것입니다. (이전 포스팅 http://bluediary8.tistory.com/30?category=640398 에서 curiosity 를 참고하시면 좋을것 같습니다.) 간단하게 이야기하면, agent의 현재 state와 action을 가지고 다음 state를 예측해서 실제state와 다음state의 차이를 reward로 주는 것입니다. 즉, agent가 예측치 못한 행동을 하였을때, 더 reward를 많이 주도록하는 것입니다. 이러한 방법은 많은 연구에서 볼수 있듯이 꽤 효과적으로 알려져 있습니다. 그런데 이 curiosity는 'noisy-TV problem'이라는 것을 겪을 수 있습니다. 아래 영상에서 볼수 있듯이, noise한 trap에 빠질수 있다는 것이죠. State자체에 noisy가 껴 있어서 어떠한 action을 취하든 curiosity가 남아있게 됩니다. 즉, intrinsic reward를 잘 주려면 현재 state와 action을 가지고 다음 state를 잘 예측해야하는데, noisy가 껴있어서 그게 불가능해지고 어떠한 action을 취해지든 reward가 강하게 남아있어서 하나의 action만을 계속 취함에 따라 local minimum에 빠져버리는 것 입니다. 이렇듯, 사소한 prediction error가 exploration bonus로 쓰일 가능성이 있고, 근본적으로 다음 state 예측을 '잘'해야하는 문제점이 있습니다.  

 

 

 

 

 

본 논문에서는 prediction error를 발생시키는 요인을 다음과 같이 정의합니다.

 

1. Amount of training data. Prediction error is high where few similar examples were seen by the predictor (epistemic uncertainty).

 

2. Stochasticity. Prediction error is high because the target function is stochastic (aleatoric uncertainty). Stochastic transitions are a source of such error for forward dynamics prediction.(다음 state를 예측하기때문..?)

 

3. Model misspecification. Prediction error is high because necessary information is missing,

or the model class is too limited to fit the complexity of the target function.

 

4. Learning dynamics. Prediction error is high because the optimization process fails to find a predictor in the model class that best approximates the target function.

 

 

Prediction error는 여러 factor의 조합으로 발생하며  factor1는 새로운 경험을 얻기 위한 유용한 요소이며, factor2/3가 'noisy-TV problem'을 야기한다고 지적하고있습니다. 즉, 다음 state를 예측을 잘해야하고, 예측을 하는 것이기 때문에 stochastic한 특성을 가진다라는 것이죠. (제 생각입니다..ㅠ) 

이러한 문제를 해결하기 위해 저자들은 Random Network Distillation이라는 것을 도입합니다. 

 

방법은 다음과 같습니다.

 

1. State의 feature를 뽑기위한 Network를 랜덤으로 초기화 시키고 고정시킵니다. (Target Network, 이 네트워크는 학습하지 않습니다)

 

2. Target Network와  똑같은 구조를 가지는 네트워크를 초기화 시키고 (Predictor Network), Target network에서 나온 state의 feature와 이 predictor network에서 나온 feature의 차이가 최소화 되도록 학습시킵니다.

 

즉, predictor network를 Target Network화 시키는 거죠. 그리고 그때 state의 차이를 Intrinsic reward로 정의합니다. 결국 다음 state의 feature space가 predictor network가 잘 예측하지 못한 state라면 더 많은 reward를 주게 되는 것이죠.

 

 

 

예측한 다음 state와 실제 다음 state의 차이를 intrinsic reward로 정의하는 것은 일반적인 curiosity 모델의 컨셉과 같습니다. 그러나 기존의 curiosity모델은 현재 state와 action을 통해 다음 state를 "예측해야만" 했다면, RND는 실제 다음 state를 가지고 "feature만을 추출"합니다. 즉, 예측을 잘 해야할 필요가 없는것이죠. 그러므로 RND의 predictor model을 stochastic한게 아니라 deterministic하게 되는 것입니다. 랜덤으로 초기화시키고 고정시킨 target network 또한, feature를 예측하는 것이 아니라, 추출의 목적이 있기 때문에 굳이 학습 시킬 필요가 없습니다. 어차피 비슷한 state에 대해서는 비슷한 output feature를 내뱉게 됩니다. Target network의 output을 predictor network로 학습을 시키면 결국 predictor network는 target network와 비슷한 모델이 되어갑니다. 하지만 episode 과정중에 계속 보왔던 state에 대해 학습이 되기 때문에, 이전에 보왔던 state에 대해서 overfitting되게 되고, 보지 않았던 새로운 state를 보게 된다면, target network의 output과는 조금 다른 output을 내게 됩니다. 즉, 새로운 state를 찾아가면서 하는 행동에 대해서는 reward를 많이 줄수 있게 되는 것이죠. (이때, predictor network와 target network가 완전히 동일하게 되서 무조건 같은 output을 내지 않을까하는 의문이 들수도 있습니다만, MNIST데이터를 학습시키는 CNN모델만 생각해도 완전히 overfitting되는 열개의 모델을 만들어도 각기 NN의 weight는 다르다 라는 것을 생각해보면 직관적으로 절대 같아질수 없다라는 것을 이해할 수 있습니다.

 

 

 

Extrinsic reward없이 intrinsic reward만 가지고 실험을 한 결과를 보면, 새로운 stage에 들어가는 시점과(우측그림) intrinsic reward(좌측그림) 또한 올라가는 것을 확인 하실수 있고, stage에 정체되어있는 구간에서는 reward가 감소하는 것을 볼수가 있습니다. 계속 같은 state를 만나다보니 , predictor network가 target network의 같은 output을 계속 학습시키면서 predictor network의 error가 감소하는 것입니다. 

 

 

 

이 외에의 실험결과에서는 CNN/RNN policy와 비교 discount factor를 intrinsic/extrinsic reward 에 대하여 각기 다르게 적용하여 실험한 결과를 보이고 있습니다. 결국에 게임이라는 것이 과거의 기록(키를 얼마나 가지고 있느냐, 문을 어디서 열었느냐)을 다루기 위해서는 RNN을 적용하는 것이 좋고, discount factor에 따라 성능 차이도 크게 난다라는 결론입니다. Discount factor는 좀 의아한 결과인데, 이는 환경마다 결과가 다르지 않을까 싶습니다.  어쨌든, 이 논문에서 중요한 것인 이 실험결과가 아니라 다음 State를 예측하지 않고 단순히 feature만 뽑아서 reward를 준다는 것입니다.

 

 

 

 

 

 

 

 

 

 

 

 

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#

 

반응형

댓글