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.

Latihan ini adalah bagian dari kursus
Reinforcement Learning dengan Gymnasium di Python
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)