MulaiMulai sekarang secara gratis

Ruang bermain entropi

Jika Anda belum pernah menemui konsep entropi sebelumnya, akan bermanfaat untuk memahaminya melalui sebuah contoh.

Anda akan membangun fungsi plot_probabilities yang menerima daftar probabilitas sebagai argumen. Fungsi ini menghitung entropi dan memvisualisasikan probabilitas dalam diagram batang.

Dengan bereksperimen menggunakan entropi, Anda akan melihat bahwa entropi lebih tinggi ketika sebaran probabilitas tersebar pada banyak aksi.

Kelas torch.distribution.Categorical telah dimuat di lingkungan Anda sebagai Categorical; kelas ini memiliki metode, .entropy(), yang mengembalikan entropi dalam satuan nat.

Latihan ini adalah bagian dari kursus

Deep Reinforcement Learning dengan Python

Lihat Kursus

Petunjuk latihan

  • Peroleh entropi dari sebaran probabilitas dalam satuan nat.
  • Untuk kemudahan, konversikan entropi dari nat ke bit.
  • Cobalah gunakan daftar lain sebagai masukan untuk fungsi tersebut.

Latihan interaktif praktis

Cobalah latihan ini dengan menyelesaikan kode contoh berikut.

def plot_probabilities(probs):
  dist = Categorical(torch.tensor(probs))
  # Obtain the entropy in nats
  entropy = dist.____
  # Convert the entropy to bits
  entropy = entropy / math.log(____)
  print(f"{'Probabilities:':>15} {[round(prob, 3) for prob in dist.probs.tolist()]}")
  print(f"{'Entropy:':>15} {entropy:.2f}\n")
  plt.figure()
  plt.bar([str(x) for x in range(len(dist.probs))], dist.probs, color='skyblue', edgecolor='black')
  plt.ylabel('Probability'); plt.xlabel('Action index'); plt.ylim(0, 1)
  plt.show()
  
plot_probabilities([.25, .25, .25, .25])
plot_probabilities([.1, .15, .2, .25, .3])
# Try with your own list
plot_probabilities(____)
Edit dan Jalankan Kode