Antrenarea DQN de bază
E timpul să antrenezi un algoritm DQN de bază în mediul Lunar Lander. Reține că este încă un algoritm simplu, așadar performanța nu va fi spectaculoasă – dar îl vei îmbunătăți pe parcurs.
Gândește-te la asta ca la primul pas spre aterizarea pe Lună!
Instanța q_network pe care ai definit-o anterior îți este disponibilă.
Pe parcursul exercițiilor din acest curs, mediul tău Python include și o funcție describe_episode() care afișează informații la finalul fiecărui episod despre cum s-a descurcat agentul.
Acest exercițiu face parte din cursul
Deep Reinforcement Learning în Python
Instrucțiuni pentru exercițiu
- Selectează acțiunea agentului în bucla interioară.
- Calculează funcția de pierdere (loss).
- Efectuează un pas de coborâre a gradientului pentru a actualiza ponderile rețelei.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
for episode in range(10):
state, info = env.reset()
done = False
step = 0
episode_reward = 0
while not done:
step += 1
# Select the action
action = ____(____, ____)
next_state, reward, terminated, truncated, _ = (env.step(action))
done = terminated or truncated
# Calculate the loss
loss = ____(q_network, state, action, next_state, reward, done)
optimizer.zero_grad()
# Perform a gradient descent step
loss.____
optimizer.____
state = next_state
episode_reward += reward
describe_episode(episode, reward, episode_reward, step)