Mengapa DQN memerlukan dua jaringan yang berbeda?

12

Aku akan melalui ini pelaksanaan DQN dan saya melihat bahwa pada baris 124 dan 125 dua jaringan yang berbeda Q telah diinisialisasi. Dari pemahaman saya, saya pikir satu jaringan memprediksi tindakan yang tepat dan jaringan kedua memprediksi nilai target Q untuk menemukan kesalahan Bellman.

Mengapa kita tidak bisa hanya membuat satu jaringan tunggal yang hanya memprediksi nilai Q dan menggunakannya untuk kedua kasus? Tebakan terbaik saya adalah ini dilakukan untuk mengurangi waktu perhitungan, jika tidak kita harus mencari tahu nilai q untuk setiap tindakan dan kemudian memilih yang terbaik. Apakah ini satu-satunya alasan? Apakah saya melewatkan sesuatu?

amitection
sumber

Jawaban:

9

Tebakan terbaik saya adalah ini dilakukan untuk mengurangi waktu perhitungan, jika tidak kita harus mencari tahu nilai q untuk setiap tindakan dan kemudian memilih yang terbaik.

Ini tidak memiliki dampak nyata pada waktu komputasi, selain sedikit peningkatan (karena memori tambahan yang digunakan oleh dua jaringan). Anda bisa men - cache hasil dari jaringan target saya kira, tetapi mungkin tidak akan sepadan untuk sebagian besar lingkungan, dan saya belum melihat implementasi yang melakukan itu.

Apakah saya melewatkan sesuatu?

Ini berkaitan dengan stabilitas algoritma Q-learning saat menggunakan perkiraan fungsi (yaitu jaringan saraf). Menggunakan jaringan target yang terpisah, diperbarui setiap begitu banyak langkah dengan salinan dari parameter yang dipelajari terakhir, membantu menjaga bias lari dari bootstrap dari mendominasi sistem secara numerik, menyebabkan estimasi nilai Q berbeda.

Bayangkan salah satu titik data (pada S, A, R, S') menyebabkan perkiraan yang Q(S', A')terlalu buruk untuk menjadi lebih buruk. Mungkin S', A'bahkan belum dikunjungi, atau nilai yang Rdilihat sejauh ini lebih tinggi dari rata-rata, hanya secara kebetulan. Jika sampel yang (S,A)dipotong berulang kali dalam replay pengalaman, itu akan menjadi lebih buruk lagi setiap kali, karena pembaruan Q(S,A)didasarkan pada R + max_a Q(S',a). Memperbaiki jaringan target membatasi kerusakan yang dapat dilakukan oleh perkiraan yang berlebihan tersebut, sehingga memberi waktu belajar jaringan untuk menyatu dan kehilangan lebih banyak bias awalnya.

Dalam hal ini, menggunakan jaringan target yang terpisah memiliki tujuan yang sangat mirip untuk mengalami replay. Ini menstabilkan suatu algoritma yang dinyatakan memiliki masalah konvergen.

Dimungkinkan juga untuk memiliki DQN dengan "pembelajaran ganda" untuk mengatasi masalah terpisah: Bias maksimisasi. Dalam hal ini Anda dapat melihat implementasi DQN dengan 4 jaringan saraf.

Neil Slater
sumber
Untuk bacaan tambahan, seseorang dapat merujuk ke aaai.org/ocs/index.php/AAAI/AAAI16/paper/download/12389/11847
amitection