BaşlayınÜcretsiz Başlayın

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ır
Kursu Görüntüle

Uygulamalı 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)
Kodu Düzenle ve Çalıştır