blue and red robot toy

Politika Gradyanı Metodlarına Başlama Rehberi -2

Yazar : Umut Can Altın


Politika gradyanı teoremi, gradyanla orantılı kesin bir ifade verir; Ancak formülde verilen ifadeye yaklaşan bir örnekleme yöntemi gereklidir.

Image for post

Durum ve hareket dağılımı politika pi’yi izlediğinde Expectation ifadesi :

Image for post

ifadesi olarak görülür. Artık ifademizi politika güncellemesi için kullanabiliriz. (Rastgele değişkenin olası değerleri üzerindeki bir toplamı pi altında bir beklenti ile değiştirdik.)

REINFORCE(Monte Carlo Policy Gradient) Algoritması

Image for post

İfademize politikayı çarpım ve bölüm olarak ekledik.

Image for post

Payda kalan politikayı qdeğeri ile birliştirip, q değerindeki aksiyon ifadesini politikadan örneklenen aksiyon ile değiştirelim.

Image for post

Şimdi de q(s,a) ifadesini G ile değiştirebiliriz. Bir durum ve hareketin bize verdiği değer fonksiyonun eşiti beklenen toplam ödüldür.

Image for post

Parantez içindeki son ifade(Bir önceki resim) tam olarak gerekli olan şeydir, beklentisi gradyanla orantılıdır ve her bir zaman adımında örneklenebilir. Genel stokastik gradyan çıkış algoritmamızı örneklemek için bu denklemi kullanmak bize REINFORCE güncellemesini verir:

Image for post

Güncelleme, parametre vektörünü geri dönüş ile orantılı ve eylem olasılığı ile ters orantılı olarak artırır. Bu da politikanın en yüksek getiriyi sağlayan eylemleri destekleyen yönlerde en fazla hareket etmesine neden olur.

REINFORCE’un t zamanından bölümün sonuna kadar gelecekteki tüm ödülleri(G) içeren tam dönüşü kullandığını unutmayın.

Bu anlamda REINFORCE bir Monte Carlo(Başka bir yazıda değinilebilir) algoritmasıdır ve sadece bölüm tamamlandıktan sonra yapılan tüm güncellemelere sahip epizodik senaryo için iyi tanımlanmıştır.

Image for post
Image for post
Image for post

gradyan bölümünün ln e çevirilmesi ile gösterim değişti ancak kafanız karışmaması açısından yukarıya koydum denklemi. Aslında formül hala aynı. Değişen kısıma aynı zamanda eligibility vector’de deniliyor. Genel formül ile farklı G hesaplamasında bu sefer discount factor kullanıldığını da görelim.

Stokastik bir politika gradyanı yöntemi olan REINFORCE iyi teorik yakınsama özelliklerine sahiptir. Bir bölüm üzerinde beklenen güncelleme performans gradyanı ile aynı yöndedir. Bu, yeterince düşük öğrenme katsayısı için beklenen performansta iyileşme ve standart stokastik yaklaşım koşulları altında yerel bir optimum seviyeye yakınsamayı sağlar. Bununla birlikte, bir Monte Carlo yöntemi olarak REINFORCE yüksek varyansa sahip olabilir ve bu nedenle yavaş öğrenme gerçekleşebilir.

Kısaca şimdi algoritma üzerinden geçelim. Öncelikle türevlenebilir bir politika belirlemesi yapıyoruz ki bu bir NN olabilir. Ardından NN i 0 veya random ağırlıklar ile initialize(başlatma, ilklendirme) ediyoruz.Ardından sonuz bir döngüye giriyoruz. Bu döngünün içerisinde öncelikle tanımladığımızpolitika pi ye dayanarak oyunun sonuna kadar örnekleme yapıyoruz ve bunları hafızamızda tutuyoruz. Oyun bittikten sonra ise aklımızda tuttuğumuz bu adımların üzerinden tek tek geçerek her adım için önce G(t zamanından bölümün sonuna kadar gelecekteki tüm ödüllerin discounted(γ) toplamı) hesaplaması yapıyoruz. Yaptığımız hesaplama üzerinden formülümüzü uyguladıktan sonra döngüleri devam ettiriyoruz.

REINFORCE’un yaygın olarak kullanılan bir varyasyonu, sapmayı değiştirmeden gradyan kestiriminin varyansını azaltmak için dönüş Gt’sinden bir taban çizgisi(baseline) değerini çıkarmaktır (Bunu mümkün olduğunda her zaman yapmak istediğimizi unutmayın). Politika gradyan teoremini, aksiyon değerinin keyfi bir taban çizgisi(baseline) ile karşılaştırılmasını içerecek şekilde genelleştiriyoruz:

Image for post

Taban çizgisi, aksiyona göre değişmediği sürece herhangi bir fonksiyon, rastgele bir değişken bile olabilir; çıkarılan miktar sıfır(aksiyona göre değişmeyen bir fonksiyonda) olduğu için denklem geçerli kalacaktır:

Image for post

Yeni güncelleme formülümüze baktığımızda basline eklemek dışında bir değişiklik yapmadık:

Image for post

Genel olarak, taban çizgisi güncellemenin beklenen değerini değiştirmeden bırakır, ancak varyansı üzerinde büyük bir etkisi olabilir. Örneğin, genel bir taban çizgisi durum değerini aksiyon değerinden çıkarmaktır ve uygulanırsa gradyan çıkış güncellemesinde avantaj değeri kullanılmış olur.

Image for post

Yani kısaca artık güncellememiz aksiyonun değeri yerine avantajı olacaktır. Konu hakkında Sutton’ın kitabı dışında detaylı bilgi edinmek için bakabileceğiniz ve benim yararlandığım ve sevdiğim kaynaklar:

https://lilianweng.github.io/lil-log/2018/04/08/policy-gradient-algorithms.html

https://danieltakeshi.github.io/2017/03/28/going-deeper-into-reinforcement-learning-fundamentals-of-policy-gradients/

implementasyon için ise pytorch örnekleri içerisinde bulunan :

https://github.com/pytorch/examples/blob/master/reinforcement_learning/reinforce.py

veya:

https://github.com/yukezhu/tensorflow-reinforce/blob/master/rl/pg_reinforce.py

ref : Sutton & Barto Book: Reinforcement Learning: An Introduction

Bir Cevap Yazın

Başa dön