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 merupakan bagian dari kursus
Deep Reinforcement Learning dengan Python
Instruksi 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 langsung praktik
Cobalah latihan ini dengan melengkapi kode contoh ini.
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}')