Deneyim Tekrarı ile DQN
Şimdi bir Deep Q Network kullanarak bir ajanı eğitmek için Experience Replay’i ekleyeceksin. Barebone DQN oluştururken kullandığın Lunar Lander ortamını yine kullanacaksın.
Her adımda, ağı güncellemek için yalnızca en son geçişten (transition) öğrenmek yerine, Experience Replay arabelleği ajanın yakın geçmişteki deneyimlerden rastgele bir yığın (batch) ile öğrenmesine olanak tanır. Bu, ortamı öğrenme becerisini önemli ölçüde artırır.
Önceki egzersizlerden QNetwork ve ReplayBuffer sınıfları kullanımına hazır ve aşağıdaki gibi oluşturuldu:
q_network = QNetwork(8, 4)replay_buffer = ReplayBuffer(10000)
Her bölümün (episode) sonunda metrikleri özetlemek için describe_episode() fonksiyonu da yine kullanılabilir.
Bu egzersiz
Python ile Deep Reinforcement Learning
kursunun bir parçasıdırUygulamalı interaktif egzersiz
Bu örnek kodu tamamlayarak bu egzersizi bitirin.
for episode in range(10):
state, info = env.reset()
done = False
step = 0
episode_reward = 0
while not done:
step += 1
q_values = q_network(state)
action = torch.argmax(q_values).item()
next_state, reward, terminated, truncated, _ = env.step(action)
done = terminated or truncated
# Store the latest experience in the replay buffer
replay_buffer.____
state = next_state
episode_reward += reward
describe_episode(episode, reward, episode_reward, step)