b belajar.myudak

Entropi kebijakan kategorikal

Hitung entropi setiap distribusi aksi:

H(π)=−∑kπklog⁡πkH(\pi) = -\sum_k \pi_k \log \pi_k

dengan konvensi 0log⁡0=00 \log 0 = 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 KK aksi, nilainya di antara 0 (selalu aksi yang sama) dan log⁡K\log K (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−ce H(π)L = L_\text{clip} + c_v L_\text{nilai} - c_e\, H(\pi)

Dengan cec_e 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 (log⁡1=0\log 1 = 0), sehingga suku itu menjadi 0⋅0=00 \cdot 0 = 0.

Langkah di kode: -(probs * np.log(safe)).sum(axis=-1), dijumlahkan per baris.

Cek case 3. Seragam 4 aksi: log⁡4≈1.386\log 4 \approx 1.386, nilai maksimum. Distribusi [0.7,0.1,0.1,0.1][0.7, 0.1, 0.1, 0.1] lebih yakin, jadi entropinya lebih kecil (≈0.94\approx 0.94).

Yang dikembalikan: array (N,).

Topik
rlentropieksplorasi
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.

Python 3.14 · NumPy

Pengaturan editor

Ukuran font
Ukuran huruf di editor.
Ukuran tab
Lebar indentasi. Otomatis: 2 spasi untuk TypeScript, 4 untuk Python.
Key bindings
Ganti ke mode Vim.
Nomor baris relatif
Nomor baris dihitung dari posisi kursor (berguna untuk gerakan Vim).
Word wrap
Baris panjang dilipat agar muat di lebar editor.
IntelliSense
Saran kode otomatis saat mengetik (Ctrl+Spasi tetap bisa dipakai saat mati).

Nilai ditulis sebagai JSON. Output yang diharapkan dihitung dari solusi referensi.