AI | ML/Reinforcement Learning

[RL] DQN(Deep Q-Network) 논문 리뷰

깜태 2024. 1. 18. 23:30
728x90

제목 + 링크: Playing Atari with Deep Reinforcement Learning

1. Introduction

  • 기존 RL은 hand-craft 기반으로 진행해왔는데, 성능이 feature quality에 의존적
  • 주변 분야(CV, NLP)에서 딥러닝을 이용해 많은 발전이 있어 RL에도 이점이 있을 것 같다고 생각
  • RL 환경에서 CNN을 기반으로 atari 게임 raw video input을 학습해 control이 가능한지 시도

2. Background

강화학습에서 agent는 상태에 따라 행동을 정해야 하는데, 현재 상태는 이전 상태와 연관되어 있다. 이는 MDP(Markov Decision Process)를 떠오르게 하고, 따라서 논문에서는 MDP의 방법을 RL에서도 적용하였다. RL에서 agent의 목표는 미래 보상을 최대화하도록 행동을 선택하는 것인데, 이를 수식으로 표현하면, 현재 시간 t로부터 끝나는 시간 T까지의 보상을 더하는 것과 같다.

  t시간 때 얻을 수 있는 보상 : \(R_t=∑_{t'=t}^Tγ^{t′−t}r_{t′}\)

그리고, agent 입장에서 어떤 행동을 취할 지 결정하는 수식은 다음과 같다.

\(Q∗(s,a)=max_π \mathbb E[R_t∣s_t=s,a_t=a,π]\)

이는 t라는 시간에 π 라는 정책이 주어졌을 때, a와 s 행동에 따라 보상을 최대화 시킬 수 있는 π값을 구한다는 의미이다.

RL 알고리즘의 기본 아이디어는 벨만 방정식을 반복적으로 이용해 action-value function을 예측하는 것이다. (위의 Q식이 t, t+1 ~ T까지 반복된다고 보면 된다) 논문에서는 신경망 구조를 이용해 Q-network를 설계해 매 시간마다의 loss를 최소화시키는 것을 Loss function으로 설계하였는데, 이를 수식으로 표현하면 다음과 같다.

\(L_i(θ_i)=E_{s,a∼ρ(⋅)}[(y_i−Q(s,a;θ_i))^2]\)

4. Deep Reinforce Learning

기존에는 Tesauro's TD-Gammon 라는 구조로 on-policy 방식으로 경험하는 즉시 방식을 업데이트하였다. 논문에서는 experience replay을 도입해 학습하였는데, experience replay란 agent의 각 time-step에서 일어나는 경험을 dataset으로 저장하는 것을 말한다.

학습은 experience replay를 이용해 dataset에서 mini-batch 사이즈의 데이터를 샘플링하고, e-greedy 알고리즘을 이용해 어떻게 행동할지 결정하면서 진행하는데 이 과정을 deep Q learning 이라고 하고, 알고리즘을 설명하면 아래와 같다.

deep Q learning 알고리즘

논문에서 주장하는 해당 Experience Replay를 이용한 구조의 장점은 기존의 Q-learning 보다 여러 장점들이 있다고 한다.

  1. on-policy의 경우 1번만 학습이 되는데 비해 Experience Replay에서 매 time-step의 경험은 데이터 효율성을 높이면서, 여러 번 학습될 수도 있다.
  2. 연속적인 데이터로부터 배우는 것은 강한 상관성이 있기 때문에 비효율적일 수 있는데, 샘플을 랜덤화하는 것은 이런 상관도를 깨뜨리며, 업데이트의 분산을 줄일 수 있다.
  3. on-policy에서는 해당하는 순간의 최고의 값만 보기 때문에 의도치 않은 곳으로 가기 쉬운 반면에, experience replay를 이용하는 경우 여러 경험들을 동시에 하고 평균화시키기 때문에 튀는 것을 피할 수 있다

중요한 것은, experience replay를 배울 때는 off-policy로 배워야한다고 한다. 왜냐하면 현재 파라미터들은 샘플을 생성할 때 사용되는 것과 다르기 때문이다.

4.1 Pre-Processing and Model Architecture

Atari 프레임워크에서는 210x160 이미지가 128픽셀의 depth를 가지고 진행되는데, 논문에서는 입력의 차원을 줄이기 위해 110x84 의 grayscale로 한번 변경하고, convolution 시에 입력이 정사각형이어야 하기 때문에, 최종 입력으로 게임 영역 이미지 84x84로 크롭해 진행한다.

논문에서는 신경망으로 Q를 설계하는 데에는 다양한 방법들이 존재하지만, Q는 Q-value를 측정하기 위해 history-action 페어를 사용한다. 이 구조의 주된 결함은 Q-value를 계산하기 위해 마지막까지 forward pass를 하면서 행동마다 순서대로 Q-value를 계산해야되는데, 행동이 증가할 수록 계산비용이 증가한다고 한다.

이 방법 대신에 논문에서는 액션마다 아웃풋이 따로 존재하고, 현재 state만이 입력으로 들어가는 구조를 제안한다. 이 구조의 장점은 Q-value를 계산하는데 한번의 forward만 해도 된다는 장점이 있다.

이렇게 진행한 결과로 최종 네트워크의 입력은 84x84x4가 되고, Convolution 레이어를 거친 최종 출력은 256개의 FC layer가 된다.

5. Experiments

논문에서는 게임에 상관없이 학습이 안정적임을 보여주기 위해 동일한 세팅으로 atari 내 7게임에 대해 실험했다.

조금 다른 점은 게임마다 점수 체계가 다르기 때문에, 긍정적인 보상에는 1, 부정은 -1, 변화가 없을 경우 0으로 설정했다. 이렇게 하면 보상의 강도를 구분할 수 없어 보상을 제한하기도 하지만 에러도 줄일 수 있고, 게임 별로 같은 learning rate를 적용하기 쉬워졌다고 한다.

5.1 Training and Stability

지도학습에서는 train/val 을 나눠 학습 중의 평가가 쉽지만, 강화학습에서는 평가하기가 어렵다. 처음에는 다른 논문에서 제안한 total reward와 game마다 진행된 episode 길이로 측정하였다. 이는 작은 변화에도 값이 크게 바뀔 수도 있다는 단점이 있어서, 새로운 측정 방법으로 주어진 상태로부터 정책을 따랐을 때 예상되는 보상을 측정하는 Q action-value function으로 측정하였다.

왼쪽 2개 : reward 기반 측정, 우측 2개 : Q 기반 측정

Q action-value function으로 측정한 결과는 학습 시간에 따라 Q 값이 증가하고, 매끄럽게 올라가는 것을 볼 수 있다.

5.2 Visualizing the Value Function

위의 그림은 학습이 얼마나 진행되는지 볼 수 있는 부분으로, 순서대로 A,B,C 부분을 보여준다. A 그림에서 제일 왼쪽의 적을 볼 수 있고, B그림에서 적을 격추하는 장면, C그림에서 격추한 결과를 볼 수 있는데, 제일 왼쪽 그래프에서 Q값이 변화하는 걸 보면 학습 내 value function이 잘 작동하고 있다는 걸 볼 수 있다.

5.3 Main Evaluation

논문 별 7종 게임 성능

 

평가를 위해 기존의 논문들과 비교했는데, 기존 논문들은 hand-craft로 사전 지식을 최대한 활용하여 atari 게임에서 지원하는 128 색을 각각 다르게 적용하여 만든 반면에 논문에서는 RGB만을 입력하였는데도 성능이 뛰어났다.

6. Conclusion

RL 분야에서 딥러닝 모델을 정의하고, 시도해본 결과 hand craft 를 쓰지 않고 raw input을 썼음에도 불구하고 기존의 논문들보다 성능이 향상된 걸 볼 수 있다.

728x90