Derin Pekiştirmeli Öğrenme - bir değerlendirme ölçütü olarak Q anlamına gelir
Space Invaders oyununu öğrenen biri için bir derin öğrenme modeli ayarlıyorum (aşağıdaki resim). Durum, oyuncu ile düşmanlar arasındaki göreceli ökledik mesafe + oyuncu ve pencere yüksekliğine göre normalleştirilmiş en yakın 6 düşman lazeri arasındaki göreceli mesafe (oyuncunun konumu ise$(x_p,y_p)$ ve bir düşmanın konumu $(x_e,y_e)$göreceli öklid mesafesi $\frac{\sqrt{(x_p-x_e)^2+(y_p-y_e)^2}}{HEIGHT}$ve HEIGHT pencere yüksekliğidir). Dolayısıyla gözlem alanı boyutu (10 + 6) 'dır, bu da 16 birimlik derin sinir ağımın girdisiyle sonuçlanır.


İşte öğrenci hakkında bazı sonuçlar:

Yanıtlar
Bence asıl sorununuz, temel özellik olarak göreceli mesafeyi kullanmak. İki büyük zayıflığı vardır:
Bir nesneye olan uzaklık nesneye yön vermez. En iyi eylem seçimleri, kritik olarak yöne bağlıdır. Örneğin, oyuncunun doğrudan 0,1 birim yukarısındaki bir düşman lazer cıvatası, kaçınma eylemi gerektiren acil bir tehlikedir, oysa sola veya sağa 0,1 birim bir tehlike oluşturmaz ve oyun penceresinden çıkmak üzeredir. Göreceli uzaklık özelliğiniz bu senaryolar arasında ayrım yapmaz, ancak kritik bir farktır.
Biraz daha az önemli, ancak ham mesafe herhangi bir hareket duygusu yakalamıyor. Düşmanlar sürekli olarak sırayla hareket ederse, ancak her zaman tam olarak aynı yönde veya aynı hızda değilse, o zaman hızları da devletin bir parçası olmalıdır.
Özellikleri iyileştirmenin bir yolu, her bir öğe için oyuncuya ne kadar çabuk yaklaştığını veya uzaklaştığını gösteren bir hız bileşeni eklemektir . Bu biraz yardımcı olabilir, ancak bence mesafe ve hızdan daha fazla veriye ihtiyacınız var.
Bence normalize kullanmalısın $x, y$izlenen her öğe için özellik olarak konum, artı normalleştirilmiş hız$dx, dy$ yön değiştirebilen herhangi bir nesne türü için (eğer düşman lazerler her zaman düz düşüyorsa, bunlar için hiçbir şeye ihtiyacınız olmayabilir).
Ek olarak:
Pencere kenarları önemliyse, en azından göreli $x$biri, yani ajan ekrandaki mutlak konumunu ve ne kadar manevra yapması gerektiğini bilir. Bu, oyuncunun daha fazla sola veya sağa hareket etmesi engellenmesi veya oynatıcının ekranın diğer tarafına "sarılması" durumunda geçerlidir. Her iki efekt türü de oyunun ekran kenarına yakın oynanışını önemli ölçüde etkiler.
Öngörülen değeri takip etmek için oyuncu füzelerinin konumunu izlemeniz gerekir. Ajanın ne zaman ateşlemenin en iyi olacağını tahmin etmesine izin vermek yeterli değildir - bir değer işlevini doğru bir şekilde izlemek için, birkaç adım önce ateşlediği füzenin bir hedefi vurma veya ıskalama olasılığının olup olmadığını "görmesi" gerekir.
Hem düşman lazerler hem de oyuncu füzeleri için, verileri bazı kriterlere göre (oyuncuya uzaklık gibi) filtrelemek ve sıralamakta sorun yoktur. Bu tutarlı olduğu sürece, bu tür bir ön işleme sahip olmak çok yardımcı olabilir.