MulaiMulai sekarang secara gratis

Menerapkan Double Q-learning

Latihan ini menugaskan Anda untuk menerapkan algoritma Double Q-learning pada lingkungan kustom yang sama seperti yang Anda selesaikan dengan Expected SARSA untuk membandingkan perbedaannya. Double Q-learning, dengan menggunakan dua Q-table, membantu mengurangi bias kelebihan estimasi yang melekat pada algoritma Q-learning tradisional dan memberikan stabilitas pembelajaran yang lebih baik dibandingkan metode perbedaan temporal lainnya. Anda akan menggunakan metode ini untuk menavigasi lingkungan grid, mengejar imbalan setinggi mungkin sambil menghindari pegunungan agar dapat mencapai tujuan secepat mungkin.

new_cust_env.png

Latihan ini adalah bagian dari kursus

Reinforcement Learning dengan Gymnasium di Python

Lihat Kursus

Petunjuk latihan

  • Perbarui Q-table menggunakan fungsi update_q_tables() yang Anda buat pada latihan sebelumnya.
  • Gabungkan Q-table dengan menjumlahkannya.

Latihan interaktif praktis

Cobalah latihan ini dengan menyelesaikan kode contoh berikut.

Q = [np.zeros((num_states, num_actions))] * 2
for episode in range(num_episodes):
    state, info = env.reset()
    terminated = False   
    while not terminated:
        action = np.random.choice(num_actions)
        next_state, reward, terminated, truncated, info = env.step(action)
        # Update the Q-tables
        ____
        state = next_state
# Combine the learned Q-tables        
Q = ____
policy = {state: np.argmax(Q[state]) for state in range(num_states)}
render_policy(policy)
Edit dan Jalankan Kode