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

Reinforcement Learning Türkiye {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.

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

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ı

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

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

Ş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.

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:

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.

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:

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:

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

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.

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:

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

veya:

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

--

--

Reinforcement Learning Türkiye
Reinforcement Learning Turkiye

Reinforcement Learning (Pekiştirmeli Öğrenme) Turkiye TR/EN. A research/application group towards Reinforcement Learning. RL-TR | @Turkiye_RL