Study
RL · Study

5. Deep Reinforcement Learning 정리

DQN 계열과 Policy Gradient, REINFORCE, Actor-Critic, A3C, A2C의 핵심 아이디어를 연결해 정리한다.

reinforcement-learningdeep-reinforcement-learningdqndouble-dqndueling-dqnpolicy-gradientactor-critica3ca2c

1. RL에서 DRL로 넘어가는 이유

기본 RL은 상태-행동 값을 table로 저장하는 방식에서 출발한다. 하지만 이미지, 로봇 센서값, 자율주행 상태처럼 입력 차원이 커지면 가능한 상태를 모두 table에 담을 수 없다. DRL은 이 자리에 neural network를 넣어 가치 함수나 정책을 근사한다.

2. Naive DQN과 불안정성

Naive DQN은 Q-Learning의 Q-table을 신경망으로 바꾼 가장 단순한 형태다. 그러나 연속된 경험은 서로 강하게 상관되어 있고, Q target도 같은 네트워크가 만들기 때문에 학습 목표가 계속 흔들린다.

Naive DQN problems

3. DQN의 안정화 장치

DQN은 experience replay와 target network를 도입해 Naive DQN의 불안정성을 줄였다.

3.1 Experience Replay

경험을 replay buffer에 저장한 뒤 무작위 mini-batch로 꺼내 쓰면 샘플 간 상관성이 줄고, 한 번 얻은 경험을 여러 번 재사용할 수 있다.

Experience replay overview

Experience replay mechanism

3.2 Target Network

target network는 Q target을 만드는 네트워크를 일정 주기 동안 고정해 학습 목표가 급격히 움직이지 않도록 한다.

Target network overview

DQN pseudo code

DQN CNN architecture

3.3 Multi-Step Learning

n-step return은 한 step 보상만 보지 않고 여러 step의 보상을 묶어 target을 만든다. MC와 TD 사이의 절충으로 볼 수 있다.

N-step return

N-step DQN loss

DQN loss

4. Double DQN과 Prioritized Replay

DQN은 max 연산 때문에 Q값을 과대평가할 수 있다. Double DQN은 행동 선택과 가치 평가를 분리해 이 편향을 줄인다.

Double DQN loss

Prioritized Replay는 TD error가 큰 경험을 더 자주 샘플링한다. 대신 sampling bias가 생기므로 importance sampling weight로 보정한다.

Prioritized replay priority

Importance sampling weight

Double DQN with prioritized replay pseudo code

5. Dueling DQN

Dueling DQN은 Q값을 state value와 advantage로 나누어 표현한다. 어떤 상태가 좋은지와, 그 상태에서 특정 행동이 평균보다 얼마나 나은지를 분리해 학습한다.

Dueling DQN max subtract aggregator

Dueling DQN mean subtract aggregator

6. Policy Gradient와 REINFORCE

Value-based 방법이 행동의 가치를 비교한다면, Policy Gradient는 정책 자체의 파라미터를 직접 업데이트한다.

Policy gradient objective

Policy gradient update

Policy gradient theorem

REINFORCE는 episode return을 이용해 실제로 높은 return을 만든 action의 log-probability를 키우는 가장 기본적인 policy gradient 방법이다.

REINFORCE algorithm

REINFORCE with baseline

Baseline as state value function

7. Actor-Critic, A3C, A2C

Actor-Critic은 policy를 업데이트하는 actor와 가치 함수를 추정하는 critic을 함께 둔다. critic은 actor에게 더 낮은 분산의 학습 신호를 제공한다.

Critic update

Actor update

Policy gradient forms

Actor-Critic flow

A3C는 여러 worker가 비동기적으로 경험을 모으고 global network를 업데이트한다. A2C는 이 흐름을 동기식으로 정리해 구현과 재현성을 높인다.

A3C N-step return

A3C overview

정리하면 DRL의 큰 흐름은 Q함수를 신경망으로 근사한 DQN 계열과, 정책을 직접 학습하는 Policy Gradient 계열로 나눌 수 있다. 이후 PPO 같은 알고리즘은 이 두 흐름의 안정화 아이디어를 함께 가져간다.