Bagaimana kerugian DQN berasal dari (atau secara teoritis dimotivasi oleh) persamaan Bellman, dan bagaimana hal itu terkait dengan pembaruan Q-learning?

Dec 10 2020

Saya melakukan proyek tentang Reinforcement Learning. Saya memprogram agen yang menggunakan DDQN. Ada banyak tutorial tentang itu, jadi implementasi kodenya tidak terlalu sulit.

Namun, saya memiliki masalah dalam memahami bagaimana seseorang harus menghasilkan algoritme semacam ini dengan memulai dari persamaan Bellman, dan saya tidak menemukan penjelasan yang dapat dimengerti yang membahas derivasi / jalur penalaran ini.

Jadi, pertanyaan saya adalah:

  1. Bagaimana kerugian untuk melatih DQN berasal dari (atau secara teoritis dimotivasi oleh) persamaan Bellman?
  2. Bagaimana ini terkait dengan pembaruan pembelajaran-Q biasa?

Menurut catatan saya saat ini, persamaan Bellman terlihat seperti ini

$$Q_{\pi} (s,a) = \sum_{s'} P_{ss'}^a (r_{s,a} + \gamma \sum_{a'} \pi(a'|s') Q_{\pi} (s',a')) \label{1}\tag{1} $$

yang, menurut pemahaman saya, adalah ungkapan rekursif yang mengatakan: Pasangan tindakan-keadaan memberikan hadiah yang sama dengan jumlah dari semua kemungkinan keadaan $s'$ dengan kemungkinan mencapai keadaan ini setelah mengambil tindakan $a$ (dilambangkan sebagai $P_{ss'}^a$, yang berarti lingkungan bertindak atas agen) dikalikan imbalan yang didapat agen dari mengambil tindakan $a$ di negara bagian $s$ + jumlah diskon dari probabilitas berbagai kemungkinan tindakan $a'$ kali pahala negara, pasangan tindakan $s',a'$.

Iterasi Q-Learning (langkah menengah) sering dilambangkan sebagai:

$$Q^{new}(s,a) \leftarrow Q(s,a) + \alpha (r + \gamma \max_a Q(s',a') - Q(s,a)) \label{2}\tag{2}$$

yang berarti status baru, reward tindakan adalah nilai Q lama + kecepatan pembelajaran, $\alpha$, dikalikan dengan perbedaan waktu, $(r + \gamma \max_a Q(s',a') - Q(s,a))$, yang terdiri dari hadiah aktual yang diterima agen + faktor diskon dikalikan fungsi Q dari pasangan state-action baru ini dikurangi fungsi Q lama.

Persamaan Bellman dapat diubah menjadi aturan pembaruan karena algoritme yang menggunakan aturan pembaruan itu bertemu, seperti yang dinyatakan dalam jawaban ini .

Dalam kasus (D) DQN, $Q(s,a)$ diperkirakan oleh NN kami yang mengarah ke suatu tindakan $a$ dan kami menerima $r$ dan $s'$.

Lalu kami memberi makan $s$ sebaik $s'$ke dalam NN kami (dengan Double DQN kami memasukkan mereka ke dalam NN yang berbeda). Itu$\max_a Q(s',a')$dilakukan pada output jaringan target kami. Nilai q ini kemudian dikalikan dengan$\gamma$ dan $r$ditambahkan ke produk. Kemudian jumlah ini menggantikan nilai q dari NN lainnya. Sejak NN dasar ini dikeluarkan$Q(s,a)$ tetapi seharusnya sudah dikeluarkan $r + \gamma \max_a Q(s',a')$ kami melatih NN dasar untuk mengubah bobot, sehingga akan menghasilkan keluaran yang mendekati perbedaan target temporal ini.

Jawaban

2 DavidIreland Dec 10 2020 at 07:28

Persamaan Bellman di RL biasanya didefinisikan $$v_\pi(s) = \sum_a \pi(a|s) \sum_{s', r} p(s', r|s, a)\left[r + v_\pi(s')\right] = \mathbb{E}_{s' \sim p, a \sim \pi}\left[r(s, a) + v_\pi(s')\right] \; .$$Cara Anda menulisnya benar, tetapi saya hanya berpikir saya akan menunjukkan ini. Terlepas dari itu, intuisi Anda benar karena mengungkapkan hubungan rekursif sedemikian rupa sehingga nilai keadaan Anda saat ini$s$ sama dengan jumlah hadiah yang diharapkan dari status ini ditambah nilai yang diharapkan dari negara bagian tempat Anda bertransisi.

Faktanya, Anda benar-benar menerapkan pembaruan Q-learning di Deep Q-Learning. Fungsi kerugian yang Anda minimalkan di DQN adalah$$ L(\theta) = \mathbb{E}_{(s,a,r,s')\sim U(D)}\left[\left( r + \gamma \max_{a'}Q(s', a'; \theta^-) - Q(s, a; \theta)\right)^2 \right]\;$$ dimana $U(D)$ menunjukkan seragam secara acak dari buffer replay $D$ dan $\theta$ adalah parameter jaringan Anda (jaringan membuat parameter fungsi Q), dan $\theta^-$ adalah iterasi sebelumnya dari parameter yang diperbarui setiap $c$ episode untuk membantu konvergensi jaringan.

Seperti yang Anda lihat, fungsi kerugian meminimalkan kesalahan 'Kesalahan Bellman' dari persamaan Anda 2. Mari kita pikirkan mengapa ini terjadi.

Pembaruan TD yang Anda berikan secara bertahap menggeser nilai Q $(s, a)$ menuju $r + \max_a Q(s', a)$ - ini adalah apa yang kita inginkan karena pada akhirnya menyatu ke fungsi Q yang optimal.

Sekarang mari kita pikirkan kasus pembelajaran Deep Q. Kami ingin jaringan kami mendekati$Q(s, a)$ dan jadi jika kita melatih jaringan, menggunakan kerugian MSE, dengan $r + \max_a Q(s', a)$ sebagai target kami maka jaringan kami secara bertahap akan bergeser ke arah prediksi $r + \max_aQ(s', a)$ (yang sekali lagi akan memberi kita nilai Q yang optimal untuk pasangan state-action), seperti dengan pembaruan TD.

Ini mengasumsikan bahwa Anda tahu cara kerja pelatihan jaringan saraf jadi jika tidak, saya akan merekomendasikan untuk menanyakan / mencari pertanyaan relevan yang menjelaskan hal ini.