b belajar.myudak

Return-to-go untuk banyak episode

Buffer pengalaman berisi beberapa episode yang disambung. dones[t] = 1 berarti episode berakhir setelah langkah t. Hitung GtG_t untuk setiap langkah, tanpa menjumlahkan reward dari episode berikutnya.

rewards = [1, 1, 1, 1], dones = [0, 1, 0, 1], γ = 0.5  →  [1.5, 1, 1.5, 1]

Episode terakhir boleh terpotong (tanpa done di akhir); anggap reward setelahnya 0.

Di dalam REINFORCE

REINFORCE memperbarui kebijakan dengan

∇J≈1N∑t∇log⁡π(at∣st)  Gt\nabla J \approx \frac1N \sum_t \nabla \log \pi(a_t|s_t)\; G_t

Setiap aksi dinilai dengan return-to-go: reward yang datang setelah aksi itu, bukan sebelumnya. Aksi tidak bisa memengaruhi masa lalu, jadi reward masa lalu hanya menambah noise.

Dalam praktik, kita mengumpulkan banyak episode dari beberapa salinan lingkungan sekaligus, lalu menyambungnya. Bug klasik adalah lupa me-reset di batas episode: aksi terakhir episode yang gagal tiba-tiba mendapat kredit dari episode berikutnya yang sukses.

Penjelasan

Yang diminta. List GtG_t sepanjang rewards.

Langkah di kode: mundur dari t = T-1. Jika dones[t], set g = 0 (langkah t adalah akhir episode, jadi tidak ada reward sesudahnya). Lalu g = rewards[t] + gamma * g.

Kenapa reset sebelum menambah. rewards[t] milik episode yang berakhir di t, jadi tetap dihitung. Yang dibuang adalah g lama, yaitu return episode berikutnya.

Cek case 1. Episode 1 = langkah 0–1: G1=1G_1 = 1, G0=1+0.5=1.5G_0 = 1 + 0.5 = 1.5. Episode 2 = langkah 2–3, polanya sama.

Yang dikembalikan: list float.

Topik
rlreturnpolicy gradient
Petunjuk 1

Seperti return berdiskon biasa, dihitung dari belakang.

Petunjuk 2

Saat dones[t] = 1, reset akumulasi ke 0 SEBELUM menambahkan rewards[t].

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.