[RL] Deep Deterministic Policy Gradient (DDPG)

2023. 8. 21. 21:37·🤖 ai logbook
728x90
반응형

 

 

 

reference : https://wikidocs.net/book/7888

 

결정론적 정책 경사(Deterministic Policy Gradient, DPG) 알고리즘

더보기

Stochastic Policy (확률적 정책)

주어진 상태 $s$ 대해 행동 $a$를 취할 확률을 반환하는 정책

$\pi(a|s) = P(A = a|S = s)$

여기서 $\pi(a|s)$는 상태 $s$에서 행동 $a$를 취할 확률을 나타나타내며, 환경의 불확실성이나 에이전트의 탐색 필요성 등의 이유로 Deterministic Policy (결정론적 정책)보다 유용할 수 있다.

→ 환경의 불확실성을 다루거나 탐색하는 데 유용

→ local optima에서 벗어나는 데 도움을 줌

 

Deterministic Policy (결정론적 정책)

주어진 상태 $s$에 대해 항상 동일한 행동 $a$를 반환하는 정책

$\pi(s) = a$

$\pi$는 정책을 나타내며, 주어진 상태 $s$에 대해 어떤 행동 $a$ 취할 것인지 명확하게 지정한다.

→ 계산이 단순하고, 명확한 행동 지침을 제공

 

DPG는 결정론적 정책(deterministic policy)을 파라미터 벡터 $\theta$를 사용하여 파라미터화하고,

정책을 Q-함수의 경사 방향으로 업데이트(확률적 정책 경사와 달리 정책의 경사를 직접 계산)하는 방법이다.

결정론적 정책 $\mu$는 $\theta$라는 파라미터 벡터로 파라미터화된다.

즉, 상태 $s$가 주어지면, $\mu_{\theta}(s)$는 상태 $s$에서 취할 행동을 결정론적으로 제시한다.

결정론적 정책 경사의 핵심 아이디어는 정책을 Q-함수의 경사 방향으로 이동시키는 것이다.

여기서 $Q^{\mu^{k}}$는 현재 정책 $\mu^{k}$에 대한 크리틱(Critic)의 Q-함수이다.

 

Deterministic policy gradient

DPG는 결정론적 정책의 경사를 계산하는 데 Q-함수의 경사를 사용한다.

$\nabla_\theta J(\mu_\theta) = E_{s \sim \rho^\mu} [\nabla_a Q^{\mu_\theta}(s, a)|{a=\mu\theta(s)} \nabla_\theta \mu_\theta(s) ]$

- $\nabla_\theta J(\mu_\theta)$ : 정책 $\mu_\theta$의 경사

- $Q^{\mu_\theta}(s, a)$ : Q-함수

- $\mu_\theta(s)$ : 상태 $s$에서 결정론적 정책 $\mu_\theta$에 의해 선택된 행동

 

Update Rule

Q-함수의 경사를 사용하여 정책의 파라미터 $\theta$를 직접 업데이트한다.

기댓값 계산에는 Discounted State Visitation Distribution $\rho^{\mu}$분포를 사용하는데,

이를 통해 에이전트는 더 자주 방문하는 상태에 더 큰 영향을 받게 된다.

$\theta \leftarrow \theta + \alpha E_{s \sim \rho^{\mu^{k}}}[ \nabla_{\theta}Q^{\mu^{k}}(s, \mu_{\theta}(s)) ]$

- $\alpha$ : 학습률(learning rate)

- $E_{s \sim \rho^{\mu^{k}}}$ : $\rho^{\mu^{k}}$ 분포에 따라 선택된 상태 $s$에 대한 기대값(expectation)

 

Discounted State Visitation Distribution

DPG 수식에서의 기댓값 계산 $E_{s \sim \rho^\mu}$은 상태 s의 분포가 $\rho^{\mu}$로부터 나온다는 것을 나타낸다.

이 분포는 어떤 상태 $s'$에 얼마나 자주 방문하는지를 결정론적 정책 $\mu$를 기반으로 나타낸다.

$\rho^{\mu}(s') := \sum_{t=1}^{\infty} \gamma^{t} p_{0}(s) p(s \rightarrow s', t, \mu) ds$

- $\gamma$ : discount factor

- $p_{0}(s)$ : 초기 상태 분포

- $p(s \rightarrow s', t, \mu)$ : 정책 $\mu$하에서 상태 $s$에서 $s'$로 이동하는 전이 확률(transition probability)

 

결정론적 Actor-Critic(Deterministic Actor-Critic Algorithm, DAC) 알고리즘

'Actor'는 행동을 결정하는 정책을 나타내고, 'Critic'은 그 행동의 가치를 평가하는 것을 나타낸다.

 

DAC에서 Actor는 결정론적 정책을 사용하고, Critic은 이를 평가하기 위해 Q-함수를 사용한다.

 

θ : Actor 신경망

ϕ : Critic 신경망

 

주어진 상태 s에서 Actor($µ_{θ}$)를 사용해 행동 a를 선택한다. 이 행동을 환경에 적용하여 보상 r과 다음 상태 s'을 관측한다.

 

Bellman 방정식을 기반으로 Critic의 Q-함수 $Q^\mu_\phi(s, a)$를 업데이트 할 수 있다.

$Q^\mu_\phi(s, a) = r + \gamma Q^\mu_\phi(s', \mu_\theta(s'))$

- r : 현재 상태 s와 행동 a을 취했을 때 받는 보상

- $\gamma$ : discount factor

- $ Q^\mu_\phi(s', \mu_\theta(s'))$ : 다음 상태 s'에서 Actor가 결정한 행동 $μ_{θ} (s′)$에 대한 Q-값

 

$\nabla_\theta J(\theta) \approx \nabla_\theta \mu_\theta(s) \nabla_a Q^\mu_\phi(s, a)|{a=\mu\theta(s)}$를 이용해 Deterministic policy gradient를 추정하고,

이 경사를 사용해 Actor의 파라미터 θ를 업데이트한다.

$\theta \leftarrow \theta + \alpha \nabla_\theta J(\theta)$

 

해당 방식은 On-policy 학습 방식으로, 새로운 정책으로 수집된 경험만 사용하여 학습하므로, 과거에 수집된 경험을 재사용하지 않는다.

이는 학습 과정에서 많은 샘플이 필요하게 되어 샘플 활용이 비효율적이라는 문제가 발생한다.

 

Off-Policy 결정론적 Actor-Critic(Off-Policy Deterministic Actor-Critic, Off-Policy DAC) 알고리즘

experience replay와 같은 기법을 사용하여 과거의 데이터를 재사용하는 방법 (off-policy 학습 방식)으로,

결정론적 Actor-Critic의 변형 알고리즘이다.

 

DAC와 Off-Policy DAC의 수식 자체는 동일하나 “어떤 데이터가 이러한 수식에 적용되는지”가 차이점이라 할 수 있다.

 

Off-Policy DAC는 behavior policy β(s)로부터 데이터를 수집하고, 이 데이터를 replay buffer에 저장한다.

(DAC에서는 현재의 정책(actor) $µ_{θ}$에서 데이터를 직접 수집했다)

그리고 학습할 때는 이 buffer에서 무작위로 데이터를 샘플링하여 actor와 critic을 업데이트한다.

 

이를 통해, On-policy 학습 방식의 단점이었던 샘플 활용 비효율적 문제를 해결하였다.

하지만, behavior policy로부터 수집된 데이터를 사용하여 target policy 학습하는 과정에서 behavior policy와 target policy 간의 차이로 인해 bias가 발생할 수 있다.

 

Deep 결정론적 정책 경사 (Deep Deterministic Policy Gradient, DDPG) 알고리즘

DPG의 딥 러닝 변형으로 Deterministic Policy Gradient (DPG)와 Deep Q-Network (DQN)에서의 아이디어를 결합한 알고리즘이다.

DDPG의 Actor는 결정론적 정책 경사(Deterministic Policy Gradient)를 사용해 단순하고 연속적인 행동 공간에 적합한 특성을 가지게 된다.

DDPG의 Critic은 DQN의 off-policy 학습, experience replay, target network를 사용하여 학습의 안정성과 효율성을 높였다.

 

→ 왜 Stochastic Policy Gradient(SPG)가 아닌 Deterministic Policy Gradient (DPG)인가?

SPG는 Q-함수의 기대값을 계산하기 위해 행동 공간 위의 적분이 필요하기에 연속적인 행동공간에서 비효율적이며, DPG보다 출력 공간의 차원이 크다.(상대적으로 학습이 느리다)

 

 

 

 

다음을 초기화 한 뒤,

$Q_\phi$ (critic network), $\phi$ (critic parameter), $\mu_\theta$ (actor network), $\theta$ (actor parameter)

$Q_{\phi^-}, \mu_{\theta^-}$ (target network)

M episode동안 학습을 반복한다.

각 episode 시작시, 탐색을 위한 랜덤 프로세스 N을 초기화하며, 초기 상태 $s_{0}$을 받는다.

각 episode 내에서 T 동안 아래의 과정을 반복한다.

  1. actor network를 사용하여 행동 $a_t$를 결정하고, 탐색을 위한 $N_t$를 추가한다. $a_t = µ_{θ}(s_{t})+N_{t}$ 그리고 $(s_t, a_t, s_{t+1}, r_t)$를 버퍼(Buffer)에 저장한다.
  2. 버퍼(Buffer)에서 미니배치(minibatch) $(s_i, a_i, s_{i+1}, r_i)$를 샘플링한다.
  3. target network를 사용하여 target $y^-_i = r_i + γQ{ϕ−} (s_{i+1}, µ_{θ−}(s_{i+1}))$를 설정한다.
  4. MSE (Mean Squared Error) loss function을 사용하여 critic network를 업데이트 한다.
  5. deterministic policy gradient를 사용하여 actor network를 업데이트한다.
  6. target network를 업데이트한다.(soft update 방식) $ϕ^− ← τϕ + (1 − τ )ϕ^−, θ^− ← τθ + (1 − τ )θ^−$ (여기서 $\tau$는 0과 1 사이의 작은 값)

 

 

장점

DPG(deterministic policy gradient)를 사용하기에 연속적인 행동공간을 잘 처리할 수 있다.

off-policy 학습을 사용하면서 샘플 효율성이 높아진다.

Experience replay를 사용하면서, 연속적으로 발생하는 경험 사이의 상관관계를 줄일 수 있다.

target networks가 느리게 학습되면서, 일관성(consistency)를 높이는데 도움을 준다.

 

 

단점

DPG(deterministic policy gradient)를 사용하기 때문에, 탐색(Exploration)이 제한적이다.

 

 

728x90
반응형

'🤖 ai logbook' 카테고리의 다른 글

[RL] MDP - Bellman equation  (0) 2024.06.25
[RL] 마르코프 결정 과정 (Markov decision processes, MDP)  (0) 2024.06.23
[RL] 강화 학습(Reinforcement Learning)  (0) 2024.06.23
[RL] 간단한 OpenAI Gym 튜토리얼 (CartPole)  (0) 2023.08.28
[paper] ChatDev - 소프트웨어 개발을 위한 통신 에이전트(Communicative Agents for Software Development)  (0) 2023.08.16
[RL] Actor-Critic  (0) 2023.08.10
[RL] DQN(Deep Q-Network) - 작성중  (0) 2023.08.08
[RL] Q 러닝(Q-learning)  (0) 2023.08.07
'🤖 ai logbook' 카테고리의 다른 글
  • [RL] 강화 학습(Reinforcement Learning)
  • [RL] 간단한 OpenAI Gym 튜토리얼 (CartPole)
  • [paper] ChatDev - 소프트웨어 개발을 위한 통신 에이전트(Communicative Agents for Software Development)
  • [RL] Actor-Critic
이소야
이소야
✔ 공부 기록 ٩(๑•̀o•́๑)و
  • 이소야
    I study SO
    이소야
    ✔ 공부 기록 ٩(๑•̀o•́๑)و
  • 전체
    오늘
    어제
    • 분류 전체보기 (207) N
      • 🤖 ai logbook (39)
      • 💻 developers logbook (1)
      • 🥇 certification logbook (57) N
      • ⚖️ legal logbook (108)
      • ⚡ electronics logbook (1)
      • 🌍 english logbook (0)
      • 🎁 etc (1)
  • 최근 글

  • 인기 글

  • 태그

    자격증
    빅데이터분석기사
    방통대
    certificate
    deeplearning
    형법
    기본권의기초이론
    인공지능 입문
    민법
    근로기준법
    데이터분석준전문가
    ADsP
    Coursera
    데이터사이언스 입문
    datascience
    머신러닝
    온라인 강의 추천
    IBM
    Python
    법학과
  • hELLO· Designed By정상우.v4.10.3
이소야
[RL] Deep Deterministic Policy Gradient (DDPG)
상단으로

티스토리툴바