티스토리 뷰
강화학습 논문 정리 2편 : DDPG 논문 리뷰 (Deep Deterministic Policy Gradient)
hanyangrobot 2021. 3. 16. 15:29작성자 : 한양대학원 융합로봇시스템학과 유승환 석사과정 (CAI LAB)
이번에는 Policy Gradient 기반 강화학습 알고리즘인 DDPG : Continuous Control With Deep Reinforcement Learning 논문 리뷰를 진행해보겠습니다~! 제 선배님들이 DDPG를 너무 잘 정리하셔서 참고 링크에 첨부합니다! 그럼 리뷰 시이이작!!!
링크 0 (원문 ) : arxiv.org/pdf/1509.02971.pdf
링크 1 (DDPG 리뷰 1, ppt 정리) : ropiens.tistory.com/37
링크 2 (DDPG 리뷰 2, 블로그 정리) : ropiens.tistory.com/81
0. ABSTRACT
<DDPG의 핵심 아이디어>
- Deep Q-Learning에 continuous action domain을 접목시킴
- * continous action : 실수 값(real number value)을 지니는 action -> 본문에서는 'continuous (real valued) and high dimensional action spaces' 라고 언급
- Actor-Critic 알고리즘 적용 : policy gradient 기반 model-free 알고리즘
- * Actor-Critic 알고리즘 : action을 선택하는 actor-network와 그 action의 가치(보상)를 평가하는 critic-network로 구성
- * Model Free : Model(Environment)을 사용하지 않고 학습하는 방법
- * policy : agent(학습 대상)가 action을 선택하는 데 사용하는 규칙 (=> 어떤 state에서 어떤 action을 선택할 확률)
- * policy gradient : policy 최적화 기법. objective function의 미분 값을 바탕으로 gradient ascent 기법을 활용하여 가장 큰 return 값을 줄 수 있는 policy를 찾는 최적화 알고리즘.
- * return(기댓값) : 감가율이 적용된 모든 시간에 대한 reward의 합 (2절에서 추가 설명)
- actor-critic과 policy gradient에 대해 자세히 알고 싶으면, 다음 링크의 28~38쪽 참고 (www.slideshare.net/WoongwonLee/rlcode-a3c)
<DDPG의 성과>
- (1) 범용적인 성능 -> 20개가 넘는 task(cartpole swing-up, dexterous manipulation 등등)에서 모두 효과적임
- (2) End-to-End 방식의 policy 학습 : raw pixels을 network input으로 받고, 원하는 목적(=policy 학습) 수행
1. INTRODUCTION
<AI의 주요 목표>
- 전처리되지 않고, 높은 차원을 지닌 sensor input으로 부터 복잡한 task를 해결하기
- ex) 게임 화면의 이미지를 그대로 input으로 사용해서 task를 해결
- 최근 연구 1 : deep learning for sensory processing with reinforcement learning (2012)
- 최근 연구 2 : DQN (Deep Q Network, 2015) -> input으로 게임 화면(pixel)을 사용
- * DQN 리뷰 : DQN : Playing Atari with Deep Reinforcement Learning 논문 리뷰 (tistory.com)
- 최근 연구의 핵심 : Action-Value function을 근사화하기 위해 Deep Neural Network를 사용
- * action-value function : 해당 policy를 따랐을 때, 모든 state, action의 return에 대한 기댓값
<DQN의 장단점>
- DQN 장점 : high-dimensional의 input을 사용할 수 있음
- DQN 단점 : 오직 discrete(이산적)하고 차원이 낮은 action space를 지닌 task만 해결 가능
- 이러한 단점 때문에 DQN은 action의 종류가 늘어날수록 차원의 저주에 걸림
- ex) 7자유도 시스템에서 action의 종류가 3개 일 때, 이때의 action space 크기는 $3^{7} = 2187$
<DQN의 단점에 대한 해결책 : DDPG>
- Deep Neural Network로 근사화한 action-value function을 사용하는 Model-free, Off-policy actor-critic 알고리즘 제안
- 이 알고리즘의 이름을 DDPG : Deep Deterministic Policy Gradient 라고 명명함
- DDPG 특징 : 높은 차원이면서 continuous한 action space의 policy를 학습 가능
- DDPG = DPG + actor-critic with Deep Neural Netwrok
- 그렇지만 actor-critic을 그대로 적용하기에는 학습 수렴이 잘 안되는 단점이 있었고, 이를 아래와 같은 DQN의 아이디어로 극복
- (1) replay buffer : 데이터를 랜덤하게 추출해서 데이터 간의 상관 관계를 최소화 함
- (2) target Q Network : Q-network의 복사본인 target Q-network를 생성 -> 학습 도중에 origin Q-network의 파라미터를 최대한 고정함으로써, 학습이 수렴할 수 있도록 도움 (아래 그림에서 soft update는 아래의 3절(알고리즘)에서 설명)
<target Q network를 사용하는 이유>
- Q-Learning은 매 시간(time step)마다 action-value function(Q-Network)을 업데이트함
- 즉 매 시간마다 Q-Network의 파라미터가 변경된다는 의미
- 학습 도중에 파라미터가 변경되는 것은 학습 수렴에 안좋은 영향을 끼치게 됨
- 학습 도중에 파라미터가 고정되어 있는 Target Q-Network가 필요
2. BACKGROUND
<Standard Reinforcement Learning Setup>
- 구성 : agent & environment $E$ // discrete time steps
- 매 타임 스탭마다 agent는 observation $x_{t}$를 입력으로 받고, action $a_{t}$를 출력하고, scalar reward $r_{t}$를 받음
- * 여기서의 $a_{t}$은 real-value이고, $E$는 fully-observed ($s_{t} = x_{t}$)라고 가정
- * environment는 stochastic(확률적)
<agent의 action(behavior)과 Environment 결정>
- agent의 action을 정의하는 방법 : policy $\pi$
- policy(정책) : state를 action에 대한 probability distribution(그 action을 선택할 확률)로 mapping
- Environment는 MDP(Markov Decision Process)로 표현할 수 있으며, 아래와 같이 구성됨
- (1) state space $S$
- (2) action space $A = R^{N}$
- (3) initial state distribution ρ(s1)
- (4) transition dynamics $ρ(s_{t+1}|s_{t}, a_{t})$
- (5) reward function r(s_t, a_t)
<Return & Goal of RL>
- return : 감가율 γ이 적용된 모든 시간에 대한 보상의 합
- * 감가율 (discounting factor) : 미래의 보상의 scalar 값을 작게 만드는 factor // 범위는 0~1 사이, 본문에서는 0.99로 설정
- return은 action의 선택에 의존 -> 즉 policy에 의존하고 이는 stochastic(확률적)임
- 강화학습의 목표 : return의 기댓값이 최대치를 가지는 policy를 학습(=찾는)하는 것
<action-value function>
- 정의 : policy $\pi$를 따랐을 때의 action과 state에 대한 return의 기댓값
- target policy가 deterministic하다면, 위 수식 (1)를 아래와 같이 계산 가능한 수식으로 변경 가능 (벨만 방정식에서 유도됨)
- 위 수식 (3)의 기댓값은 오로지 환경에만 의존함 -> 다른 policy $\beta$를 가지고 off-policy 학습 가능
<Q-Learing>
- Q-learning은 off-policy 알고리즘과 greedy policy 알고리즘을 사용
- * greedy policy 알고리즘 : action-value function이 최대치를 반환
- Q-learning은 action-value fucntion을 파라미터 $\theta^{Q}$로 구성된 Deep Neural Network로 근사하며, 아래의 loss function(수식 4)을 작게 만드는 방향으로 최적화 함 (Mean Squared Error와 유사)
- 수식 (4)의 Q(s_t, a_t)의 의미 : 현재 state에서 action을 취했을 때 얻을 수 있는 return
- 수식 (4), (5)의 y_t의 의미 : 현재의 보상 + 앞으로 얻을 수 있는 return의 기댓값의 합 (감가율 적용) -> 현재부터 학습이 끝날 때 까지 받을 수 있는 return의 총 합
- Q값이 y_t 값에 가까워지도록 학습 진행 (=critic network)
3. ALGORITHM
<Q-learning의 단점>
- Q-learning은 continuous한 action space에 그대로 적용 불가능
- 불가능한 이유 : continuous action space에서 policy를 구하는 것은 매 타임 스탭마다 모든 action에 대해 optimize하는 것을 요구하기 때문 -> 최적화에 많은 시간이 소요됨
- 이러한 단점을 해결하기 위해 DPG 알고리즘의 기반의 actor-critic 방식을 사용
<DPG 알고리즘의 actor & critic 소개>
- DPG 알고리즘은 다음과 같이 파리미터화된 actor function을 지님
$\mu \left ( s|\theta ^{\mu } \right )$
- actor function : state에서 특정한 action으로 mapping 해줌으로써 현재 policy를 지정
- critic function Q(s, a) : 상태와 action의 가치를 평가함 -> action-value function와 같이 state, action에 대한 return을 반환함으로써 s, a를 평가함
- critic function은 Q-learning에서와 같이 벨만 방정식을 사용하여 학습(=파라미터 업데이트)됨
- actor function은 policy gradient 방식으로 학습됨
- 위 수식 6에서 J를 Objective Function라고 부름
- actor function은 objective function을 gradient assent로 최대화시킴 -> 그때의 policy parameter를 찾는 것이 학습 목적!!
<actor의 objective function 추가 설명>
- objective function (목표함수) J(θ)는 아래의 수식과 같이 trajectory 동안 받을 것이라고 기대하는 보상의 합
- * trajectory : 에이전트와 환경이 상호작용한 흔적 (s0, a0, r1, s1, ,,, , st)
- actor는 objective function으로 업데이트 방향 및 크기를 결정하므로, J(θ)을 미분해야함
- objective function을 미분하는 과정은 아래와 같음
- 위 미분 유도 3 그림에서, r(보상)에 대한 수식 처리를 하게되면 감가율이 적용된 return (G)가 되고, 최종적으로 아래와 같은 형태가 됨
- 그런데 actor에서 policy는 Q-network로 근사하므로 아래와 같은 형태로 변형됨
- 다시 정리하자면, 수식 6을 계산가능하게 바꾸면, 아래와 같이 형태의 수식이 됨
<선행 연구 : NFQCA (2011)>
- Q-learning과 같이, non-linear function approximators는 convergence(수렴)이 보장되지 않음
- 그러나 large state space를 학습하고 일반화하는데 이러한 non-linear function approximators는 필수적임
- NFQCA : DPG와 같이 actor과 critic를 업데이트하지만, neural network 사용한 것이 DPG와의 차이점임
- NFQCA는 안정성을 위해 batch learning을 사용함
- batch learning은 모든 데이터셋을 한번에 학습하기 때문에, large network에서 다루기 힘듦 (학습이 오래 걸리기 때문)
- 이를 해결하기 위해 mini-batch를 사용한 NFQCA가 있지만, 매 업데이트마다 policy를 초기화하지 않는 단점이 존재
<Reinforcement Learning에서 Neural Network를 사용한 연구의 도전 과제>
- 대부분의 문제는 optimization에 있음 : 데이터는 서로 독립적인 관계인가?
- 강화학습에서의 데이터는 시간에 따라 탐험하면서 생성되기 때문에 비독립적인 관계를 지님
- 또한 연산량을 줄이기 위해 online 학습보단 mini-batch로 학습하는 것이 필수적
- 이러한 이슈를 해결하기 위해, DQN에서 사용했던 replay buffer를 사용함
<Replay buffer를 적용한 DDPG>
- replay buffer은 유한한 크기 $R$ 를 지님
- 데이터는 policy를 탐험함에 따라 environment에서 생성되며, replay buffer에 (현재 상태, 현재 취한 행동, 보상, 다음 상태)의 튜플 형식으로 저장되며 이를 trainsition이라고 부름 : $\left ( s_{t}, a_{t}, r_{t}, s_{t+1} \right )$
- replay buffer가 가득 차면, 가장 오래된 데이터부터 삭제됨
- DDPG의 actor와 critic은 replay buffer에서 랜덤한 mini-batch 데이터를 추출하여 학습함
- DDPG는 다른 policy를 보고 자신의 policy에 적용하는 off-policy 알고리즘이기 때문에, 큰 용량을 지닌 replay buffer를 사용 가능
- 용량이 큰 replay buffer를 사용하는 것은, 서로 관련 없는 trainsitions의 mini-batch 쌍이 더 많아지기 때문에 DDPG 알고리즘에 매우 효과적임
<soft target update를 적용한 DDPG>
- Neural Network로 구현한 Q-Learning(아래의 식 4)은 많은 environments에서 학습이 불안정함 (= 수렴이 잘 안됨)
- 불안정한 이유 : target value(정답값, 아래의 식 5)를 계산할 때 업데이트 된 Q-network의 파라미터를 사용할 수도 있기 때문 -> Q 업데이트는 발산할 가능성이 커짐
- 본 연구에서는 이를 해결하기 위해 actor, critic를 복사한 tartget network와 soft target update를 사용함
- 복사한 target network는 target value를 계산하는데 사용
- target networks의 weights는 origin network에 비해 느리게 업데이트함으로써, 이전의 학습 불안정 원인을 해결함
- 다음과 같이 파라미터 τ (τ << 1)로 target network의 업데이트 속도를 조절함 (본문에서는 τ를 0.001로 설정)
$\theta ^{'} \leftarrow \tau \theta + \left ( 1 - \tau \right )\theta ^{'}$
<Batch Normalization을 적용한 DDPG>
- 저차원의 feature vector observations에서 학습을 할 때, observation의 다른 구성 요소는 서로 다른 물리적 단위를 가질 수 있으며, 그 범위는 environment마다 다를 수 있음 (예 : 위치 vs 속도)
- 다른 단위 및 범위는 network가 학습하기 어렵게 만들 수 있으며, state의 값이 다른 규모로 environment를 일반화하는 하이퍼 파마미터도 찾기 어렵게 만듦
- 본 연구에서는 Batch Normalization으로 이 문제의 해결을 시도함
- * Batch Normalization : layer의 output을 정규화 시킴 -> eehoeskrap.tistory.com/430
- DDPG에서는 Batch Normalization을 input(state), actor과 critic의 모든 layer에 적용함
<Noise을 적용한 DDPG>
- continuous한 action space에서의 딥러닝 학습의 주요 과제는 exploration(탐험)임
- * exploration : agent가 새로운 시도를 하는 것 (가끔은 최적의 return을 받을 수 있는 action이 아닌, 랜덤한 action을 취하는 것)
- Off-Policy 알고리즘의 이점 : 학습 알고리즘과 exploration을 독립적으로 구분 가능
- 본 연구에서는 exploration policy을 actor policy에 noise를 추가하였음
- noise는 noise process N에서 sample 됨
- Noise를 생성하는 과정은 나중에 코드 리뷰를 통해... 설명하도록 하겠습니다ㅎㅎ
<DDPG 알고리즘 소개 : DQN과의 차이점 위주로 설명>
<Action 선택 : DQN VS DDPG>
- DQN의 action 선택 : 입력으로 state와 action을 받는 Q-network에서 최대의 action-value를 받는 action을 선택
- DDPG의 action 선택 : 입력으로 state를 받는 actor network의 출력 action과 noise에 의해 최종 action을 선택
<transition 형태 (replay memory)>
- transition 형태 : DQN과 DDPG와 거의 동일 -> current_state, action, reward, next_state
- 학습 데이터 : transition에서 mini-batch N개를 랜덤하게 추출 -> 데이터 간의 상관 관계를 최대한 억제
<target value (y) : DQN VS DDPG>
- DQN's tartget value (non-terminal) : Q-network 하나로 계산
- DDPG's target value : target critic network를 이용하여 계산 (입력 : 다음 state & actor networks' output(action))
<Network Update (Learning) : DQN VS DDPG>
- DQN update : 아래의 수식(단순한 MSE)을 gradient descent 알고리즘으로 파라미터(가중치) update
- DDPG의 update_(1) critic network : DQN과 유사하게 MSE로 loss 값을 최소화하는 방향(=gradient descent)으로 critic network의 파라미터 update
- y_i (target value) : 위에 있음 (DDPG's target value)
- Q(s, a) : critic network의 output -> 현재 state, action에 대한 return 값
- N : 데이터 갯수 (=mini_batch 수)
- DDPG의 update_(2) actor network : policy gradient 알고리즘을 사용하여 actor의 policy를 update
- critic-net은 네트워크 파라미터(가중치)를 업데이트 하는 반면, actor-net는 actor의 policy를 업데이트함
- 실습 코드를 찾아보면 아래의 수식에서 밑줄친 부분을 단순히 critic network의 output에 음수를 취해서 구현함
- 음수를 취하는 이유는 gradient ascent를 하기 위함 (보상이 최대가 되는 policy를 구해야하기 때문)
- 그러나 음수 이외에 추가적인 조치(log 등등)을 하지 않는 이유는 아직 모르겠음...
- DDPG의 update_(3) tartget network : 타우 파라미터에 의해 soft update (본문에서는 타우 = 0.001)
- 아래 수식의 의미 -> target-net의 파라미터를 업데이트 할 때, origin-net 파라미터의 0.1%, target-net 파라미터의 99.9%를 이용
4. Result
- 위 성능 비교표에서 각 알고리즘은 아래와 같음
- 연한 회색 : original DPG with batch normalization
- 진한 회색 : original DPG with targetnetwork
- 초록색 : original DPG with batch normalization, targetnetwork
- 파란색 : 초록색 + pixel-only inputs
- target-network를 적용하면 학습 수렴이 훨씬 빨라짐
5. Related Work
- 여러 알고리즘 들이 소개되지만, 그 중 TRPO만 언급하겠습니다! (제가 다음에 공부할 내용이라서 언급하는거 절대 아님!!ㅎㅎ 뜨끔)
<TRPO>
- TRPO : trust region policy optmization
- 이 알고리즘 역시 policy를 Neural Network를 통해 얻게 됨
- policy 업데이트를 할 때, 기존의 policy가 너무 동떨어지지 않게 제한적으로 학습함
- 이 알고리즘은 action-value function을 학습할 필요가 없으며, data efficient를 지님
6. Conclusion
- 본 연구는 continuous action space에 강화학습 알고리즘을 적용함
- input으로 raw pixels을 사용해도 성능이 뛰어남
- 단점으로 Model-free 알고리즘 기반이라서 학습하는데 오랜 시간이 걸림 (= 많은 에피소드 소요)
'sinanju06 > 딥러닝 논문 리뷰' 카테고리의 다른 글
강화학습 논문 정리 3편 : DDQN 논문 리뷰 (Deep Reinforcement Learning with Double Q-learning) (4) | 2021.06.20 |
---|---|
EfficientNet : Rethinking Model Scaling for Convolutional Neural Networks 논문 리뷰 (7) | 2021.04.18 |
ADAM : A METHOD FOR STOCHASTIC OPTIMIZATION 리뷰 (5) | 2021.02.21 |
Focal Loss for Dense Object Detection 리뷰 (4) | 2021.02.05 |
Mask R-CNN 리뷰 (4) | 2021.01.27 |