Adakah contoh kode algoritma REINFORCE yang diajukan oleh Williams?

9

Apakah ada yang tahu contoh Algoritma Williams yang diusulkan dalam Makalah "Kelas algoritma estimasi gradien untuk pembelajaran penguatan dalam jaringan saraf" http://incompleteideas.net/sutton/williams-92.pdf

Alex Gao
sumber
Saya akan lupa untuk datang ke sini ketika saya melakukannya, Tapi saya baru saja akan menyelesaikan refactoring openith's github.com/pytorch/examples/blob/master/reinforcement_learning/… ke gaya berorientasi objek, yang sebenarnya dapat diskalakan. ping saya itu dan saya akan mempostingnya di sini
Gulzar
Saya sudah menerapkannya di sini: Lua code . Semoga ini bisa membantu!
xenomeno

Jawaban:

11

Dari kuliah RL David Silver tentang metode Gradient Kebijakan , slide 21 di sini adalah kode semu untuk algoritma Reinforce episodik, yang pada dasarnya adalah metode berbasis gradien di mana pengembalian yang diharapkan diambil sampel langsung dari episode (sebagai lawan memperkirakannya dengan beberapa yang dipelajari fungsi). Dalam hal ini pengembalian yang diharapkan sebenarnya adalah hadiah total episodik untuk langkah tersebut, .Gt

inisialisasiθ

untuk setiap episode { } sampel dari kebijakan dos1,a1,r2...sT1,aT1,rTπθ

    untuk t = 1 hingga T - 1 lakukan

        θθ+αθlogπθ(st,at)Gt

    berakhir untuk

berakhir untuk

Algoritma ini menderita varians yang tinggi karena penghargaan sampel dapat sangat berbeda dari satu episode ke episode lainnya karena itu algoritma ini biasanya digunakan dengan baseline yang dikurangi dari kebijakan. Berikut adalah penjelasan yang lebih rinci lengkap dengan contoh kode.

Florin Gogianu
sumber
Saya ingin tahu mengapa memperbarui bobot setiap catatan waktu alih-alih pembaruan satu kali di akhir episode? Pemahaman saya adalah tidak berubah dalam meneruskan lintasan keseluruhanθ
eric2323223
@ eric2323223 Tentu saja David Silver (disarankan) membahasnya secara menyeluruh. REINFORCE adalah metode monte-carlo. Anda dapat melakukan pembaruan yang lebih sering, yang lebih baik untuk banyak kasus. Tonton video untuk mendapatkan penjelasan yang lebih baik daripada yang bisa saya berikan di sini. Secara umum, ia menyebut metode yang lebih sering "Perbedaan temporal" atau, "TD", dengan optimasi yang disebut "TD (lambda)"
Gulzar
Apakah REINFORCE merupakan algoritma sesuai kebijakan?
GoingMyWay
2

Algoritma REINFORCE untuk pembelajaran penguatan kebijakan-gradien adalah algoritma gradien stokastik sederhana. Ini bekerja dengan baik ketika episode cukup pendek sehingga banyak episode dapat disimulasikan. Metode nilai-fungsi lebih baik untuk episode yang lebih lama karena mereka dapat mulai belajar sebelum akhir satu episode.

nsweeney
sumber