[RL] Off-policy 정책경사

728x90
반응형

DDPG(Deep Deterministic Policy Gradient)

Q함수와 정책을 동시에 학습하는 off-policy 학습 알고리즘

연속적인 행동 공간이 있는 환경에서만 사용할 수 있음

탐색을 위해 행동에 노이즈를 추가

 

Pendulum 환경

진자의 끝에 토크를 가해서 최대한 위쪽으로 똑바로 세우는 문제

상태: 진자 끝의 가로, 세로 위치, 각속도

행동: 토크(-2 ~ +2)

import gymnasium as gym
env = gym.make("Pendulum-v1", render_mode="rgb_array")

# DDPG 실습
import numpy as np
from stable_baselines3 import DDPG
from stable_baselines3.common.noise import NormalActionNoise, OrnsteinUhlenbeckActionNoise

# 탐색을 위한 노이즈
n_actions = env.action_space.shape[-1]
action_noise = NormalActionNoise(mean=np.zeros(n_actions), sigma=0.1 * np.ones(n_actions))

# 학습
model = DDPG("MlpPolicy", env, action_noise=action_noise, verbose=1)
model.learn(total_timesteps=10000, log_interval=10, progress_bar=True)

 

TD3(Twin Delayed DDPG)

1) DDPG의 개선판

DDPG를 TD3의 특수한 경우로 볼 수도 있음

stable-baselines3의 DDPG는 실제로는 TD3

 

2) 이중 학습(double learning)

Q 학습은 TD 목표를 과대 추정

이중 Q 학습은 Q 함수를 2개 만들어서 한 Q 함수로 다른 Q 함수의 TD 목표 계산

TD3에서는 두 가지 Q 함수의 TD 목표 중 작은 쪽으로 계산

 

3) 목표망의 스무딩(Smoothing the targets used for policy updates)

DDPG는 탐색을 위해 행동에 노이즈 추가

TD3는 TD 목표를 계산하기 위한 행동 𝑎′에도 노이즈 추가

 

4) 지연된 정책 업데이트(delayed policy updates)

비평자(critic)를 자주 업데이트 해서 가치를 정확히 추정할 수 있을 때 정책을 업데이트

 

SAC(Soft Actor-Critic)

DDPG/TD3 처럼 off-policy 학습이지만 확률론적 정책을 사용

엔트로피 가치 함수에 포함

이중 학습

728x90
반응형

'AI > 강화학습(RL)' 카테고리의 다른 글

[RL] PPO  (0) 2024.09.06
[RL] 경험 리플레이  (2) 2024.09.05
[RL] 정책경사  (1) 2024.09.05
[RL] 가치 기반 강화학습 (NFQ, DQN, 이중 DQN, DQNPolicy, 듀얼링)  (7) 2024.09.05
pytorch 설치 안되는 경우  (0) 2024.09.04

댓글