[논문 요약] DQN: Playing Atari with Deep Reinforcement Learning

Lia·2022년 12월 24일
0

papers

목록 보기
5/7

2013년 구글에서 발표한 'Playing Atari with Deep Reinforcement Learning' 논문을 읽고 정리한 글입니다. 원문 보러가기

1. Introduction

vision과 speech와 같은 높은 차원의 입력값으로 부터 에이전트를 직접적으로
통제할 방법을 학습하는것은 강화학습 에서의 오랜 문제였습니다.
이 문제를 성공적으로 해결한 강화학습 적용 방식들의 대부분은
hand-crafted feature에 의존하여 그 성능이
feature representation의 quality에 의존하게 되었습니다.

최근(2013년 기준) 딥러닝 분야에서의 발전은 raw sensory data에서
high-level 특성을 나타내는(extract)것을 가능하게 했습니다.
이는 비슷한 기법으로 강화학습에도 큰 도움을 줄수도 있다는 생각을 하게 했습니다.

하지만 딥러닝의 관점에서 강화학습은 몇가지 문제점을 보였습니다.

먼저 대부분의 성공적인 딥러닝 프로그램들은 많은 양의 라벨링된 데이터들이 필요 하지만
반면 강화학습 알고리즘들은 scalar reward signal로 부터 학습해야 합니다.

또 다른 문제는 대부분의 딥러닝 알고리즘들은 독립적으로 데이터 샘플들을
예측하는 반면, 강화학습은 correalated states를 맞닥뜨리게 됩니다.

게다가 강화학습에서 데이터 분포는 강화학습 알고리즘이 새로운 행동을
학습할때 마다 변하게 됩니다. 이는 딥러닝의 방법에서 문제가 될수도 있습니다.

본 논문은 합성곱 신경망이 이러한 문제들을 극복하고 복잡한 강화학습 환경에서
비디오 데이터(시각적 정보)로 부터 정책을 다루는 방법을 학습하는것을 증명합니다.

앞서 설명한 상관적인 데이터와 유동적인 데이터 분포 문제를 해결하기 위해
본 논문에서는 경험 리플레이(experience replay mechanism) 기법을 사용하였습니다.

2. Deep Reinforcement Learning

논문에서 선보인 알고리즘은 기존의 Q-Learning을 뛰어넘는 이점을 가지고 있습니다.

먼저, 각 스텝에서의 경험은 잠재적으로 많은 가중치 업데이트에 사용되고,
이는 뛰어난 데이터 효율성(data efficiency)을 가능하게 합니다.

둘째, 연속적인 샘플로 부터 직접적으로 학습하는 것은 샘플들 간
강한 상관간계에 의하여 비효율적이기 때문에 샘플들을 무작위로 추출하는데
이는 상관관계를 무너뜨리고 업데이트를 안정적이게 도와줍니다.
(randomizing the samples breaks these correlations and therefore reduces the
variance of the updates)

논문에서 말하는 Deep Q-Learning with experience replay는 아래와 같습니다.

이때 Q 함수는 CNNs를 사용한 인공 신경망 입니다.

2-1. Preprocessing and Model Architecture

저자들은 논문에서 사용한 ALE(Arcade Learning Environment)의 아타리 환경에서
210 X 160 크기의 이미지를 그대로 사용하지 않고 전처리과정을 거친 후 사용하였습니다.

먼저 RGB 입력을 gray-scale의 이미지로 변환 후 110 X 84 크기의 이미지로
다운샘플링을 진행하고, 최종적인 이미지의 크기는 84 X 84로 전처리가 진행됩니다.

논문의 저자들은 단일 프레임의 이미지로는 상황을 완전히 이해하기에는 어려움이
존재한다고 생각하여 4개 프레임의 이미지를 쌓아 Q 네트워크에 전달합니다.
(최종적인 입력 이미지 크기 = (84, 84, 4))

논문에서 사용한 Q 네트워크의 구조는 다음과 같습니다.

  1. 입력으로 (84, 84, 4) 크기의 이미지가 들어온다.
  2. 8 X 8 크기의 16개 커널이 합성곱을 진행한다. (stride=4)
  3. 4 X 4 크기의 32개 커널이 합성곱을 진행한다. (stride=2)
  4. 256개의 유닛을 가진 완전 연결층을 통과한다.

3. DQN with Pytorch & Gym

Target Network

실습을 진행하기 이전에 먼저 알고 가야할게 있습니다. 바로 타겟 네트워크라는 개념입니다.
사실 타겟 네트워크는 본 논문에서 소개된 개념은 아닙니다.

2015년 네이처에서 공개된 "Human-level control through deep reinforcement learning"
논문에서 소개된 개념으로 훈련의 안정성을 증대시키기 위해 도입되었습니다.

타겟 네트워크는 yjy_j를 예측하기 위해 특정 스텝마다 네트워크를 복제하여 생성합니다.

아래 링크의 본문 코드는 OpenAi의 Gym 환경을 이용하여 DQN 학습을 진행하는 코드입니다.

강화 학습 (DQN) 튜토리얼

profile
하고싶은게 많아요

0개의 댓글