b belajar.myudak

Perkiraan nilai bandit secara inkremental

Agen bandit menyimpan perkiraan Q(a)Q(a) = rata-rata reward aksi aa sejauh ini. Hitung QQ untuk semua k aksi setelah urutan tarikan pulls, tanpa menyimpan semua reward: gunakan rumus inkremental

Qn=Qn−1+1n(rn−Qn−1)Q_{n} = Q_{n-1} + \frac{1}{n}\bigl(r_n - Q_{n-1}\bigr)

Aksi yang belum pernah ditarik bernilai 0.

k = 2, pulls = [[0, 1], [0, 3]]  →  [2.0, 0.0]

Pola “perkiraan += langkah × galat”

perkiraan baru=perkiraan lama+ukuran langkah×(target−perkiraan lama)\text{perkiraan baru} = \text{perkiraan lama} + \text{ukuran langkah} \times (\text{target} - \text{perkiraan lama})

Dengan ukuran langkah 1/n1/n, hasilnya persis rata-rata biasa, tetapi hanya butuh memori O(1)O(1) per aksi. Pola yang sama muncul di mana-mana di RL: TD(0), Q-learning, dan bahkan gradient descent (galat dikali learning rate).

Jika ukuran langkahnya konstanta α\alpha (bukan 1/n1/n), hasilnya adalah rata-rata bergerak eksponensial: reward terbaru lebih berbobot. Ini berguna jika lingkungan berubah dari waktu ke waktu.

Penjelasan

Yang diminta. List k perkiraan.

Langkah di kode: Q = [0.0]*k, N = [0]*k. Untuk setiap [a, r]: naikkan N[a], lalu Q[a] += (r - Q[a]) / N[a].

Cek case 1. Tarikan pertama aksi 0 dengan reward 1: Q=0+(1−0)/1=1Q = 0 + (1-0)/1 = 1. Kedua dengan reward 3: Q=1+(3−1)/2=2Q = 1 + (3-1)/2 = 2, yaitu rata-rata dari 1 dan 3.

Yang dikembalikan: list float panjang k.

Topik
rlbanditrata-rata
Petunjuk 1

Simpan N[a] (berapa kali aksi a ditarik) di samping Q[a].

Petunjuk 2

Q[a] += (r − Q[a]) / N[a]: geser perkiraan ke arah reward baru sebesar 1/N.

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.