Mengapa REINFORCE bekerja?
Berikut tangkapan layar dari algoritme gradien kebijakan populer dari buku Sutton dan Barto -
Saya memahami penurunan matematis dari aturan pembaruan - tetapi saya tidak dapat membangun intuisi tentang mengapa algoritma ini harus berfungsi sejak awal. Apa yang benar-benar mengganggu saya adalah bahwa kami memulai dengan kebijakan yang salah (yaitu kami tidak tahu parameternya$\theta$ yet), dan kami menggunakan kebijakan ini untuk menghasilkan episode dan melakukan pembaruan konsekuen.
Mengapa REINFORCE harus berfungsi? Bagaimanapun, episode yang digunakannya untuk pembaruan gradien dibuat menggunakan kebijakan yang diparameterisasi oleh parameter$\theta$ yang belum diperbarui (episode tidak dibuat menggunakan kebijakan yang optimal - kami tidak bisa melakukannya).
Saya berharap kekhawatiran saya jelas dan saya meminta Anda semua untuk memberikan beberapa intuisi tentang mengapa ini berhasil! Saya menduga bahwa, entah bagaimana , meskipun kita sampling sebuah episode dari kebijakan yang salah, kita lebih dekat ke orang yang tepat setelah setiap update (perbaikan monoton). Alternatifnya, kita bisa mendekati kebijakan optimal (kumpulan parameter optimal$\theta$) rata-rata.
Jadi, apa yang sebenarnya terjadi disini?
Jawaban
Kunci untuk MEMPERKUAT bekerja adalah cara parameter digeser $G \nabla \log \pi(a|s, \theta)$.
Catat itu $ \nabla \log \pi(a|s, \theta) = \frac{ \nabla \pi(a|s, \theta)}{\pi(a|s, \theta)}$. Hal ini membuat pembaruan cukup intuitif - pembilang menggeser parameter ke arah yang memberikan peningkatan probabilitas tertinggi bahwa tindakan akan diulang, mengingat keadaan, proporsional dengan pengembalian - ini mudah dilihat karena pada dasarnya ini adalah pendakian gradien langkah. Penyebut mengontrol tindakan yang akan memiliki keunggulan dibandingkan tindakan lain karena tindakan tersebut akan lebih sering dipilih, dengan penskalaan terbalik sehubungan dengan kemungkinan tindakan yang diambil; bayangkan jika ada ganjaran tinggi tetapi tindakan pada waktunya$t$ memiliki probabilitas rendah untuk dipilih (misalnya 0,1) maka ini akan mengalikan pengembalian dengan 10 yang mengarah ke langkah pembaruan yang lebih besar ke arah yang akan meningkatkan kemungkinan tindakan ini paling banyak dipilih (yang merupakan kontrol pembilang untuk, seperti yang disebutkan ).
Itu untuk intuisi - untuk melihat mengapa hal itu tidak bekerja, kemudian berpikir tentang apa yang kami lakukan. Kami mendefinisikan fungsi tujuan,$v_\pi(s)$, yang ingin kami maksimalkan sehubungan dengan parameter kami $\theta$. Kami menemukan turunan dari tujuan ini sehubungan dengan parameter kami, dan kemudian kami melakukan pendakian gradien pada parameter kami untuk memaksimalkan tujuan kami, yaitu untuk memaksimalkan$v_\pi(s)$, jadi jika kita terus melakukan pendakian gradien maka parameter kebijakan kita akan bertemu (pada akhirnya) ke nilai yang memaksimalkan $v$ dan dengan demikian kebijakan kita menjadi optimal.