Mengevaluasi kebijakan pada Frozen Lake yang licin
Di lingkungan Frozen Lake yang licin, sekadar menurunkan kebijakan dari Q-table yang telah dipelajari tidak cukup untuk menilai efektivitasnya. Untuk menilai kesesuaian kebijakan yang dipelajari secara akurat, Anda harus memainkan beberapa episode dan mengamati rata-rata reward yang dicapai. Latihan ini membandingkan efektivitas kebijakan yang dipelajari dengan garis dasar yang ditetapkan dengan mengikuti kebijakan acak selama pelatihan. Tugas Anda adalah mengeksekusi kebijakan yang dipelajari selama beberapa episode dan menganalisis kinerjanya berdasarkan rata-rata reward yang terkumpul, lalu membandingkannya dengan rata-rata reward yang terkumpul selama fase kebijakan acak.
Q-table Q, num_states, num_actions, dan avg_reward_per_random_episode telah dimuat untuk Anda.
Pustaka NumPy telah diimpor sebagai np.
Latihan ini adalah bagian dari kursus
Reinforcement Learning dengan Gymnasium di Python
Petunjuk latihan
- Pada setiap iterasi, pilih aksi terbaik yang akan diambil berdasarkan Q-table
Qyang telah dipelajari. - Hitung rata-rata reward per episode yang dipelajari
avg_reward_per_learned_episode.
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
for episode in range(10000):
state, info = env.reset()
terminated = False
episode_reward = 0
while not terminated:
# Select the best action based on learned Q-table
action = ____
new_state, reward, terminated, truncated, info = env.step(action)
state = new_state
episode_reward += reward
reward_per_learned_episode.append(episode_reward)
# Compute and print the average reward per learned episode
avg_reward_per_learned_episode = ____
print("Average reward per learned episode: ", avg_reward_per_learned_episode)
print("Average reward per random episode: ", ____)