Playing Atari with Deep Reinforcement Learning

Abstract
첫번째로 High-demensional 센서 인풋을 사용하여 RL을 학습하는데 성공하였습니다. CNN과 변형된 Q-learing을 사용하였습니다. 입력값은 raw pixels, 출력값은 미래 보상을 추정하는 Value function 입니다. 2600개의 아타리게임을 별도의 조절없이 적용하였으며, 이중 6개는 이전보다 뛰어났으며 3개는 전문가들을 뛰어 넘었습니다.

Introduction
Agents를 시각 혹은 음성 같은 High-deminsinal 센서 입력을 직접 입력받아 agents를 학습 시키는 것은
RL의 오랜과제중 하나 였습니다. 이런 도메인에서 가장 성공한 RL은 linear value fuction 이나
Policy representations이 결합된 수작업 feature에 연관되어 있습니다. 이러한 시스템의 성능은
feature의 표현 품질에 연관이 있다고 할수 있습니다.

최근 딥러닝은 raw 센서 데이터로 부터 high-level feature를 뽑아서 vision, speech 분야에 활용함으로써 획기적인 발전을 이뤄내고 있습니다. 뉴럴 네트워크, CNN, 멀티 퍼셉트론, 제한 볼츠만머신, RNN 등의 방법이 있는데, 센서데이터가 있는 RL에 이 방법이 효과적인지 확인해보고 싶습니다. (2013년 경에는 alex net이라던지 각종 cnn이 활약하는 시대였을것음)

그러나 RL은 여러 문제가 있는데
첫째 딥러닝은 수많은 hand-labelled된 훈련 데이터가 필요한데, RL은 자주발생되는 sparse, noisy, delayed된 결과 reward로 부터 학습되어야 합니다. Supervised 훈련은 input과 target이 직접적으로 연결된 것에 비해, action 과 resulting rewards로부터의 지연은 특히 자신없게 만듭니다.
또다른 이슈는 딥러닝의 데이터 샘플은 독립적이어야 하는데, RL의 상태 시퀀스는 서로 연관이 되어 있습니다.
게다가 RL은 데이터 분포가 새로운 행동마다 바뀌게 되는데, 고정확률 분포를 가정하는 딥러닝 방법에 문제가 될 수 있습니다.

복잡한 RL환경인 raw 비디오로부터 CNN을 사용하여 이러한 문제를 성공적으로 극복하고 policies를 훈련시켰습니다. 변형된 Q-Learning 알고리즘과, SGD(Stochastic gradient descent)를 사용하여 네트워크를 훈련시켰습니다. 데이터끼리 연관되어 있는 문제를 해결하기위해 이전상태의 집합을 무작위로 선택하는 알고리즘인 experience replay mechanism을 사용하여 이전행동에 대한 많은 학습 분포를 부드럽게 만들었습니다.
Atari게임에 적용하였고, 우리의 목표는 하나의 neural network agent가 가능한 많은 게임을 배우는 것입니다.
네트워크에게는 특정 게임의 정보나, 손으로 디자인된 feature정보를 제공하기 않았으며,애물레이터 내부정보도 없고, 기본적으로 아무런 정보 없이 비디오 input과 결과, 단말기 신호만으로 사람 플레이어가 마찬가지의 정보로만 배웠습니다. 추가로, 네트워크의 아키텍쳐와 하이퍼 파라미터는 모든 게임에 같게 유지되었습니다.
결과, 시도한 7개의 게임중에서 6개는 이전의 RL 알고리즘을 능가 했으며 그중에 3개는 전문가를 뛰어 넘었습니다.

Background

환경은 E(엡실론) atari게임 에뮬레이터라고 하고, sequence of action, observation and rewards로 되어 있다.
매 time-step마다 agent는 action 을 선택합니다(at) 이것은 internal state와 game score를 변경시킵니다.
E(엡실론)은 stocastic 하다.
agnet는 애뮬레이터의 internal state를 알수 없으며, 대신 row pixel(input)로 받는다.
game score가 reward 이다. game score는 전단계의 sequence of action과 observations에
영향을 받으며 피드백은 많은 time-step 후에 이루어진다.

agent는 현재 화면의 이미지만 관측하며, 이것은 현재 상황을 완전히 이해하는것은 불가능하다.(현재화면 xt)
그래서 sequnces of actions 과 observations 고려해서 st를 정의 하는데
st = x1, a1, x2…,at-1, xt 라고 하고(experience), 게임학습은 이런 sequence에 의해서 할수 있습니다.
그리고 모든 sequence는 결국 끝나기 때문에 MDP라고 가정할수 있고,
그래서 우리는 RL훈련을 MDP에 적용할수 있습니다.
RL의 기본 Concept에 대해서 알아보면
Experience는 sequence of observ, action ,reward로 state다.

policy 는 내가 어떤 상태에 있을때 agent의 어떤 행동을 하느냐를 결정하는것
한 상태에서 똑같은 액션이 오는것을 deterministic policy이라 하고, 확률값이 오는 Stochastic Policy도 존재 한다.
value fuction 은 상태나 액션이 얼마나 좋으냐를 판단
model은 agent’s의 현재 환경을 표현한다.

Value Fuction?
이상황에서 Value가 얼마냐. 내가 이런 상황에서 action 을 하면 받을수 있는 reword가 얼마냐?를 알려주는 함수
Q-value fuction 이라고 부른다. Q라는것은 어떤 상황에서 어떤 행동을 했을때 받게 되는 reword를 expect 하는것
지금 받는 reword, 나중에 받는 reword를 discount factor를 사용해서 나타낼수 있다.
결국 학습을 한다는 것은 Q를 배운다는 것인데,value 펑션을 Bellman equation으로 나타낼수 있다.
Q펑션을 Bellman equation으로 바꾸면 바로 받은 리워드앞으로 나오는 Q펑션에서 가져올수 있는 최대 값을 더하면 된다.

Optimal Value Fuction?
Q펑션에 *가 붙으면 Optimal Q value 펑션이라 하고, 이것은 어떤 상태에서 어떤 행동을 할때 받을수 있는 최대 값을 나타낸다.
우리가 옵티멀한 Q를 알고 있다면 우리는 항상 올바른 action을 할수 있다.
그러면 옵티멀 Q를 자세히 풀어서 보면 모든 Q에서 최대값을 가져오는 것이고,
그것을 다시 쓰면 Bellman equation이 된다.
일단 여러 RL이 있는데 먼저 Q value를 푸는 Value-based RL을 알아보자

Q Fuction을 Q network로 변경하면
옵티멀한 Q펑션을 구하고 싶으면 그냥 Q펑션에 weight를 곱해서 이게 옵티멀한 Q펑션을 구할수 있음


Q Network 훈련 방법
여기부터 헤깔리는데, 옵티멀 Q펑션은 bellman equation을 통해 구할수 있음. 앞에서 이야기 함.
우리의 현재 값으로 Q펑션을 구하는것이 Q(s,a,w)[Y’]
현재 reward값과 Bellman equation으로 구한 옵티멀 Q의 값[Y]
간단한 mse로 Y-Y’을 빼서 loss구함
Bellman equation값이 Y값 Q(s,a,w)가 Y’이다.
Q는 한정공간에서 Table로 최적의 해를 구할수 있다는것이 증명됨.
그러나 과연 훈련이 될까?? 옛날에는 안되었으나, CNN을 자동학습된 feature를 사용하였고,
Experience replay를 통해 입력데이터의 연관성을 배제 시키니 학습이 되기 시작함

Deep Reinforcement Learning

최근의 컴퓨터 비전과 음석 인식은 딥러닝에서 효과적이었다. raw이미지를 직접 넣어서 SGD로 훈련하는것이 가장 성공적인 접근방법이고, 많은 데이터로 훈련하는게 손으로 만든 Feature보다 좋다.
이런것을 가지고 RL에 딥러닝을 접목시켜 RGB이미지로 직접 교육데이터를 효과적으로 처리할 수 있었다.

Tesauro’s TD-Gammon architecture 이러한 접근방식의 출발점을 제공하였고,  이 방법은 이미 20년전에 사람 주사위 게임을 능가 할수 있었기 때문에 최근 기술이 발전된 상황에서 얼마나 RL이 발전할수 있는지 알고 싶었다.

TD와는 다르게 Experience replay를 사용하였다.이 기법은 time-stemp에서 agent가 경험한 것을 저장하고(에피소드), 각 에피소드가 데이터 셋으로 저장된다. 저장된 데이터 셋에서 임의로 추출한 경험 샘플을 가지고 Q learning 학습한다.

experience replay를 한후 agent는 greedy policy에 따라 action을 실행한다.
딥러닝에 임의의 길이의 input은 어려우므로 Q러닝에 나온 fixed length reporesentation을 사용한다.
이것을 Deep Q learning이라 한다.

Experiments

과연 Q 펑션이 학습이 될까?
reward는 들쑥 날쓱 하는데 Q fuction의 값을 지속적으로 높아지는것을 볼수 있다.

결과는 좋음


결국 논문의 내용은 high-demension 데이터를 직접 input하여 RL로 훈련하여 low demension 인 몇개의 행동을 예측하게 만들었는데, 수많은 주식 시장의 데이터를 Image 나 혹은 raw data로 직접 입력하고, low demension 팔거나, hold한다로 예측하면 주식 로보어드바이저를 만들수 있지 않을까?
근데 주식시장은 episode가 게임처럼 끝나는 것이 아닌데, MDP가 적용이 될수 있을지?
특정 상태인 돈을 10%이상 번다를 끝나는 상태로 보고 MDP를 가정해서 데이터 셋을 만들고 RL로 훈련하면 되지 않을까? 싶기도 하고, 시간나면 한번 해보고 싶다.

Leave a Reply

Your email address will not be published. Required fields are marked *