본문 바로가기
  • 기술을 이야기하지만 사람을 생각합니다.
20. 인공지능과 딥러닝

스터디 | Playing Atari with Deep Reinforcement Learning

by WE DONE IT. 2020. 8. 9.

강화학습 배우기 위해 입문편으로 <Playing Atari with Deep Reinforcement Learning> 논문을 읽고 관련 자료 등을 참고하여 정리한 블로그입니다. 잘못된 부분이 있다면 말씀해 주세요!


Playing Atari with Deep Reinforcement Learning은 알파고를 만든 Deep Minde에서 2013년도 NIPS 워크샵에 소개한 논문이다.

1. Introduction

비전이나 음성처럼 높은 차원의 인풋(high-dimensional sensory input)은 강화학습 에이전트에서 직접 학습하기 어려웠다. 그나마 강화학습(Reinforcement learning, RL)은 대부분 hand-crafted feature에 의존했다. 최근에는 컴퓨터 비전의 낮은 센서 데이터에서 높은 차원의 피처를 추출하여 딥러닝하는 것이 가능해졌다. 이러한 접근을 RL에서도 활용하기 위해서는 몇 가지 과제가 있다.

  1. 딥러닝 모델을 성공적으로 만들기 위해서는 방대한 양의 hand-labelled 학습 데이터가 필요하다. 반면, RL은 reward를 통해서 학습이 이루어지며, 그. reward도 대부분 희소하며, noise도 딜레이되어 주어진다.

  2. 대부부의 딥러닝 모델에서 사용하는 샘플은 independent(독립항등분포, Independent and identically distributed)하다고 가정 한다. 반면, RL 알고리즘에서는 새로운 행동 등을 학습하는 과정이기 때문에 state 간에 correlatoin이 높다. 

이 논문에서는 위 두 가지 문제를 Experience Reply라는 방법으로 해결하며, 복잡한 RL 환경에서 raw video data를 성공적인 policy를 학습하기 위해 CNN을 접목한 과정을 보여준다.

 

연구의 목적은 단일 뉴럴 네트워크 에이전트에서 각각 다른 게임을 성공적으로 학습하는 것이다. 게임에 대한 특정 정보나 사람의 손을 거친 비주얼 피처 등을 제공하지 않고, 사람이 플레이하는 것처럼 1) 비디오 input, 2) reward, 3) terminal signal, 4) 긍정적인 action 만 제공하였다. 

Figure 1. Atari 2600 게임 스크린샷 (Pong, Breakout, Space Invaders, Seaquest, Beam Rider)

 

 

1. raw pixel을 받아와 directly input data로 다룬 것

2. CNN을 function approximator로 이용한 것

3. 하나의 agent가 여러 종류의 Atari game을 학습할 수 있는 능력을 갖춘 것

4. Experience replay를 사용하여 data efficiency를 향상한 것

 

 

2. Background

  • game action : 𝐴 {1, . . . , 𝐾 } 게임 내 경쟁자(emulator)를 지나고 internal state와 게임 점수를 높임
  • environment 𝜺
  • s𝑡 x1, a1, x2, ..., a𝘵 -1, x𝑡 (screen = x𝑡, sequcne = s𝑡)
  • 에이전트 목표 : 최대치의 future reward를 만들며 selecting action하여 게임 내 경쟁자와 상호작용

 

3. Deep Reinforcement Leanring

딥러닝에서 높은 차원의 음성, 비전 등의 데이터를 효과적으로 처리하기 위해 stochastic gradient descent를 기반으로 로우 인풋을 바로 학습하는 과정에서 착안하였다. 

Q-learning을 하면 몇 가지 장점이 있다.

  1. experience 각 단계에서 많은 가중치를 업데이트하여, 데이터를 더욱 효과적으로 처리할 수 있음
  2. 강한 상관관계(correlation) 때문에 연속된 샘플(consecutive sampel)을 직접적으로 학습하는 것은 비효율적임
    -> 샘플을 랜덤하게 사용하여 correlation 문제를 해결하며, 업데이트의 변동성 문제도 줄일 수 있음
  3.  

Q-learning 수식 (출처 : 

 

 

 

리플레이 버퍼

Transition이 한 단위임. 데이터를 리플레이 버퍼에 넣어두고 퍼옴. 

샘플들 사이의 코릴레이션이 깨져서, 랜덤하게 퍼오기 때문에, 1번 째, 183번 째 등  한 번 업데이트할 때 다른 샘플들을 보고 loss를 구하기 때문에 성능이 좋음

 

 

  1. 시뮬레이션할 때 매 틱마다 생성되는 Transition 튜플 (s_t, a_t, r_t, s_t+1)을 Replay Buffer에 저장
  2. Replay Buffer는 자동으로 가장 최신의 5만 개 튜플을 가지고 있음
  3. 학습 시, 5만 개 중 임의로 32개를 뽑아서 minibatch를 구성하여 학습함

타겟 네트워크

쌍둥이 네트워크를 만듦. Q가 업데이트하면서 자꾸 바뀌므로, 특정 state 동안은 타겟에 나오는 정답값을 고정하고 주기적으로 변경함. 

세타 i- = 세타 i

 

지도학습은 데이터의 분포가 바뀌지 않음, 모델이 너무 유연해서 데이터에 민감하게 반응하여 데이터를 고정됨

강화학습은 데이터 분포가 계속 바뀜 > 데이터는 에이전트가 쌓이는 건데, 에이전트의 정책이 계속 바뀜 > 에이전트가 보는 데이터 분포가 계속 바뀜 (=행동하는 애가 계속 바뀜)

 

 

리플레이 버퍼와 타겟 네트워크 둘 다 사실은 지도학습을 학습하는 방법임. (10,000 스텝 정도 고정시킴) 

 

넣었을 때, 안 넣었을 때 모두 비교했더니 넣는 게 더 좋음

 

 

 

 


References

 

Machine learning 스터디 (20) Reinforcement Learning - README

들어가며 첫 글에서 Machine Learning은 크게 세 가지로 구분된다는 얘기를 했었지만, 지금까지 다뤘던 주제들은 모두 supervised learning이거나 unsupervised learning이었다. Reinforcement learning은 그 둘과는 구�

sanghyukchun.github.io

 

 

Playing Atari with Deep Reinforcement Learning (NIPS 2013) - README

이번에 리뷰할 논문은 Google DeepMind가 NIPS 2013에 발표한 Deep Learning과 Reinforcement Learning을 결합한 Playing Atari with Deep Reinforcement Learning 이라는 논문이다. 그 전에도 DNN과 RL을 결합하려는 시도는 있었�

sanghyukchun.github.io

 

 

[Ch.2] Markov Decision Process

저번 포스팅에서 '강화학습은 Markov Decision Process(MDP)의 문제를 푸는 것이다.' 라고 설명드리며 끝맺었습니다. 우리는 문제를 풀 때 어떤 문제를 풀 것인지, 문제가 무엇인지 정의해야합니다. 강화

sumniya.tistory.com

 

 

[Ch.3] Bellman Equation

이번 포스팅에서는 Ch.2의 연장선으로 MDP로 정의된 문제를 풀 때 등장하는 2가지 value function들의 관계에 대해 다루겠습니다. Ch.2의 state value function과 action value function들의 관계로 현재 state/a..

sumniya.tistory.com

 

 

댓글