Latar belakang:
Saya menggunakan pendekatan Q-value Neural Network dalam tugas pembelajaran penguatan saya. Pendekatannya persis sama dengan yang dijelaskan dalam pertanyaan ini , namun pertanyaannya sendiri berbeda.
Dalam pendekatan ini jumlah output adalah jumlah tindakan yang bisa kita ambil. Dan dengan kata-kata sederhana, algoritmanya adalah sebagai berikut: lakukan tindakan A, jelajahi hadiahnya, minta NN untuk memprediksi nilai Q untuk semua tindakan yang mungkin, pilih nilai Q maksimum, hitung Q untuk tindakan tertentu A sebagai R + max(new_state_Q)
. Fit model pada nilai Q yang diprediksi dengan hanya satu yang diganti oleh R + max(new_state_Q)
.
Pertanyaan: Seberapa efisienkah pendekatan ini jika jumlah outputnya besar?
Mencoba: Katakanlah ada 10 tindakan yang bisa kita ambil. Pada setiap langkah kami meminta model untuk memprediksi 10 nilai, pada usia dini model prediksi ini adalah kekacauan total. Kemudian kami memodifikasi 1 nilai output dan cocok dengan model pada nilai-nilai ini.
Saya memiliki dua pemikiran yang berlawanan tentang seberapa baik pendekatan ini dan tidak dapat memutuskan mana yang benar:
- Dari satu sudut pandang, kami melatih setiap neuron 9 kali pada data acak dan hanya sekali pada data yang mendekati nilai sebenarnya. Jika NN memperkirakan 5 untuk tindakan A di negara S, tetapi nilai sebenarnya adalah -100 kita akan cocok dengan NN 9 kali dengan nilai 5 dan kemudian sekali dengan nilai -100. Kedengarannya gila.
- Dari sudut pandang lain, pembelajaran jaringan saraf diimplementasikan sebagai propagasi balik kesalahan , jadi ketika model memperkirakan 5 dan kami melatihnya pada 5 tidak akan mempelajari hal baru, karena kesalahannya adalah 0. Berat tidak disentuh . Dan hanya ketika kita akan menghitung -100 dan menyesuaikannya dengan model, itu akan melakukan perhitungan ulang berat.
Opsi mana yang benar? Mungkin ada hal lain yang tidak saya perhitungkan?
UPDATE: Dengan "seberapa efisien" yang saya maksud membandingkan dengan pendekatan dengan satu output - prediksi hadiah. Tentu saja, aksi akan menjadi bagian dari input dalam kasus ini. Jadi pendekatan # 1 membuat prediksi untuk semua tindakan berdasarkan beberapa negara, pendekatan # 2 membuat prediksi untuk tindakan tertentu yang diambil di beberapa negara.
Jawaban:
Jadi dua opsi yang ingin kita bandingkan adalah:
Dengan intuisi saya sendiri, saya ragu ada perbedaan yang signifikan dalam hal kekuatan representasi atau kecepatan belajar (dalam hal iterasi) antara dua opsi tersebut.
Untuk kekuatan representasi, opsi pertama memberikan jaringan yang sedikit lebih kecil di dekat input, dan jaringan yang lebih luas di dekat output. Jika karena alasan apa pun itu bermanfaat untuk memiliki bobot lebih dekat dengan node input misalnya, itu bisa sangat banyak dicapai dengan membuat lapisan tersembunyi pertama (dekat dengan input) sedikit lebih besar juga.
Mengenai kecepatan belajar, kekhawatiran yang tampaknya Anda miliki pada dasarnya sejalan dengan umumnya hanya memiliki sinyal pembelajaran yang akurat untuk salah satu output, dan bukan untuk yang lain. Dengan opsi kedua, persis sama dapat dikatakan untuk bobot yang terhubung ke input node, jadi saya ragu ada perbedaan yang signifikan di sana.
Seperti yang saya sebutkan, semua hal di atas hanya didasarkan pada intuisi saya, akan menarik untuk melihat referensi yang lebih kredibel.
Satu keuntungan penting yang saya lihat untuk opsi pertama adalah dalam kecepatan komputasi; misalkan Anda ingin menghitung nilai- untuk semua tindakan untuk memutuskan tindakan mana yang akan dipilih; sebuah forward forward tunggal melalui jaringan, memberikan Anda semua nilai- sekaligus, akan jauh lebih efisien secara komputasi daripada memiliki forward forward terpisah (untuk serangkaian aksi ukuran ).Q Q n n
sumber