Pembelajaran Penguatan Mendalam - berarti Q sebagai metrik evaluasi

Aug 18 2020

Saya menyetel model pembelajaran mendalam untuk pelajar game Space Invaders (gambar di bawah). Status didefinisikan sebagai jarak eucledian relatif antara pemain dan musuh + jarak relatif antara pemain dan 6 laser musuh terdekat yang dinormalisasi oleh ketinggian jendela (jika posisi pemain adalah$(x_p,y_p)$ dan posisi musuh adalah $(x_e,y_e)$, jarak relatif euclidian adalah $\frac{\sqrt{(x_p-x_e)^2+(y_p-y_e)^2}}{HEIGHT}$dan HEIGHT adalah tinggi jendela). Oleh karena itu, dimensi ruang observasi adalah (10 + 6), yang menghasilkan masukan dari jaringan saraf dalam saya sebanyak 16 unit.

Agen saya sepertinya tidak belajar (fungsi reward tidak bertambah) dan saya pikir saya akan memeriksa nilai mean Q, yang merupakan output dari deep neural network utama saya, dan, alih-alih meningkat, saya telah berkomentar bahwa nilai mean Q menjadi stabil (seperti pada gambar di bawah) alih-alih meningkat. Saya telah memodifikasi banyak parameter tuning (ukuran batch, arsitektur jaringan saraf, dan parameter ...) tetapi saya masih memiliki masalah yang sama. Adakah ide mengapa nilai rata-rata Q tidak meningkat?

Berikut beberapa hasil tentang pelajar:

Jawaban

NeilSlater Aug 20 2020 at 04:35

Saya pikir masalah utama Anda adalah penggunaan jarak relatif sebagai fitur inti. Ini memiliki dua kelemahan utama:

  • Jarak suatu benda tidak memberikan arah ke benda tersebut. Pilihan tindakan terbaik semuanya sangat bergantung pada arahan. Misalnya laser musuh yang ditembakkan 0,1 unit tepat di atas pemain adalah bahaya langsung yang membutuhkan tindakan mengelak, sementara satu 0,1 unit ke kiri atau kanan bukanlah bahaya dan akan meninggalkan jendela permainan. Fitur jarak relatif Anda tidak membedakan antara skenario tersebut, tetapi ini adalah perbedaan kritis.

  • Sedikit kurang penting, tetapi jarak mentah tidak menangkap pergerakan apa pun. Jika musuh bergerak secara konsisten setiap belokan, tetapi tidak selalu dalam arah yang sama persis atau kecepatan yang sama, maka kecepatan mereka juga harus menjadi bagian dari status.

Salah satu cara untuk meningkatkan fitur adalah dengan menambahkan komponen kecepatan untuk setiap item, yang menunjukkan seberapa cepat item tersebut mendekati atau mundur dari pemain. Ini mungkin sedikit membantu, tetapi perasaan saya adalah Anda membutuhkan lebih banyak data daripada jarak dan kecepatan.

Saya pikir Anda harus menggunakan normalisasi $x, y$posisi sebagai fitur untuk setiap item yang dilacak, ditambah kecepatan yang dinormalisasi$dx, dy$ untuk semua jenis objek yang dapat berubah arah (jika laser musuh selalu jatuh ke bawah, Anda mungkin tidak memerlukan apa pun untuk itu).

Sebagai tambahan:

  • Jika tepi jendela penting, Anda harus menyertakan setidaknya kerabat $x$salah satunya, sehingga agen mengetahui posisi absolutnya di layar dan berapa banyak ruang yang dimilikinya untuk bermanuver. Ini benar apakah pemain diblokir untuk bergerak lebih jauh ke kiri atau ke kanan, atau apakah pemain "membungkus" ke sisi lain layar. Kedua jenis efek ini secara signifikan akan memengaruhi cara permainan dimainkan di dekat tepi layar.

  • Untuk melacak nilai yang diprediksi, Anda perlu melacak lokasi rudal pemain. Tidaklah cukup hanya membiarkan agen memprediksi kapan waktu terbaik untuk menembak - untuk melacak secara akurat fungsi nilai, agen perlu "melihat" apakah rudal yang ditembakkan beberapa waktu lalu kemungkinan besar mengenai atau meleset dari target.

  • Untuk laser musuh dan rudal pemain, tidak masalah untuk memfilter dan mengurutkan data berdasarkan beberapa kriteria (seperti jarak ke pemain). Selama ini konsisten, mungkin akan sangat membantu untuk memiliki pemrosesan awal seperti itu.