Entropi kebijakan kategorikal
Hitung entropi setiap distribusi aksi:
H(π)=−k∑πklogπkdengan konvensi 0log0=0.
[0.5, 0.5] → 0.693 (= log 2, paling tidak pasti untuk 2 aksi)
[1, 0, 0] → 0 (pasti)
Entropi sebagai ukuran eksplorasi
Entropi mengukur seberapa “acak” kebijakan. Untuk K aksi, nilainya di antara 0 (selalu aksi yang sama) dan logK (seragam).
Saat training, kebijakan cenderung cepat menjadi yakin, kadang terlalu cepat, sebelum menemukan strategi yang baik. PPO menambahkan bonus entropi ke objektif:
L=Lclip+cvLnilai−ceH(π)Dengan ce kecil (ent_coef=0.01 di lab cart-pole), agen dihukum sedikit karena terlalu yakin, sehingga tetap bereksplorasi lebih lama. Lihat grafik entropi turun pelan selama training: kebijakan yang belajar menjadi semakin pasti.
Penjelasan
Yang diminta. Array (N,).
Masalah nol. np.log(0) = -inf, dan 0 * -inf = nan. Trik np.where(probs > 0, probs, 1.0) mengganti nol dengan 1 hanya di dalam log (log1=0), sehingga suku itu menjadi 0⋅0=0.
Langkah di kode: -(probs * np.log(safe)).sum(axis=-1), dijumlahkan per baris.
Cek case 3. Seragam 4 aksi: log4≈1.386, nilai maksimum. Distribusi [0.7,0.1,0.1,0.1] lebih yakin, jadi entropinya lebih kecil (≈0.94).
Yang dikembalikan: array (N,).
Topik
Petunjuk 1
H(p) = −Σ p_k log p_k.
Petunjuk 2
np.log(0) = −inf dan 0 · −inf = nan. Ganti p = 0 dengan 1 di dalam log (log 1 = 0) supaya sukunya menjadi 0.
Nilai ditulis sebagai JSON. Output yang diharapkan dihitung dari solusi referensi.