키워드
1. 딥러닝과 RL을 결합한 DQN 알고리즘을 통해 아타리 게임에서 인간 수준의 성능을 달성. CNN을 사용하여 상태를 특징으로 변환하고, Q-learning을 통해 행동 정책을 학습함.
2. "Playing Atari with Deep Reinforcement Learning"
3. DQN, experience replay, Q-learning
Deep Reinforcement Learning
이전의 준수한 성능을 보인 reinforcement learning 모델들은 주로 hand-crafted features에 크게 의존되어 발전해왔다. 이러한 방식의 RL은 성능이 제한적일 수 밖에 없다. 이에 최근 컴퓨터 비전, 음성 인식 등에 획기적인 발전을 보인 deep neural network 방식을 RL에 도입하였다. 다만 유효한 효과를 얻기 위해 다른 분야의 딥러닝과는 다른 RL 만의 문제가 존재한다.
먼저 대부분의 분야는 라벨링이 되어 있는 대량의 훈련 데이터가 필요하다. 하지만 RL은 sparse, noisy, delayed한 특성이 있는 reward로부터 학습한다. 그리고 수천 단계에 달할 수 있는 action과 reward 사이의 간격은, 지도 학습에서 입력과 목표 간의 직접적인 연관성과 비교하여 모델링이 상대적으로 더 어렵다. 마지막으로 다른 딥러닝 알고리즘은 데이터 샘플이 독립적이라고 가정한다. 하지만 RL에서는 일반적으로 상관 관계가 높은 상태의 시퀀스를 접한다. RL은 학습이 진행되면서 데이터 분포가 변경되는데, 이는 고정된 기본 분포를 가정하는 기존 딥러닝 방법과는 다른 알고리즘을 필요로 한다.
DQN은 Q-learning의 변형으로, 입력이 원본 이미지이며 출력이 미래 보상을 추정하는 value function으로 구성된 학습할 수 있는 딥러닝 모델이다. 기존 딥러닝의 문제를 완화하기 위해 experience replay mechanism을 사용하며, 이전 transition을 무작위로 샘플링하여 많은 과거 behavior를 통해 훈련 분포를 smoothing 하였다.
Reinforcement Learning
에이전트는 action, observation, reward를 통해 environment와 상호 작용한다. 이 과정은, 먼저 각 time step에서 에이전트가 action space 내에서 특정 action 𝑎𝑡을 선택한다. 𝑎𝑡는 emulator로 전달되어 state와 score를 수정한다. 여기서 에이전트는 emulator의 내부를 직접적으로 관찰하지 않고, 대신 새로운 현재 화면을 관찰하고 보상 𝑟𝑡를 받는다. Score는 이전의 action과 observation에 따라 달라지며, action에 대한 피드백은 특정 time step이 경과한 후에 받게 된다.
에이전트의 목표는 미래의 reward를 최대화하는 방향으로 action을 선택하는 것이다. 최대 reward 기대값은 optimal action-value function 𝑄*(𝑠,𝑎)로 정의되며, bellman equation(벨만 방정식)으로 표현된다. 최적점을 찾기 위한 전략은 다음 시퀀스 𝑠'의 최적 값 𝑄*(𝑠′,𝑎′)이 가능한 모든 작업 𝑎′에 대해 알려진 경우, 𝑟+𝛾𝑄*(𝑠′,𝑎′)를 최대화하는 action 𝑎′ 를 선택하는 것이다. Discount factor 𝛾는 time step당 미래의 reward가 줄어드는 비율이다.
많은 RL의 기본 아이디어는 벨만 방정식을 iterative update를 통해 action-value function을 추정하는 것이다. 그 중 Value iteration 알고리즘은 action-value function 𝑄𝑖를 optimal 𝑄*로 수렴시키는 알고리즘이다. 하지만 이런 접근 방식은 정확하지(impractical) 않다. 그 이유는 action-value function이 일반화 없이 각 시퀀스에 대해 개별적으로 추정되기 때문이다. 이에 function approximator를 사용하는 것이 일반적이며, Q-learning은 가중치 𝜃를 갖는 neural network function approximator를 사용한다.
Q-Network
Q-Network은 각 iteration 𝑖에서 변경되는 손실 함수 𝐿𝑖(𝜃𝑖)을 최소화하는 방향으로 학습된다. 가중치에 따라 손실 함수를 미분하여 기울기도 구할 수 있다. Target은 네트워크 가중치에 따라 달라지며, 이는 학습이 시작되기 전에 목표가 고정되어 있는 일반적인 지도 학습과 대조된다.
전체 기대값을 계산하는 대신, SGD를 통해 손실 함수를 최적화하는 것이 계산적으로 더 편리하다. 즉, 매 time step 후에 가중치가 업데이트되고 기대치(expectatioin)가 단일 샘플로 대체되면 이는 Q-learning 과 동일해진다.
Q-learning은 emulator를 명시적으로 구성하지 않고 emulator의 샘플을 사용하여 강화 학습을 하는 model-free한 특징을 가지고 있다. 그리고 behaviour distribution을 따르지만, greedy strategy “a = max(Q(s, a; θ))”를 학습하는 off-policy 특성도 가지고 있다. Q-learning은 이전에도 experience replay 및 간단한 NN과 결합되었으나, 원본 이미지가 아닌 저차원으로 전처리된 입력이 사용되었다.
Deep Q-Network (DQN)
DQN은 RGB 이미지를 RL에 직접적으로 사용하고, 데이터를 효율적으로 처리하는 NN을 활용하여 SGD를 통해 학습한다. 여기에 experience replay 기술을 함께 활용하였다. 이는 각 time step에서 에이전트의 경험 𝑒𝑡 = (𝑠𝑡,𝑎𝑡,𝑟𝑡,𝑠𝑡+1)를 replay memory에 저장해두고, Q-learning 시 무작위로 샘플을 추출하여 update 하는 방식이다. Experience replay를 수행한 후 에이전트는 𝜖-greedy 에 따라 작업을 선택하고 실행한다. 이러한 방식은 여러 가지 장점을 제공한다.
- 첫째, 각 단계는 잠재적으로 많은 가중치 업데이트에 사용되므로 데이터 효율성이 향상된다.
- 둘째, 연속된 샘플을 학습하는 것은 샘플 간의 강한 상관 관계로 인해 비효율적이다. 이에 샘플을 무작위로 추출하면 이러한 상관 관계가 깨져 업데이트의 분산이 줄어든다.
- 셋째, on-policy 방식은 파라미터가 훈련된 후에 다음 데이터 샘플을 결정한다. 예를 들어, maximizing이 왼쪽으로 이동하는 것이라면 훈련 샘플은 왼쪽으로 이동하는 샘플이 지배적이다. 다만 experience replay를 사용하면 행동 분포가 이전 state의 여러 부분에 걸쳐 평균화되어 학습이 원활해지고 파라미터의 진동이나 발산이 방지한다. 즉, experience replay를 통해 학습할 때는 off-policy 방식으로 학습되어야한다.
Architecture
게임 화면을 우선 110×84 이미지로 다운샘플링하여 전처리한 뒤, 84×84 영역을 잘라서 입력으로 사용한다. 또한 마지막 4개 프레임을 한번에 입력으로 제공한다. 그리고 가능한 action 별로 별도의 출력이 있으며, 각 출력은 입력 state에 대한 예측된 Q 값에 해당한다. 이를 통해 단일 forward pass만으로 특정 state에서 가능한 모든 action에 대한 Q 값을 계산할 수 있다. 이에 최종 출력 레이어는 게임 별 action 수에 따라 크기가 다르며, fully-connected linear 레이어로 구성된다.
훈련
테스트된 7개 게임 모두에서 동일한 아키텍처, 학습 알고리즘 및 하이퍼파라미터 설정을 사용하였다. 이를 통해 게임 별로 최적화하지 않고도 다양한 게임에서 작동할 수 있다는 것을 보여준다. 또한 게임에 상관 없이 모든 긍정적인 보상을 1로 고정하고 모든 부정적인 보상을 -1로 고정했다. 이렇게 보상을 클리핑하면 error의 크기가 제한되고 여러 게임에서 동일한 learning rate을을 사용할 수 있다.
RL에서는 훈련 중 에이전트의 진행 상황을 정확하게 평가하는 것이 어렵다. 위 그래프 중 왼쪽 2개는 에이전트가 여러 게임에 걸쳐 평균적으로 수집한 총 reward다. 평균 reward는 policy 가중치의 작은 변화가 state 분포의 큰 변화로 이어질 수 있기 때문에 매우 noisy한 경향을 보인다. 학습 또한 이로 인해 꾸준히 발전하지 못하는 것처럼 보인다.
또 다른 측정항목은 policy의 action-value function 𝑄에 대한 추정치다. 에이전트가 특정 state에서 policy를 따를 때 어느 정도의 보상을 얻을 수 있는지에 대한 정보를 제공한다. 오른쪽 2개 그래프처럼 이를 활용한 훈련에서 비교적 원활한 개선을 볼 수 있을 뿐만 아니라, 어떤 실험에서도 발산 문제가 발생하지 않았다. 이는 비록 이론적으로 수렴 보장이 부족하지만 학습이 가능하다는 것을 시사한다.
결과
위는 value function을 시각화한 것이다. A 지점은 적이 나타난 후 Q 값이 증가한 것을 알 수 있다. 이후 B에서 어뢰가 적을 명중하려고 할 때 Q 값이 최고조에 달하고, C에서 적이 사라진 후 값은 대략 원래 값으로 돌아오게 된다.
여러 RL 알고리즘과 비교한 표다. RL 외에도 사람이 직접 플레이한 점수 및 무작위 플레이 점수도 함께 비교되어 있다. DQN은 게임에 대한 사전 지식이 거의 없음에도 불구하고, 7개 게임 모두에서 상당한 차이로 다른 학습 방법보다 성능이 뛰어나다. 다만 사람보다 점수가 떨어지는 Q*bert, Seaquest, Space Invaders는 네트워크가 장기간에 걸쳐 확장되는 전략을 찾아야 하기 때문에 성능이 상대적으로 낮은 것으로 보인다.
그리고 hand-engineered object detection algorithm을 활용한 HNeat Best 점수와 비교하여도 DQN이 더 좋은 성능을 보이는 것을 알 수 있다. 이는 DQN이 𝜖-greedy 를 활용하기에 다양한 상황에 걸쳐 일반화할 수 있지만, HNeat는 단일 결과만 얻을 수 있다는 점에서 더욱 개선된 네트워크라고 생각할 수 있다.
Reference
논문 링크 : [1312.5602] Playing Atari with Deep Reinforcement Learning (arxiv.org)
DQN Architecture 이미지 : DQN Explained | Papers With Code
'딥러닝 > Reinforcement Learning' 카테고리의 다른 글
[RL] Dueling DQN (1) | 2024.11.24 |
---|---|
[RL] PER (0) | 2024.11.23 |
[RL] Double DQN (0) | 2024.11.22 |
[RL] DQN (improvements) (0) | 2024.11.21 |
[RL] Reinforcement Learning 발전 과정 (3) | 2024.11.19 |