Saya mencoba menggunakan Neural Network untuk memperkirakan nilai-Q di Q-learning seperti pada Pertanyaan tentang Q-Learning menggunakan Neural Networks . Seperti yang disarankan dalam jawaban pertama, saya menggunakan fungsi aktivasi linier untuk lapisan output, sementara saya masih menggunakan fungsi aktivasi sigmoid di lapisan tersembunyi (2, meskipun saya bisa mengubahnya nanti). Saya juga menggunakan NN tunggal yang mengembalikan output untuk setiap tindakan seperti yang disarankan.
Namun, algoritma ini masih menyimpang untuk masalah balancing cart-pole sederhana. Jadi, saya khawatir pembaruan Q saya salah. Setelah inisialisasi, apa yang telah saya lakukan pada setiap langkah adalah sebagai berikut:
- Hitung menggunakan propagasi maju NN untuk semua tindakan.
- Pilih tindakan baru, , mendarat di negara baru .s t
- Hitung menggunakan propagasi maju NN untuk semua tindakan.
- Tetapkan nilai-Q target sebagai: hanya untuk tindakan saat ini, a_t , sementara pengaturan Q_ {t + 1} (s, a_t) = Q_ {t} (s, a_t) untuk negara bagian lainnya. Catatan, saya pikir ini masalahnya. a t Q t + 1 ( s
- Atur vektor kesalahan ke
- Backpropagate kesalahan melalui NN untuk memperbarui matriks berat.
Adakah yang bisa menunjukkan kepada saya di mana saya salah?
Selain itu, apakah menurut Anda saya harus memasukkan istilah bias juga dalam lapisan input dan lapisan tersembunyi pertama (yaitu untuk fungsi sigmoid)? Apakah itu akan membuat perbedaan?
Terima kasih banyak sebelumnya atas bantuan Anda. Saya dapat membantu mengklarifikasi pertanyaan atau membagikan kode jika diperlukan.
sumber