DQN, A3C에 이어 가장 최근 나온 다음 논문을 리뷰하고 얻은 DDPG 알고리즘 관련 내용들을 기록해둔다.
https://arxiv.org/abs/1509.02971
Continuous control with deep reinforcement learning
We adapt the ideas underlying the success of Deep Q-Learning to the continuous action domain. We present an actor-critic, model-free algorithm based on the deterministic policy gradient that can operate over continuous action spaces. Using the same learnin
arxiv.org
목차
0. Prerequisite
DDPG를 이해하기에 앞서 Policy-based (앞서 Ch12. A3C에서 Policy gradient method로 소개했다.) 관련 지식을 좀 더 다듬고, REINFORCE 알고리즘을 짚어보고 넘어가자.
두 내용 모두 이전 글 'Ch12.Asynchronous Advantage Actor Critic (A3C) Network'에서 언급했다.
Policy-based는 Policy gradient method와 일맥상통하고, REINFORCE 알고리즘도 간단히 소개했지만, 다시 한 번 지식을 보충하고 넘어가보자.
https://jjuke-brain.tistory.com/100
Ch12. Asynchronous Advantage Actor Critic (A3C) Network
DQN에 이어 또다른 Deep Reinforcement Learning인 Asynchronous Advantage Actor Critic Network (A3C)에 대해 알아보자. DQN 내용은 이전 포스팅을 참조하자. https://jjuke-brain.tistory.com/99?category=9573..
jjuke-brain.tistory.com
1) Policy-based Reinforcement Learning
(1) 개요
policy-based 강화 학습이란, 앞서 DQN, Q-Learning 등에서 사용한 value-based 강화 학습과 반대되는 개념이다.
value-based 강화 학습에서는 가치 함수를 object function으로 놓고 그것을 최대화하는 action을 선택했다.
대표적인 예시로 아래와 같은 greedy policy가 있다. 이는 Q값을 maximize하는 action을 고르는 policy이다.
하지만 이와 반대로, policy-based에서는 확률 변수
딥러닝을 포함한 개념을 간단히 표현하자면, policy-based Deep Reinforcement Learning에서는 Neural Network의 입력으로
물론 확률 변수를
(2) Policy-based RL 특징
policy based를 사용하는 이유는 다음과 같다.
- Continuous Action을 다루기 용이하다.
- value-based는 action에 따른 값이 나오므로, 그 값은 불연속적(discrete)이다. 물론 조건을 매우 까다롭게 하여 많은 값을 출력하여 연속적인 action을 근사할 수는 있지만, computing cost가 매우 높아질 것이며, 매번 최적값을 찾는 일이 번거롭다.
- 하지만 policy-based는 확률 분포에서 특정 action을 sampling하는 방식을 취하므로 연속적인 aciton 값을 뽑아내기 쉽다.
- Stochastic Policy를 찾을 수 있다.
- 애초에 policy를 확률 분포로 설정하므로, 확률 분포를 따르는 policy를 쉽게 찾을 수 있다.
이러한 특징 덕에 특히 partialy observable environment가 주어진 경우 유용하게 사용되고, Robotics분야에서 많이 사용한다.
(3) Policy-based RL의 Objective Function
강화 학습의 궁극적인 목표는 'maximize expected return'이다.
따라서 value-based, policy-based 두 방식에서 공통적으로 objective function은 간단히 다음과 같이 나타낼 수 있다.
여기서
agent가 학습을 하는 과정에서 state, action, reward의 순서를 따져보면 '
이를 말로 표현하자면, '
확률밀도함수 PDF의 expectation은
이때
따라서 weight를 update하는 과정은 policy의 gradient로 다음과 같이 표현된다.
첫 번째 식에서
따라서 policy-based RL의 policy gradient는 최종적으로 다음과 같이 나타난다.
2) REINFORCE Algorithm
REINFORCE Algorithm은 Reinforcement Learning Algorithm과는 다른 개념임에 유의하자.
바로 위의 식에서 큰수의 법칙을 사용하여 식을 간단하게 만들며, sample 개수 N = 1로 취하여 parameter update를 진행하는 방법이 바로 REINFORCE 알고리즘이다.
즉,다음 과정을 반복하여 parameter(weight)를 갱신한다.
, 로부터 정해진 policy 에서 sampling하여 를 얻는다.
이때,
이를 통해 sample된 값이 unbiased(믿을만 함)이지만, variance가 커서 수렴하기까지 update 과정이 너무 오래 걸린다.
이를 A2C 등에서 해결한 내용을 이전 포스팅(Ch12. A3C Network)에서 확인해볼 수 있다.
1. Deep Deterministic Policy Gradient (DDPG) Algorithm
이제 본격적으로 DDPG 알고리즘을 알아보자.
police-based에서는 이전까지 action에 대한 분포를 policy로 사용하였다.
하지만 DDPG에서는 이름에서 알 수 있듯, 연속적인 값 중에서 'Deterministic한 값'을 뽑는다.
즉, policy-based에서는 neural network를 통해 평균 (
DDPG는 neural network에서
이는 delta function으로 표현할 수 있다. delta function

확률 분포
이때
Objective Function (
이전까지는
DDPG는
구체적인 과정은 생략하고, 결과를 보면 다음과 같다. (너무 길어 반복으로 곱하는 부분에서 줄을 띄웠다.)
이때,
보통
그리고 여기서 DDPG의 세 번째 특징인 'Off-policy' 특징을 보인다. Off-policy는 target policy와 behavior policy가 서로 다른 경우를 말한다.
수식을 살펴보면
replay buffer에 특정
off-policy의 장점은 sample 간의 correlation을 떨어뜨려 다양한 상황을 학습할 수 있다는 점이다.
A3C와 비교해보자면 다음 표와 같다.
A3C | DDPG | |
sample의 correlation 줄이는 방법 | 독립적인 여러 agent를 학습시킴 | off-policy |
replay buffer 사용 여부 | 사용 x | 사용 o |
주요 동작 과정을 간단히 살펴보면 다음과 같다.
- Do action :
- 여기서
은 gaussian noise이며, deterministic policy는 variance가 없어 exploration이 불가능하므로 noise를 강제로 추가하여 exploration을 가능하게 만들어준다. 또는 -greedy policy를 이용하기도 한다.
- 여기서
- Actor update :
- Critic update :
와 의 차이는 2015 DQN에서 target network(TD(0))와 main network(parameter update에 사용) 를 나누어 학습시킨 뒤, parameter update에 사용하던 main network의 weight 를 target network의 에 일정 step ( ) 이후에 통째로 복사하여 target 값이 일정하도록 해주었던 개념이다.
- DQN에서는
를 에 한꺼번에 반영했지만, DDPG에서는 이전 값을 어느 정도 유지하면서 매 step에서 조금씩 반영하도록 한다.
- DQN에서는
동작 과정을 간단한 그림으로 나타내면 다음과 같다.

최근댓글