Paper link: https://arxiv.org/abs/1509.02971
Abstract
- DQN의 continuous action domain 버전
- Off policy Actor-critic 사용
- Deterministic Policy Gradient 사용
- 이 논문에서 제시한 알고리즘이 dynamics에 대한 full observability를 가지고 있는 planning 알고리즘과 비슷할 정도로 좋은 성능을 보임.
- Raw pixel input을 받아서 Policy를 end-to-end 학습 가능
Introduction
- DQN은 이산화되고 low-dimensional action space를 가진 문제만 풀 수 있었음. 왜냐하면 DQN의 policy 학습 자체가 행동가치함수를 최대화 하는 action을 찾는 방향으로 이루어졌기 때문.
- 위 같은 점이 왜 continuous domain에서 적용이 불가능한가?
- 일단 continuous domain을 이산화시키려면 무수히 많은 action space를 고려해야함. 이렇게 되면 dimension 하나가 늘어날 때마다 고려해야하는 action space의 갯수가 exponential하게 늘어나서 curse of dimensionality 문제를 겪게 됨.
- DQN에서 다음과 같은 장점들을 채택해서 actor-critic method를 stabilize하고자 함
- Off-policy로 모은 sample들을 모아서 replay buffer 만듬. 이럴 경우 여러 에피소드에 걸쳐 모은 sample들을 학습에 사용하기 때문에 sample 간의 correlation을 최대한 줄일 수 있음.
- Target Q-network를 사용.
- DQN에서 사용한 트릭들 외에도 batch normalization도 사용
- DDPG는 동일한 hyperparameter set과 network structure를 사용하여 여러 다양한 문제를 품.
Background
- 일반적인 행동가치함수는 아래와 같이 표현할 수 있다.
- Bellman Equation을 사용하여 recursive한 form으로 표현하면 다음과 같이 표현할 수 있다.
- 만약 policy가 deterministic 하다면 더 이상 at+1에 따른 행동가치함수의 기댓값을 계산 하지 않아도 됨. 기댓값을 구하는 과정은 특정 action의 확률과 해당 action을 취했을 때의 행동가치함수를 곱해서 모두 더하는데, action이 결정적이면 해당 action에 대한 행동가치함수만 고려하면 됨.
- 이렇게 되면 Qμ를 stochasitc behavior policy β를 통해 얻은 sample들을 통해 off-policy 학습할 수 있다.
- Off-policy 알고리즘의 예시 중 하나로 Q-Learning을 언급하고 있기도 하다.
Algorithm
- Actor-critic approach based on the DPG algorithm
- DPG 알고리즘은 actor function μ(sIθμ)을 사용하여 state를 특정 action으로 deterministically mapping 한다.
- Actor function은 다음과 같은 policy gradient 방법을 사용하여 update 한다.
- Critic은 Bellman equation을 사용한 Q-Learning 알고리즘을 통해 학습한다.
- 대부분의 최적화 알고리즘이 그렇듯 neural network를 강화학습에 사용하기 위해서는 sample들이 independently and identically distributed 되어야 한다는 조건이 필요하다.
- DQN은 replay buffer를 사용하여 이러한 문제를 해결하고자 했다.
- time step마다 minibatch를 샘플링하여 actor와 critic을 업데이트 했다.
- Q-Learning을 사용하게 되면 업데이트 하고 있는 Q function이 target network로도 사용되기 때문에 Q function이 diverge할 수도 있다는 단점이 있다.
- 이를 해결하기 위해 Q 함수를 그대로 복사해서 target network를 만드는 것이 아니라 “soft” target update를 사용한다.
- Soft update는 θ’ <- τθ + (1-τ)θ’ with τ « 1로 표현할 수 있는데 여기서 θ‘는 업데이트 전의 actor와 critic의 parameter이다. 즉 업데이트 전과 후의 parameter를 적절히 조합하여 새로운 parameter를 얻는다는 뜻이다.
- 이 같은 방법을 사용하면 update를 천천히, 그리고 안정적으로 진행할 수 있다. 업데이트가 천천히 진행된다는 단점이 있을 수 있지만, 안정성 측면에서 그만큼의 효과를 내고 있다고 설명하고 있다.
- Low-dimensional feature vector observation을 사용하게 되면, 각 observation이 unit이 다르거나 scale이 다른 경우가 발생할 수 있다. 이를 해결하기 위해 batch normalization을 사용한다.
- Minibatch의 sample들이 unit mean and variance를 가지도록 normalize
- State input, all layers of μ, all layers of Q network에 normalization을 진행
- Continuous dimension에서 가장 큰 문제는 exploration이다.
- 기존의 actor policy에 noise를 추가해줌으로써 exploration이 가능하다.
- DDPG에서는 Ornstein-Uhlenbeck process를 사용해서 noise를 sample 했다.
- 기존의 actor policy에 noise를 추가해줌으로써 exploration이 가능하다.
Pseudocode
Results
- Low-dimensional state description (joint angles and positions)
- High-dimensional renderings of the environment
- For each timestep, step the simulation 3 timesteps, rendering each time.
- Observation reported to the agent contains 9 feature maps (RGP of each of the 3 renderings) which allows to infer velocieis using the differences between frames.
- Frames were downsampled to 64 x 64 pixels and the 8-bit RGB values were converted to floating point scaled to [0,1]
- Test 시에는 explorating noise를 제외한 policy를 사용.
Implementation
Link: https://github.com/jungwoohan72/RL_practice/blob/main/DDPG/train.py
둘 다 아직 학습이 덜 된 상태긴 한데 봐줄만한 성능을 보임. 근데 BipedalWalker에서 학습이 안 된다… 다른 알고리즘을 써봐야 하나…
Comments