기본적인 심층 강화 학습 훈련 파이프라인은 다음과 같아야 합니다.
- 환경, 네트워크, 경험 풀 초기화
- 환경을 탐색하고 데이터를 경험 풀에 저장
- 경험 풀에서 데이터를 꺼내고 네트워크 매개변수를 업데이트합니다.
- 훈련된 전략, 루프 2, 3, 4 단계 평가
# initialization
env = BuildEnv()
actor = PolicyNetwork()
critic = ValueNetwork()
buffer = ExperimenceRelayBuffer()
# training loop
for i in range(training_episode):
# explore in env
state = env.reset()
for _ in range(max_step):
next_state, reward, done, info_dict = env.step(action)
buffer.append((state, reward, done, next_state)) # transition
state = next_state
if done:
break
# update network parameters
for _ in range(...):
batch_data = buffer.random_sample()
Q_label = ...
critic_object = critic_loss = cirterion(Q_label, critic(...)) # loss function
actor_object = Q_value_est = critic(state, actor(...)) # Q value estimation