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 동안 아래의 과정을 반복한다.
- actor network를 사용하여 행동 $a_t$를 결정하고, 탐색을 위한 $N_t$를 추가한다. $a_t = µ_{θ}(s_{t})+N_{t}$ 그리고 $(s_t, a_t, s_{t+1}, r_t)$를 버퍼(Buffer)에 저장한다.
- 버퍼(Buffer)에서 미니배치(minibatch) $(s_i, a_i, s_{i+1}, r_i)$를 샘플링한다.
- target network를 사용하여 target $y^-_i = r_i + γQ{ϕ−} (s_{i+1}, µ_{θ−}(s_{i+1}))$를 설정한다.
- MSE (Mean Squared Error) loss function을 사용하여 critic network를 업데이트 한다.
- deterministic policy gradient를 사용하여 actor network를 업데이트한다.
- 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)이 제한적이다.
'🤖 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 |