Derin Pekiştirmeli Öğrenme ile Pacman Oynanması

Original article was published on Deep Learning on Medium


Bu noktadan sonra model başarımını arttırmak için küçük bir ip ucu kullanacağız. Yukarıda gösterilen modele verilen girdi RGB renk kanallarını içeren, 3 boyutlu bir matris formatıdır. Renk bilgileri evrişimsel katmanda bazen çok önemli öznitelikler oluşturabilir. Fakat bir atari oyununda zaman düzleminde elde edeceğimiz veriler bizim için daha anlamlıdır. Bunu sağlamak için RGB formatında bulunan girdiyi Grayscale formatına dönüştürüp tek kanallı ekran alıntısı elde ederiz. Sonradan ardışık zaman aralığında elde edilen resimler birleştirilip elde edilen çok boyutlu matris modele girdi olarak verilir. Aşağıdaki resimde bu yaklaşım gösterilmiştir.

Birleştirilmiş Ekran Alıntısı

Modele T anında bulunan RGB formatında girdi vermektense, farklı zaman aralıklarında bulunan birleştirilmiş ekran alıntısı vermek, modelin zaman düzleminde öznitelik çıkarımını sağlayacağı için daha verimli olmaktadır.

Model Optimizasyonu

Son aşamada tasarlanan modeli optimize etmek kaldı. Herhangi bir derin öğrenme modelini optimize etmek için hata değerine ulaşmamız gerekmektedir. Bir sınıflandırma probleminde beklenen değerden tahmin edilen değerin farkını alarak hata değerine kolaylıkla ulaşabiliriz. Fakat DRL problemlerinde etiketli bir durumdan bahsetmek mümkün değildir. İstenilen hata değerine ulaşmak için aşağıdaki Bellman denkleminden faydalanılır.

Q ∗:State x Action → R (1)

Burada yukarıda anlatıldığı üzere S (Durum) ve A (Aksiyon) değerlerini alıp R ( ödül ) değerini döndüren Q fonksiyonunu kullanıyoruz. Amacımız en yüksek R değerini elde etmektir. Bunu aşağıdaki gibi gösterebiliriz.

π ∗ (s) = argmax Q ∗ (s,a) (2)

Ancak ajanın bulunduğu ortamdaki tüm bilgilere sahip değiliz dolayısı ile bir Q* değerine erişim sağlayamayız. Fakat yapay sinir ağları ile bir sonraki adımı
oluşturabiliriz. Burada aşağıdaki Bellman denkleminden faydalanabiliriz.

Qπ (s,a) = r + γQπ(s′,π(s′)) (3)

Her iki tarafın farkını alarak zamansal hataya ulaşmış oluruz. Böylelikle ağı eğitmek için gerekli hata değerini bulmuş oluruz.

δ = Q(s,a) − (r + γmaxQ(s′,a)) (4)

Görüldüğü üzere 3. denklemde yer alan Bellman eşitliği ile δ hata değerini elde edebildik. Buradan sonra yapılması gereken probleme uygun optimizasyon algoritması kullanılmasıdır. Stochastic gradient descent (SGD) algoritması ile iki gün boyunca eğitilen model aşağıdaki gibi sonuç vermektedir.

Model toplamda 2830 ödül değeri elde edebilmiştir. Bu oyuna hemen hemen yeni başlayan kişiler arasında yaptığım denemelerde 3100 ortalama ödül değerini aldıklarını gördüm. Bu açıdan modelin elde ettiği değer kabul edilebilir aralıktadır. Uygulama kodlarını github hesabımda bulabilirsiniz.