티스토리 뷰

작성자 : 한양대학원 융합로봇시스템학과 유승환 석사과정 (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

 

[Keep9oing] Deep deterministic policy gradient (DDPG)

ddpg seminar from 민재 정 두번째 세미나 자료, 역시나 슬라이드 쉐어는 화질이 깨지는데 괜찮은 슬라이드 공유 툴이 있으면 좋을 것 같다. 아니면 안깨지는 방법이 있는지.. 오늘 슬라이드느 Deep dete

ropiens.tistory.com

 

링크 2 (DDPG 리뷰 2, 블로그 정리) : ropiens.tistory.com/81

 

DDPG 리뷰 : Continuous control with deep reinforcement learning

editor, Junyeob Baek Robotics Software Engineer /RL, Motion Planning and Control, SLAM, Vision - 해당 글은 기존 markdown형식으로 적어오던 리뷰 글을 블로그형식으로 다듬고 재구성한 글입니다 - original..

ropiens.tistory.com


0. ABSTRACT

<DDPG의 핵심 아이디어>

  • Deep Q-Learningcontinuous 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로 구성

Actor Critic 알고리즘 소개 // 출처 : https://greentec.github.io/reinforcement-learning-fourth/

  • * Model Free : Model(Environment)을 사용하지 않고 학습하는 방법

Model Free 설명 // 출처 : https://mangkyu.tistory.com/61

  • * 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)
 

RLCode와 A3C 쉽고 깊게 이해하기

최근에 DeepRL에서 베이스라인 알고리즘이 된 A3C에 대해서 직관적으로 살펴보고 Policy gradient부터 시작해서 A3C까지 이론적으로 깊게 살펴본다.

www.slideshare.net


<DDPG의 성과>

  • (1) 범용적인 성능 -> 20개가 넘는 task(cartpole swing-up, dexterous manipulation 등등)에서 모두 효과적임

Cartpole // 출처 : OpenAI gym Cartpole Jonghyun Ho
dexterous manipulation // 출처 : Dexterous Manipulation with Reinforcement Learning: Efficient, General, and Low-Cost – The Berkeley Artificial Intelligence Research Blog

  • (2) End-to-End 방식의 policy 학습 : raw pixelsnetwork input으로 받고, 원하는 목적(=policy 학습) 수행

end-to-end 방식이란? // 출처 : 딥러닝 3단계: 머신러닝 프로젝트 구조화하기 > End-to-End Deep Learning 은 무엇인가요? : edwith


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)
 

DQN : Playing Atari with Deep Reinforcement Learning 논문 리뷰

작성자 : 한양대학원 융합로봇시스템학과 유승환  오늘은 강화학습 논문 DQN : Deep Q-Networks를 리뷰해보겠습니다~! 강화학습의 기초를 공부할 때는 DQN, DDPG 논문을 공부하면 좋다는 github.com/CUN-bjy

ropiens.tistory.com

  • 최근 연구의 핵심 : Action-Value function을 근사화하기 위해 Deep Neural Network를 사용
  • * action-value function : 해당 policy를 따랐을 때, 모든 state, action의 return에 대한 기댓값

action-value function 수식 // 출처 : 원문

 


<DQN의 장단점>

  • DQN 장점 : high-dimensional의 input을 사용할 수 있음
  • DQN 단점 : 오직 discrete(이산적)하고 차원이 낮은 action space를 지닌 task만 해결 가능
  • 이러한 단점 때문에 DQN은 action의 종류가 늘어날수록 차원의 저주에 걸림
  • ex) 7자유도 시스템에서 action의 종류가 3개 일 때, 이때의 action space 크기는 $3^{7} = 2187$

7자유도 시스템 예시 (로봇팔) // 출처 : 논문 (산업용 로봇 팔 제어를 위한 마스터 암 설계 및 제어) 


<DQN의 단점에 대한 해결책 : DDPG>

  • Deep Neural Network로 근사화한 action-value function을 사용하는 Model-free, Off-policy actor-critic 알고리즘 제안
  • 이 알고리즘의 이름을 DDPG : Deep Deterministic Policy Gradient 라고 명명함

off-policy란? // 출처 : RL (강화학습) 기초 - 9. Model-free Control (tistory.com)

  • DDPG 특징높은 차원이면서 continuous한 action space의 policy를 학습 가능
  • DDPGDPG + actor-critic with Deep Neural Netwrok
  • 그렇지만 actor-critic을 그대로 적용하기에는 학습 수렴이 잘 안되는 단점이 있었고, 이를 아래와 같은 DQN의 아이디어로 극복

  • (1) replay buffer : 데이터를 랜덤하게 추출해서 데이터 간의 상관 관계를 최소화

replay buffer 개념도 // 출처 : https://www.endtoend.ai/paper-unraveled/cer/


  • (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가 필요

Target Q-network가 추가된 학습 도식도 // 출처 : 강화학습 알아보기(3) - DQN 개선, Deep SARSA · greentec's blog


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(확률적)

Standard Reinforcement Learning Setup 도식도 // 출처 : https://imjuno.tistory.com/entry/RL-introduction


<agent의 action(behavior)과 Environment 결정>

  • agent의 action을 정의하는 방법 : policy $\pi$
  • policy(정책) : stateaction에 대한 probability distribution(그 action을 선택할 확률)로 mapping

policy 수식 // 출처 : 원문

  • 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 : 감가율 γ이 적용된 모든 시간에 대한 보상의 합

Return 수식 // 출처 : 원문

  • * 감가율 (discounting factor) : 미래의 보상의 scalar 값을 작게 만드는 factor // 범위는 0~1 사이, 본문에서는 0.99로 설정
  • returnaction의 선택의존 -> 즉 policy에 의존하고 이는 stochastic(확률적)임
  • 강화학습의 목표 : return의 기댓값이 최대치를 가지는 policy를 학습(=찾는)하는 것

<action-value function>

  • 정의 : policy $\pi$를 따랐을 때의 action과 state에 대한 return의 기댓값

action value function 수식 // 출처 : 원문

  • target policy가 deterministic하다면, 위 수식 (1)를 아래와 같이 계산 가능한 수식으로 변경 가능 (벨만 방정식에서 유도됨)

계산 가능한 action value function 수식 // 출처 : 원문
target policy

  • 위 수식 (3)의 기댓값은 오로지 환경에만 의존함 -> 다른 policy $\beta$를 가지고 off-policy 학습 가능

<Q-Learing>

  • Q-learning은 off-policy 알고리즘과 greedy policy 알고리즘을 사용
  • * greedy policy 알고리즘 : action-value function이 최대치를 반환

greedy policy 알고리즘

  • Q-learning은 action-value fucntion을 파라미터 $\theta^{Q}$로 구성된 Deep Neural Network로 근사하며, 아래의 loss function(수식 4)을 작게 만드는 방향으로 최적화 함 (Mean Squared Error와 유사)

Q-learning의 loss function

  • 수식 (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-learningcontinuous한 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 functionpolicy gradient 방식으로 학습됨

actor function의 학습 (policy gradient)

  • 위 수식 6에서 JObjective Function라고 부름
  • actor function은 objective function을 gradient assent로 최대화시킴 -> 그때의 policy parameter를 찾는 것이 학습 목적!!

<actor의 objective function 추가 설명>

  • objective function (목표함수) J(θ)는 아래의 수식과 같이 trajectory 동안 받을 것이라고 기대하는 보상의 합
  • * trajectory : 에이전트와 환경이 상호작용한 흔적 (s0, a0, r1, s1, ,,, , st)

objective function의 정의 // 출처 : https://www.slideshare.net/WoongwonLee/rlcode-a3c

  • actorobjective function으로 업데이트 방향 및 크기를 결정하므로, J(θ)을 미분해야함
  • objective function을 미분하는 과정은 아래와 같음

objective function 미분 유도 과정 1 // 출처 : 위 링크와 동일
 objective function의 미분 과정 2 // 출처 : 위 링크와 동일
objective function의 미분 유도 3 // 출처 : 위 링크와 동일

  • 위 미분 유도 3 그림에서, r(보상)에 대한 수식 처리를 하게되면 감가율이 적용된 return (G)가 되고, 최종적으로 아래와 같은 형태가 됨

objective function의 미분 최종. // 출처 : 위 링크

  • 그런데 actor에서 policy는 Q-network로 근사하므로 아래와 같은 형태로 변형됨

최종 형태 // 출처 : 위 링크

  • 다시 정리하자면, 수식 6을 계산가능하게 바꾸면, 아래와 같이 형태의 수식이 됨

계산 가능해진 objective function // 출처 : https://dnddnjs.gitbooks.io/rl/content/actor-critic_policy_gradient.html


<선행 연구 : NFQCA (2011)>

  • Q-learning과 같이, non-linear function approximatorsconvergence(수렴)이 보장되지 않음
  • 그러나 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에서 학습이 불안정함 (= 수렴이 잘 안됨)

Q-learning의 Loss Function

  • 불안정한 이유 : target value(정답값, 아래의 식 5)를 계산할 때 업데이트 된 Q-network의 파라미터를 사용할 수도 있기 때문 -> Q 업데이트는 발산할 가능성이 커짐

Q-learning의 target value

  • 본 연구에서는 이를 해결하기 위해 actor, critic를 복사한 tartget networksoft 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
 

[Deep Learning] Batch Normalization (배치 정규화)

사람은 역시 기본에 충실해야 하므로 ... 딥러닝의 기본중 기본인 배치 정규화(Batch Normalization)에 대해서 정리하고자 한다. 배치 정규화 (Batch Normalization) 란? 배치 정규화는 2015년 arXiv에 발표된 후

eehoeskrap.tistory.com

  • DDPG에서는 Batch Normalizationinput(state), actor과 critic의 모든 layer에 적용

 


<Noise을 적용한 DDPG>

  • continuous한 action space에서의 딥러닝 학습의 주요 과제는 exploration(탐험)
  • * exploration : agent가 새로운 시도를 하는 것 (가끔은 최적의 return을 받을 수 있는 action이 아닌, 랜덤한 action을 취하는 것) 
  • Off-Policy 알고리즘의 이점 : 학습 알고리즘exploration독립적으로 구분 가능
  • 본 연구에서는 exploration policy을 actor policy에 noise를 추가하였음

exloration policy에 noise를 추가

  • noise는 noise process N에서 sample 됨
  • Noise를 생성하는 과정은 나중에 코드 리뷰를 통해... 설명하도록 하겠습니다ㅎㅎ

<DDPG 알고리즘 소개 : DQN과의 차이점 위주로 설명>


<Action 선택 : DQN VS DDPG>

  • DQN의 action 선택 : 입력으로 stateaction을 받는 Q-network에서 최대의 action-value를 받는 action을 선택

DQN의 action 선택

  • DDPG의 action 선택 : 입력으로 state를 받는 actor network출력 action noise에 의해 최종 action을 선택

DDPG의 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 하나로 계산

DQN의 tartget Value

  • DDPG's target value : target critic network를 이용하여 계산 (입력 : 다음 state & actor networks' output(action))

DDPG의 tartget value


<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 

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%를 이용

target network의 업데이트


4. Result

DDPG를 적용한 envirionments의 screenshots 예시들
각 task 별 DPG 알고리즘 성능 비교표 (모듈 별 비교)

  • 위 성능 비교표에서 각 알고리즘은 아래와 같음
  • 연한 회색 : 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 알고리즘 기반이라서 학습하는데 오랜 시간이 걸림 (= 많은 에피소드 소요)

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30