[1507.06527] Deep Recurrent Q-Learning for Partially Observable MDPs (arxiv.org)
이번 논문은 DQN에 LSTM을 추가해서 Partially Obervable MDP(POMDP) 상태일 때 vanilla DQN보다 성능하락을 줄여주는 연구를 리뷰할 것이다. DQN에 대한 리뷰는 아래 블로그 글을 참조하면 된다.
[논문 리뷰] Playing Atari with Deep Reinforcement Learning (DQN) — LimePencil's Log (tistory.com)
Abstract
Deep Reinforcement Learning has yielded proficient controllers for complex tasks. However, these controllers have limited memory and rely on being able to perceive the complete game screen at each decision point. To address these shortcomings, this article investigates the effects of adding recurrency to a Deep Q-Network (DQN) by replacing the first post-convolutional fully-connected layer with a recurrent LSTM.
이 논문에서는 DQN의 변형인 DRQN을 소개하고 있다. DRQN은 첫 번째 fully connected layer을 LSTM으로 대체하여 한번에 1개의 frame을 보고도 DQN과 비슷한 성능을 낼 수 있다. 더 중요한 것은 input이 지속적으로 주어지지 않고 flickering 할 때에 DQN보다 좋은 성능을 보여준다. 즉, Partially Obervable MDP(POMDP) 상태일 때 성능이 observability에 비례해서 증가한다.
Introduction
However, Deep Q-Networks are limited in the sense that they learn a mapping from a limited number of past states, or game screens in the case of Atari 2600.
DQN은 저번 리뷰에서도 다루었지만 4개의 frame을 stack 해서 학습한다. 이를 통해 속도와 예상 방향을 알 수 있는데 1개의 frame만 있다면 정적이기 때문에 어디로부터 와서 어디로 가는지 알 수가 없다. 즉 DQN은 4개의 frame밖에서 일어나는 상황은 기억할 수가 없다. 하지만 거의 모든 Atari2600게임은 이를 만족하기 때문에 MDP를 따른다고 볼 수 있다.
실제 세상에서는 그 이상으로 필요한 정보가 있을 수 있고 이는 MDP가 아니라 POMDP라고 정의를 해야 한다. 이때 상황에서는 evaluation 단계에서 DQN에 성능이 쭉 떨어지기 때문에 저자들은 LSTM을 DQN과 결합한 DRQN을 제시한다.
Partial Observability
POMDP는 6-tuple로 구성되어 있는데 이는 $(S, A, P, R, \Omega, O)$이다. 이는 $(S, A, P, R)$인 MDP와는 다르다. 여기서 agent는 $o \in \Omega$의 observation을 입력으로 받는다. 이의 확률은 $ o \sim O(s)$로 나타난다. 그냥 DQN과 여기서 차이가 나는데, $Q(o, a|\theta) \neq Q(s, a|theta)$이다. 즉 학습할 시에 완전한 state로 학습을 했다면, 다른 $o$가 나오는 순간 $Q$를 잘못 예측한다는 것이다. 여기서는 sequence of step으로 작동하는 recurrent network가 더 적합하다.
DRQN Architecture
DRQN은 DQN의 fully connected layer을 LSTM으로 교체한 간단한 구조이다. 이 구조를 택한 이유는 fully connected layer을 적용하거나 ReLU를 같이 사용하는 것보다 LSTM을 사용하는 방식이 더욱더 효과적이기 때문이다 (그냥 LSTM이 ReLU-LSTM에 비해 709% 성능 향상을 보여준다라고 되어있다). 다른 hyperparameter는 DQN의 그것과 동일하다.
Stable Recurrent Updates
이 논문에서는 recurrent layer을 업데이트하는 두 가지 방법을 설명한다.
1. Bootstrapped sequential updates: replay memory에서 에피소드 하나를 골라 처음부터 끝까지 업데이트를 한다. RNN의 hidden state는 episode동안 전달된다.
2. Bootstrapped random updates: replay memory에서 에피소드를 고르고 랜덤 한 순간부터 한 번의 backward call까지만 update 한다. 즉, RNN의 hidden state는 update마다 0이 된다.
여기서 hidden state를 사용할 수 있는 첫 번째 방법은 DQN의 random sampling policy를 위반한다. 실험에 따르면 두 가지의 policy다 비슷한 성능을 내기 때문에 복잡도를 줄이려 두 번째 방법인 bootstrapped random updates를 사용한다.
Atari Games: MDP or POMDP? / Flickering Atari Games
Atari 게임들은 4 frame을 stack 하면 게임의 모든 상황과 운동 방향을 알 수 있기 때문에 MDP라고 할 수 있다. 그래서 이 논문에서는 이 게임들을 POMDP로 만들기 위해 flickering probablity $p = 0.5$를 적용했다. 이는 각 frame마다 50%의 확률로 검은색 frame이 게임 화면 대신에 들어간다는 뜻이다. 속도를 agent가 알아내기 위해서는 여러 프레임이 필요한데 이는 flickering frame과 맞지 않는다. Convolution filter을 관찰한 결과 velocity의 예측이 conv layer위에서 일어나는 것을 볼 수 있다.
하지만 DRQN은 single frame이 입력으로 주어져도 성능을 잘 내는 것을 볼 수 있는데 이는 convolution의 영향이 아닌 LSTM의 영향이라고 볼 수 있다. RNN의 특성이 velocity detection을 도와주는 것이다. 이는 frame-stacking을 대체할 method가 LSTM이라고 볼 수 있다.
Evaluation on Standard Atari Games / MDP to POMDP Generalization
실험 결과를 보면 평범한 4 frame stack환경에서는 DRQN과 DQN의 성능 차이가 크게 나지 않는다. DQN이 조금 더 MDP상황에서는 좋은 성능을 내는 것을 볼 수 있다.
하지만, MDP로 training을 시키고 POMDP로 evaluation을 한다면 이야기가 달라진다. 바뀌는 observable probablity에 때라 DRQN이 이 상황에서는 DQN보다 성능 저하가 줄어들었다. 이는 즉 POMDP상활일 때 DRQN이 더 robust 하게 작동한다는 것을 보여준다.
Discussion and Conclusion
이 논문에서는 DQN을 변형하여 fully connected layer 대신에 LSTM을 사용하여 POMDP상황에서 더 좋은 성능을 내는 모델을 만들었다. 또한 single frame만으로도 필요한 속도 정보를 얻을 수 있다. Observability에 비례하는 성능을 DRQN이 보여주었고 MDP로 학습하여도 POMDP로 generalize 가능하다. 하지만 MDP상황에서는 어떠한 성능 향상이나 장점이 없다.