본문 바로가기

> Reinforcement Learning/> Key Paper

[강화학습 Key Paper] Deep Q Network

본 포스트는 OpenAI에서 공개한 강화학습 교육자료인 Spinning Up의 도움을 받아, 강화학습(Reinforcement Learning, RL)에 대한 기초개념을 정리해보고자 제작한 시리즈의 일환입니다.

1)기초 지식 2)주요 논문, 3)최신 논문 의 순서로 시리즈를 정리하고자 합니다.

Spinning Up에서 정리해놓은 주요 RL 논문 중, 핵심 논문을 추려 리뷰를 진행합니다. 본 포스트를 읽기 전, 해당 논문을 가볍게 읽어보는 것을 추천합니다. Key idea에 대해 가볍게 파악할 시간을 가져보고자 합니다. 아래 링크에서 더욱 다양한 추천 논문을 찾아볼 수 있습니다.

Key Papers in Deep RL - Spinning Up documentation
What follows is a list of papers in deep RL that are worth reading. This is far from comprehensive, but should provide a useful starting point for someone looking to do research in the field.
https://spinningup.openai.com/en/latest/spinningup/keypapers.html

Deep Q-Learning

분류: Model-Free RL/Deep Q-Learning/DQN

이번 포스트에선 2013 NIPS(Neural Information Processing Systems)에 발표되어 강화학습의 붐을 일으키고, 2015 NATURE에 개선되어 투고된 DQN 논문을 리뷰해보고자 합니다. 2013 NIPS버전으로 리뷰를 진행할 것이며, AlphaGo를 개발한 Google DeepMind에서 쓰인 논문입니다.

Abstract

Abstract을 함께 볼까요? 본 논문에서는 이미지나 자연어같은 high-dimension input이 인가되었을 때, agent의 control policy를 효과적으로 학습시키는 deep learning model을 제안합니다. Atari 2600과 같은 6종의 아케이드 게임에서 기존 연구결과를 뛰어넘었으며, 그 중 3종의 게임에 대해 인간 전문가를 뛰어넘었습니다. 본 연구의 경우, Atari game의 raw-pixel들을 input으로 사용하고, output이 value function인 convolutional neural network(CNN) model을 학습시킵니다.

Problems

본 논문이 발표되기 전까지는, 이미지(vision)나 자연어(speech, NLP)같은 high-dimensional data, 혹은 Cartpole처럼 연속적인 state값을 가지는 경우는 reinforcement learning(RL)에 사용되기 굉장히 어려웠습니다. 그나마 사람의 손으로 pre-processing하는 정도가 전부였으며, data의 품질에도 의문을 품기 쉬웠지요. 물론 deep learning(DL)을 computer vision, speech recognition 등 분야에 접목시키기 위한 연구가 꾸준히 이루어지면서 convolutional neural network(CNN), recurrent neural network(RNN), multilayer perceptron(MLP), restricted Boltzmann machine 등 다양한 기법들이 개발되었지만, RL에 이를 적용하는데 몇가지 issue가 있었습니다.

1. 통상 DL의 경우 hand-labelled training dataset(e.g. 고양이사진+'고양이')을 요하지만, RL의 경우 학습을 위해 고작 scalar인 reward값밖에 주어지지 않습니다. 심지어 이 reward조차 sparse, noisy, delayed되어있는 경우가 대다수입니다. 2. 통상 DL의 경우 sample data가 independent and identically distributed(i.i.d)하다고 가정하지만, 현재 state가 다음 state에 지대한 영향을 끼치는 RL의 특성상 data간의 correlation이 큽니다. RL의 algorithm(e.g. policy)이 학습되며 생성되는 data분포 역시 달라집니다.

본 논문에선 위에서 언급한 두 가지의 issue를 experience replaytarget network라는 방법을 통해 해결합니다. Input으로 state를, output으로 Q(s,a)를 갖는 function approximator를 neural network(NN)으로 생성합니다. 아래와 같은 7종의 Atari게임을 학습시켰고, 우월한 성능을 얻어내었습니다.

Experience Replay

통상의 Q-learning의 경우, agent의 on-policy sample st,at,rt,st+1,at+1s_t, a_t, r_t, s_{t+1}, a_{t+1}를 통해 parameter를 update하였습니다. 다만 on-policy learning의 특성상 sample간 correlation이 커져 policy가 발산하거나 local minimum에 빠져 성능이 하락할 수 있습니다. 만약 policy가 agent를 왼쪽으로 움직이게 한다면, 다음에 획득되는 sample들은 agent가 왼쪽에 머물러있는 상황에 의존할 수밖에 없겠죠. Experience replay는 각 time-step별로 얻은 sample을 시열대 순으로 아래와 같이 유한한 크기의 dataset에 저장합니다. 그 후 학습에 쓰일 sample을 무작위로 추출하여 mini-batch를 구성, parameter를 학습시킵니다.

et=(st,at,rt,st+1),D=e1,e2,...eNe_t = (s_t, a_t, r_t, s_{t+1}), \mathcal{D} = e_1, e_2, ... e_N

또한 RL을 적용시킬 case에 따라 input의 size 내지는 length가 달라질텐데, function ϕ\phi를 정의하여 input을 pre-process하여 size를 고정시킵니다.

Experience replay의 장점을 살펴볼까요? Data sample을 일회적으로 update하고 버리는 통상의 방법과 달리, 재활용이 가능해 data를 효율적으로 사용할 수 있고, 위에서 제기한 correlation문제를 해결할 수 있습니다.

Target Network

우리는 Bellman equation에 의거하여 DQN의 weight를 update하기 위해 아래와 같이 loss function Li(θi)L_i(\theta_i)을 설정합니다. 보시는 것처럼 mean squared error(MSE)를 이용하였죠. (ii: iteration, ρ(s,a)\rho(s,a): behavior distribution, yiy_i: target)

Li(θi)=Es,aρ()[(yiQ(s,a;θi))2]where yi=r+γmaxaQ(s,a;θi1)L_i(\theta_i) = \underset{s,a\sim \rho(\cdot)}{\mathbb{E}} \left[ \left( y_i - Q(s,a;\theta_i) \right) ^2 \right] \\ \text{where} \space y_i = r+\gamma \max_{a'}Q(s',a';\theta_{i-1})

Target network는 DQN과 똑같은 NN을 하나 더 만들어, weight값이 띄엄띄엄 update되도록 설계합니다. 학습 도중 weight의 update로 target이 변한다면 Q의 approximator(estimate)가 어디(optimal value)를 향해 수렴해야할 지 파악하기 힘들어지며, 이를 방지하기 위함입니다(Non-stationary target problem).

Implementation

DQN의 pseudo-code는 아래와 같습니다. Experience replay와 target network기법이 적용되어 있습니다.

위 알고리즘을 간단한 block diagram으로 나타내보았습니다.

Target network에 학습된 현 Q network의 parameter θ\theta를 업데이트하는 주기 NN 또한 tuning이 필요한 hyperparameter입니다.

이후에도 double DQN, dueling DQN, rainbow DQN 등 여러 개선버전들이 등장했습니다. 차후 차근차근 알아보겠습니다.

Reference

[1] R. S. Sutton, A. G. Barto, et al., Introduction to reinforcement learning, vol. 135. MIT press Cambridge, 1998.

[2] OpenAI. Spinning Up, [Online]. Available: https://spinningup.openai.com/

[3] Playing Atari with Deep Reinforcement Learning, Mnih et al, 2013.

'> Reinforcement Learning > > Key Paper' 카테고리의 다른 글

[강화학습 Key Paper] Dueling DQN  (0) 2020.09.13
[강화학습 Key Paper] Double DQN  (0) 2020.09.03