Pemilihan aksi dalam REINFORCE
Tulis fungsi REINFORCE select_action, yang akan digunakan agen REINFORCE Anda untuk memilih aksi pada setiap langkah.
Dalam DQN, forward pass jaringan mengembalikan nilai Q; dalam REINFORCE, jaringan mengembalikan probabilitas aksi, dari mana aksi dapat diambil sampelnya secara langsung.
Sebuah policy network dan sebuah state telah dimuat di lingkungan Anda.
torch.distributions.Categorical telah diimpor sebagai Categorical.
Latihan ini adalah bagian dari kursus
Deep Reinforcement Learning dengan Python
Petunjuk latihan
- Peroleh probabilitas aksi sebagai tensor torch.
- Peroleh objek torch Distribution yang sesuai dengan probabilitas aksi tersebut.
- Ambil sampel sebuah aksi dari distribusi tersebut.
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
def select_action(policy_network, state):
# Obtain the action probabilities
action_probs = ____
print('Action probabilities:', action_probs)
# Instantiate the action distribution
action_dist = Categorical(____)
# Sample an action from the distribution
action = ____
log_prob = action_dist.log_prob(action)
return action.item(), log_prob.reshape(1)
state = torch.rand(8)
action, log_prob = select_action(policy_network, state)
print('Sampled action index:', action)
print(f'Log probability of sampled action: {log_prob.item():.2f}')