본문 바로가기
강화학습

Hierarchical Deep Reinforcement Learning (HDQN)

by 미스터탁 2017. 11. 21.

본 포스팅은 기본적은 강화학습인 Q-learning과 DQN(Deep Q-network)에 대해 알고 있으셔야 읽기 수월합니다.


Q-learning과 DQN에 대한 내용은 김성교수님의 모두를 위한 RL 강의를 참고하시기 바랍니다.

(https://www.youtube.com/playlist?list=PLlMkM4tgfjnKsCWav-Z2F-MMFRx-2gMGG)



Hierarchical Deep Reinforcement Learning (HDQN)은 한국말로 번역하면 계층적 강화학습으로


여러 목표를 정해 그 목표를 차근차근 해결해나가겠다는 컨셉입니다.


굳이 여러 목표를 통해 강화학습을 진행하는 이유는, sparse reward (delayed reward) 문제 때문입니다.


일반적으로 강화학습으로 푸는 문제들 같은 경우 (강화학습 논문에서 진행하는 실험) 생존시간이나, 점수와 같은 매 state마다 reward가 발생하게 됩니다.  


각 state마다 action을 취하고 reward를 받고, reward의 총합이 maximum이 되도록 각 state에 대한 action의 q값을 찾아가게 되는데, 매 state마다 reward를 받지 못하는 경우가 있을 수 있습니다.



HDQN의 저자들은 atari - Montezuma's 라는 게임을 대상으로 실험을 진행하였는데, 아래 그림에서 볼 수 있듯이 캐릭터가 열쇠를 먹거나 유령에  부딪히거나 또는 다음 stage로 넘어가지 않는 이상 reward는 일어나지 않게됩니다. 이렇게 reward가 매우 드믈게 발생하는 현상을 sparse reward (delayed reward)라고 하고, 이러한 경우에는 DQN 을 통해서는 학습이 불가능 하다고 합니다.




본 논문에서 제시하는 아이디어는 아래 그림처럼 여러 목표를 설정해서 그 목표를 계층적으로 학습하는 것을 제안합니다.  연구를 구체화하기 위해 controller 와 meta controller를 도입하는데, 두개의 DQN 모형을 사용한다고 생각하시면 됩니다. Controller는 각 목표에 대해서 reward를 최대하도록 하는 DQN모형, meta-controller는 이 여러개의 목표를 관장하는 DQN 모형이라고 보시면 됩니다.




아래 그림을 보시고 HDQN에 대한 Notation을 헷갈리지 않도록 주의하셔야 합니다. DQN이 학습 되려면 당연히 reward가 필요합니다. Controller는 Intrinsic reward (목표달성 reward), Meta-controller는 extrinsic reward(에피소드 달성 reward)를 가지게 됩니다.  즉, controller는 설정해놓은 목표를 달성하기 위해서 어떤 action을 취하고 reward를 받게 됩니다. 예를 들어, Momtezuma's 게임에서 key를 획득하는 것을 목표로 설정한다고 한다면, key와 거리가 멀어지면 음수 reward, 가까워지면 양수 reward, key를 획득하면 큰 양수의 reward를 받도록 하는 것입니다( 이 부분은 제 생각입니다). 만약 key를 획득 하는 목표를 달성했다고 한다면, Meta-controller는 양수의 reward를 받고, 다음 목표를 controller에게 할당하게 됩니다. Enviroment내에서 agent가 행동하는 action은 실질적으로 controller내에서만 실행됩니다. 그러므로 Meta-controller내에는 action이 없습니다.





아래 두그림은 HDQN의 architecture입니다. 위에서 설명했던 바와 같이, Meta controller는 controller에게 목표를 할당하고(e-greedy방법으로) controller는 할당받은 goal을 수행하기 위해 (intrinsic reward를 최대화) 하기 위해 action을 수행하고 보상을 받고 학습을 진행합니다.

 


 각 controller의 Q-value function입니다. 일반적인 DQN의 Q-value function과 유사합니다. 다만 reward가 다른점, controller에게만 action이 있다는 점과 각 controller의 state의 index만 주의해서 보시면 됩니다. 학습하는 과정은 DQN과 거의 유사합니다.


알고리즘은 다음과 같습니다. 

Line 1-2 : 각 controller(DQN)를 초기화 시킵니다.

Line 4-5 :  초기 목표를 설정합니다(meta - controller 부터 e-greedy방법으로)

Line 7 : extrinsic reward를 0으로 설정합니다. 

Line 9-18 : 게임이 종료되거나(에피소드 종료) meta-controller부터 받은 목표가 달성될때까지 진행합니다.

  Line 10 : controller 로부터 optimal action을 받습니다(e-greedy 방법으로)
  Line 11-12 : extrinsic reward f와  intrinsic reward r 을 받습니다.

  Line 13 : controller의 replay memory에 state, goal, action, reward, next_state, next_goal을 저장합니다.
  Line 14-15 : 각 controller의 parameter 를 update 시킵니다(minibatch - gradient descent
                  (초기에는 저장해놓은 것이 없으므로 일정 에피소드 (또는 step) 가 진행된 이후에 학습이 진행 될 것 입니다.

  Line 16 : extrinsic reward를 누적해줍니다.

  Line 17 : next_state를 state로 바꿔줍니다. step이 넘어가면서 다음 controller가 받을 state인 것이죠 

Line 18 : 초기 state(goal을 시작하기 전 state)와 현재 goal, 현재 extrinsic reward(이 목표를 달성하면서 이정도의 reward가 모였다라는 것을 알기 위함이죠), 현재 state(목표를 달성했을때의 state)를 저장합니다. 

Line 20-21 : 만약 에피소드가 종료 되지 않았다면 새로운 목표를 받습니다(Meta controller부터 e-greedy방법으로)




 논문의 저자들은 HDQN을 Momtezuma's 에 적용한결과, DQN은 아예 학습이 되지 않는 반면 HDQN은 학습이 잘 진행되었다고 기술 하였습니다. 아래 그림을 보시면, DQN은 학습이 되지 않는 바면, HDQN는 잘학습이 되는 것을 보실수 있고, 세번째 그림을 보시면 총 6개의 목표를 설정한것을 확인 하실 수 있습니다. (어떤 목표를 설정해야 햘지 모르는 경우에는 어떡하지...?? 아마 다른 논문이 나와있겠죠.?). 비교적 간단한 아이디어로 특정상황(sparse reward)에서 문제를 잘 푸는 HDQN에 대해서 리뷰해 보았습니다 :)



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#


반응형

댓글