9. Continuous control with deep reinforcement learning(DDPG)
Lillicrap, Timothy P., et al. “Continuous control with deep reinforcement learning.” arXiv preprint arXiv:1509.02971 (2015).
Paper Link: https://ar5iv.labs.arxiv.org/html/1509.02971
Abstract에 있는 내용이 본 알고리즘을 아주 잘 요약하고 있다.
“an actor-critic, model-free algorithm based on the deterministic policy gradient that can operate over continuous action spaces.”
말 그대로 연속적인 action이 가능한 DQN 알고리즘이다.
1. Introduction
고차원의 observation spaces 에서 문제를 풀 수 있는 알고리즘인 DQN은 이산화된 저차원의 action spaces 만 다룰 수 있다는 한계가 있다. 하지만 대부분의 물리적인 제어가 필요한 수행동작에는 연속적이고 고차원의 action space 가 필요하다.
DQN 은 Action-value function , 보통 Q-value 라고 불리는 값을 최대화하는 action 을 선택하고, 이를 연속적으로 얻기 위해서 반복적인 최적화 과정을 매 timestep 마다 수행해야한다.
혹은 연속적인 공간을 discretization 하여도 되지만, 시스템의 자유도가 높을 수록 연산이 너무 많아지는 문제가 있다. 예를 들어 7 자유도를 가지는 시스템에 의 action 을 정의하면 의 경우의 수가 생간다.
Deep DPG(DDPG) 은 model-free, off-policy actor-critic algorithm, deep function approximators 를 가지는 알고리즘이다.
DDPG 은 actor-critic 방식에 neural function approximators 를 사용한 Determinisitc Policy Gradient(DPG) 알고리즘Silver et al., 2014에 DQN 방식(Mnih et al., 2013; 2015)을 합쳤다.
DQN 은 replay buffer 를 활용한 off-policy 방식으로 학습하는 네트워크와 target Q 네트워크를 이용하여 TD backup 중에는 target value 를 고정시키도록 하여 기존에 발생하는 딥러닝을 통한 Q-function approximation 에서 발생하는 문제들을 해결하였다.
그래서 DDQN 은 이러한 방식을 그대로 취하되, batch normalization (Ioffe & Szegedy, 2015)도 도입하였다.
⇒ DPG + network with a relay buffer and target Q-network + batch normalization
2. Background
Action-value function 은 어떤 state 에서 취한 action 로 얻을 기댓값이고 그 이후의 policy 에 대해 아래와 같이 정의한다.
이후 모든 시간에 대해 정의된 위 수식을 Bellman equation 과 discount factor 로 다음과 같이 회귀적으로 정리한다.
목적 policy 가 deterministic 하면 이를 로 표현하고 위 수식에 있는 미래 기댓값을 제거해줄 수 있다.
이렇게 되면 기댓값은 environment 에만 오로지 의존하게 된다. 즉, 를 off-policy 방식으로 학습할 수 있게 된다.
off-policy 방식에서 주로 사용되는 Q-learning (Watkins & Dayan, 1992) 은 greedy 한 policy 를 사용한다.
function approximators 를 로 표현하여 최적화할 loss 함수는 아래와 같다.
이 때 는 아래와 같다.
이러한 Q-value 를 얻기 위해 학습 기반의 function approximators 는 크고 비선형적인 데이터를 다루기 어려웠지만 Q-learning 에서 사용한 replay buffer 와 target network 로 문제들을 해결할 수 있었다.
그리고 다음 알고리즘에서는 해당 내용들을 차용하였다.
3. Algorithm
Q-learning 방식을 그대로 연속적인 action 공간에 도입하면 를 매 timestep 마다 최적화해야하고, 이는 실제 환경에서 사용하기에 너무 느리다. 그래서 DPG 의 actor-critic 방식을 도입하였다.
DPG 는 state 와 특정 action 을 결정적으로 맵핑하여 현재의 policy 를 구하는 parameterized actor 를 사용한다.
critic 는 Q-learning 에서처럼 Bellman equation 을 이용해 학습한다. actor는 아래 chain rule 을 이용해 업데이트 한다.
Silver et al.(2014) 에서 policy gradient 임을 증명하였다.
따라서 이러한 DPG 에 NN function approximators 를 사용하여 큰 state 와 실시간의 action 공간에서 학습할 수 있도록 하였다.
RL 에서 NN 을 사용하는 것의 문제점 중 하나는 대부분의 최적화에서 샘플들이 독립적이고, 균일하게 분포되어 있음을 가정한다.
이러한 문제를 해결하기 위해 DQN 에서처럼 replay buffer 를 사용한다. replay buffer 는 고정된 크기의 캐시 로 정의한다.
exploration policy 로 얻어진 transitions 과 tuple 가 replay buffer 에 저장된다. 가득차면 예전 것을 버린다.
매 timestep 마다 버퍼에서 균일하게 minibatch 를 샘플링하여 actor 와 critic 을 업데이트한다.
DDPG 는 off-policy 알고리즘이어서 큰 크기의 replay buffer 를 가질 수 있고 이는 관련성이 적인 transitions 조합간에서도 학습이 가능하게 한다.
수식 (4) 의 Q-learning 을 NN 에 적용하는 것은 unstable 하다. 이는 수식 (4)에서 업데이트되는 가 수식 (5)의 target value 를 구하는데도 사용되어 쉽게 발산하기 때문이다.
그래서 본 논문에서는 DQN의 target network 와 유사하지만 actor-critic 을 위해 약간의 수정을 가하고 “soft” target 업데이트를 하였다.
부드럽게(=천천히) target value 를 업데이트 하기 위해 actor-critic 을 복제한 와 를 이용하였다. 이 네트워크들은 target value 를 계산하기 위해 사용되고, 이 때의 가중치 는 학습된 네트워크의 가중치 를 천천히 따라가도록 하였다.
이로써, target value 가 천천히 변하게 되어 학습의 안정성이 커질 수 있었다.
본 연구에서는 critic 이 발산하지 않고 학습되려면 와 모두 안정적인 target 를 가져야 했다. 이때문에 학습은 느려질 수 있지만, 안정성이 크게 향상되었다고 한다.
그리고 observation 에서 서로 다른 물리 단위가 있고, 이는 environment 에 따라 매번 다를 것이다. 이를 해결하기 위해 Ioffe & Szegedy, 2015 에서 사용한 batch normalization 을 도입하였다.
이 방식은 minibatch 에 있는 샘플들의 dimension 을 정규화하는 것이다. 본 연구에서는 state input 과 네트워크와 네트워크의 모든 레이어들을 정규화하였다.
연속적인 action space 에서는 exploration 이 가장 중요한데, off-policy 방식을 통해서 학습 알고리즘과 독립적으로 exploration 을 수행할 수 있다. 본 논문에서는 actor policy 에 noise 를 더해 exploration policy 를 구성하였다.
Value function approximator : https://sumniya.tistory.com/17