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

REINFORCE algoritmasını eğitme

REINFORCE kullanarak Lunar Lander’ını eğitmeye hazırsın! Tek yapman gereken, REINFORCE eğitim döngüsünü, REINFORCE kayıp (loss) hesaplamasıyla birlikte uygulamak.

Kayıp hesaplama adımları hem iç hem dış döngüye yayıldığı için bu sefer calculate_loss() işlevini kullanmayacaksın.

Bölüm tamamlandığında, bu iki niceliği kullanarak kaybı hesaplayabilirsin.

Referans için, REINFORCE kayıp fonksiyonunun ifadesi şöyle:

Her bölümde aracının nasıl ilerlediğini yazdırmak için yine describe_episode() işlevini kullanacaksın.

Bu egzersiz

Python ile Deep Reinforcement Learning

kursunun bir parçasıdır
Kursu Görüntüle

Egzersiz talimatları

  • Seçilen eylemin log olasılığını bölümün log olasılıklarına ekle.
  • Bölüm getirisini, mevcut adımın iskonto edilmiş ödülüyle artır.
  • REINFORCE bölüm kaybını hesapla.

Uygulamalı interaktif egzersiz

Bu örnek kodu tamamlayarak bu egzersizi bitirin.

for episode in range(50):
    state, info = env.reset()
    done = False
    episode_reward = 0
    step = 0
    episode_log_probs = torch.tensor([])
    R = 0
    while not done:
        step += 1
        action, log_prob = select_action(policy_network, state)                
        next_state, reward, terminated, truncated, _ = env.step(action)
        done = terminated or truncated
        episode_reward += reward
        # Append to the episode action log probabilities
        episode_log_probs = torch.cat((____, ____))
        # Increment the episode return
        R += (____ ** step) * ____
        state = next_state
    # Calculate the episode loss
    loss = ____ * ____.sum()
    optimizer.zero_grad()
    loss.backward()
    optimizer.step()
    describe_episode(episode, reward, episode_reward, step)
Kodu Düzenle ve Çalıştır