Q Öğrenme
Q-Learning varyantları, zaman farkı öğrenmesi, deneyim tekrarı, gecikmeli ve seyrek ödüller, hiyerarşik öğrenme, değer ve politika tabanlı öğrenme ile aktör-kritik öğrenme yaklaşımlarını öğreniyoruz.
Basit Açıklama
1. Q-Learning
Q-Learning, model-bağımsız, off-policy (politikadan bağımsız) bir pekiştirmeli öğrenme algoritmasıdır. Amacı, Q-değer fonksiyonunu Q(s,a) öğrenmektir. Bu fonksiyon, bir durum s içinde bir eylem a gerçekleştirildiğinde ve ardından optimal politikaya uyulduğunda beklenen toplam ödülü tahmin eder.
Temel Özellikler:
- Model-Bağımsız: Ortamın dinamiklerini (geçiş olasılıkları veya ödüller) bilmeye gerek yoktur.
- Off-Policy: Optimal politikayı öğrenmek için ajan tarafından yapılan eylemlerden bağımsızdır (örneğin, epsilon-greedy keşif politikasını kullanabilir).
Güncelleme Kuralı:
Q-değeri iteratif olarak şu şekilde güncellenir:
Q(s,a)←Q(s,a)+α[r+γa′maxQ(s′,a′)−Q(s,a)]
Burada:
- α: Öğrenme oranı.
- r: Alınan ödül.
- γ: Gelecekteki ödüller için indirim faktörü.
- s′,a′: Bir sonraki durum ve eylem.
Q-Learning, her durum-eylem çiftine sonsuz kez erişilirse optimal politikaya yakınsar.
2. Derin Q-Learning (Deep Q-Learning — DQN)
Derin Q-Learning, Q-learning algoritmasını genişleterek sinir ağlarını Q-değer fonksiyonunu yaklaşık olarak öğrenmek için kullanır. Bu, özellikle büyük ya da sürekli durum uzaylarında faydalıdır, çünkü Q-tablosunu saklamak pratik değildir.
Temel Kavramlar:
- Fonksiyon Yaklaşımı: Tablo yerine, Q-değeri Q(s,a;θ) sinir ağı ile tahmin edilir (θ, ağın parametreleridir).
- Hedef Ağı (Target Network): Eğitimi kararlı hale getirmek için ayrı bir hedef ağı kullanılır. Bu ağ, max_a′Q(s′,a′;θ′) hesaplamasında kullanılır ve daha az sıklıkla güncellenir.
- Deneyim Tekrarı (Experience Replay): Geçmişteki deneyimler (s,a,r,s′) bir tampon bellekte saklanır. Eğitim için bu bellekteki mini toplamlar (mini-batch) rastgele seçilir.
Kayıp Fonksiyonu:
L(θ)=E[(r+γmax_a′Q(s′,a′;θ′)−Q(s,a;θ))²]
3. Çift Q-Learning (Double Q-Learning)
Çift Q-Learning, Q-Learning algoritmasında oluşabilecek aşırı iyimserlik yanlılığını (overestimation bias) çözmek için geliştirilmiştir. Bu yanlılık, max_a′Q(s′,a′) değerinin gereğinden fazla tahmin edilmesinden kaynaklanır.
Nasıl Çalışır:
İki ayrı Q-değer fonksiyonu (veya sinir ağı) kullanılır: Q1 ve Q2:
- Q1: a′=argmax_a′Q1(s′,a′) eylemini seçmek için kullanılır.
- Q2: Seçilen bu eylemin değerini tahmin etmek için kullanılır: Q_2(s′,a′).
Güncelleme kuralı şu şekilde olur:
Q1(s,a)←Q1(s,a)+α[r+γQ2(s′,arga′maxQ1(s′,a′))−Q1(s,a)]
Bu yöntem, eylem seçimi ve değer tahmini süreçlerini ayırarak aşırı tahmini azaltır.
4. Zaman Farkı (Time-Difference — TD) Öğrenimi
TD öğrenimi, Q-learning gibi algoritmaları içeren daha geniş bir çerçevedir. Monte Carlo yöntemleri ile dinamik programlama fikirlerini birleştirir.
Temel Fikir:
TD öğrenimi, tahminler arasındaki farkı (veya hatayı) kullanarak değer fonksiyonunu günceller:
V(s)←V(s)+α[r+γV(s′)−V(s)]
Burada:
- V(s): Mevcut durumun değeri.
- TD hatası=r+γV(s′)−V(s): Mevcut tahminin, gözlemlenen ödül ve bir sonraki durumun tahmini değeri ile ne kadar farklı olduğunu ölçer.
TD yöntemleri, Q-Learning ve SARSA gibi algoritmaların temelini oluşturur.
5. Deneyim Tekrarı (Experience Replay)
Deneyim Tekrarı, özellikle Derin Q-Learning’de örnek verimliliğini artırmak ve eğitimi kararlı hale getirmek için kullanılan bir tekniktir.
Nasıl Çalışır:
- Ajanın deneyimleri (s,a,r,s′) bir tampon bellekte saklanır.
- Eğitim sırasında, bu bellekteki deneyimlerden mini toplamlar (mini-batch) rastgele seçilir.
- Bu örnekler, Q-değer fonksiyonunu güncellemek için kullanılır.
Avantajlar:
- Zamanla Bağımlılığı Azaltır: Art arda gelen verilerin yüksek derecede bağımlı olmasının önüne geçer.
- Veri Verimliliği: Aynı deneyimlerden birden fazla güncelleme yapılmasını sağlar.
6. Gecikmeli ve Seyrek Ödüller (Delayed Sparse Rewards)
Bazı ortamlarda ödüller seyrek (örneğin, sadece bölümün sonunda verilen ödüller) veya gecikmeli olabilir. Bu, öğrenmeyi zorlaştırır çünkü ajan hangi eylemlerin ödüle katkıda bulunduğunu çıkarım yapmak zorundadır.
Zorluklar:
- Kredi Atama Problemi: Gecikmeli bir ödüle hangi eylemlerin katkıda bulunduğunu belirlemek.
- Yavaş Öğrenme: Seyrek ödüller, sınırlı geri bildirim sağlar.
Çözümler:
- Ödül Şekillendirme: Hedefe ulaşma yönünde ara ödüller verilmesi.
- Zamansal İndirim (Discounting): Anlık ve gecikmeli ödüller arasındaki dengeyi γ faktörü ile ayarlamak.
- Hiyerarşik Öğrenme: Görevi daha sık ödüller içeren alt görevler halinde bölmek.
7. Hiyerarşik Öğrenme (Hierarchical Learning)
Hiyerarşik Pekiştirmeli Öğrenme (HRL), öğrenmeyi bir görev hiyerarşisi halinde organize eder. Karmaşık problemleri daha basit alt problemlere böler.
Ana Bileşenler:
- Yüksek Düzey Kontrolcü: Hangi alt görevin yürütüleceğine karar verir.
- Düşük Düzey Kontrolcüler: Belirli alt görevleri gerçekleştirmek için eylemleri yürütür.
Avantajlar:
- Ölçeklenebilirlik: Karmaşık ortamları daha verimli bir şekilde yönetir.
- Seyrek Ödüller: Her alt görev için daha sık ödüller sağlanabilir.
Bir örnek framework, “options framework”tür. Burada “options” (seçenekler), bir dizi temel eylemi içeren genişletilmiş eylemlerdir.
8. Değer Tabanlı ve Politika Tabanlı Öğrenme (Value-Based vs. Policy-Based Learning)
Bu, pekiştirmeli öğrenmedeki iki ana yaklaşımdır.
Değer Tabanlı Öğrenme:
- Değer fonksiyonunu (Q(s,a) veya V(s)) öğrenmeye odaklanır.
- Politika dolaylı olarak türetilir: π(s)=argmaxaQ(s,a).
- Örnekler: Q-Learning ve derin Q-Learning.
Politika Tabanlı Öğrenme:
- Politikayı doğrudan π(a∣s;θ) öğrenir. Bu, durumları eylemlere eşler.
- Sürekli eylem alanları için kullanışlıdır.
- Örnekler: Pekiştirme, PPO (Proximal Policy Optimization).
Karşılaştırma:
- Değer Tabanlı: Eğitimi daha kolaydır, ancak sürekli eylem alanlarında zorlanabilir.
- Politika Tabanlı: Sürekli eylemleri daha iyi yönetir, ancak yüksek varyans olabilir.
9. Aktör-Eleştirmen (Actor-Critic) Öğrenmesi
Aktör-Eleştirmen yöntemleri, değer tabanlı ve politika tabanlı yaklaşımları birleştirir. İki ana bileşeni vardır:
- Aktör (Actor): Politikayı π(a∣s;θ) öğrenir ve eylemleri belirler.
- Eleştirmen (Critic): Değer fonksiyonunu V(s;ϕ) tahmin eder ve aktörün kararlarını değerlendirir.
Eğitim:
- Eleştirmen, aktöre geri bildirim (örneğin, TD hatası) sağlayarak politikayı iyileştirir.
- Aktör, ödülleri maksimize edecek şekilde politikasını günceller.
Avantajlar:
- Politika gradyan yöntemlerindeki varyansı azaltır.
- Hem ayrık hem de sürekli eylem alanlarını yönetebilir.
Giriş
Pekiştirmeli öğrenme, bir ortamla etkileşime girerek deneyimlerin nasıl kullanılacağı ve dolayısıyla hangi eylemlerin yararlı olduğunun öğrenilmesiyle ilgilidir. Bu, ortamımıza nasıl yanıt vereceğimize dair bir dizi karar almamız gerektiği anlamına gelir. Daha önce Sıralı Karar Problemleri (SDP: Sequential Decision Problem) ve en iyi eylem yolunun nasıl belirleneceği biçimselliğiyle karşılaştık. Bu bizi SDP için dinamik programlama ve Bellman denklemi (optimallik) tartışmasına götürdü. Temel unsurları gözden geçirmeden önce, neyi başarmak istediğimize dair sezgisel bir resim oluşturalım.
Aşağıdaki şekilde gösterildiği gibi bir kedi ve bir fare arasındaki basit bir oyunu düşünün:
- Hem kedi hem de fare sekiz serbestlik derecesine sahiptir. Yukarı, aşağı, sola, sağa veya herhangi bir çaprazda hareket edebilirler. Herhangi bir anda bu eylemlerden herhangi birini gerçekleştirebilirler.
- Fare kedi tarafından yakalanmaktan kaçınmaya çalışır. Kedi fareyi yakalarsa oyun biter. Yeni bir peynir parçası belirir ve kedi ile farenin pozisyonu değişmeden kalır.
- Eğer fare peynir parçasının bulunduğu yere gelerek peyniri alırsa puan kazanır.
- Kedi fareyi yakalarsa, kedi bir puan kazanır ve mevcut oyun sona erer. Kedi ve fare için puanlar güncellenir ve oyun yeniden başlar.
Bu basit oyunda fare, kediye yakalanmadan peynire nasıl ulaşacağını öğrenir. Oyunun her döneminde fare, oyunun düzenini, yani peynirin, kedinin ve engellerin yerini bilir ve bu bilgiye dayanarak fare bir sonraki hamlesinin nereye olacağına karar vermelidir. Bir dizi oyun sırasında farenin daha sonra hangi eylem sırasını, yani belirli bir adımda hangi yöne hareket edeceğini öğrenmesi gerekir. Kedinin hareketleri belirgin ve sabit bir örüntüyü takip ediyorsa ve fare bunu biliyorsa, fare denemeden nasıl en iyi şekilde hareket edeceğini belirleyebilir. Ancak, kedinin hareketleri önceden tam olarak bilinmiyorsa, fare oyunu birkaç kez oynayarak deneyim kazanmak zorundadır.
Sıralı ve Markov Karar Problemleri
Şimdi bu tanımı pekiştirmeli öğrenme ve Sıralı Karar Problemleri (SDP) dilinde resmileştiriyoruz. Aşağıdaki şekle bakıldığında, fare gibi bir ajan (ortamda eylemleri gerçekleştiren varlık), yukarıdaki oyun durumunda kedi, fare ve peynirin yerleştirildiği tahta olan bir ortamla etkileşime girer.
Ajan, oyun tahtasının düzeni ve kedi, fare ve peynirin herhangi bir andaki konumu gibi bir durum st’yi gözlemler. Durum, etkileşimler sırasında bu andaki ortamın belirli bir yapılandırmasıdır. Tüm olası durumların kümesine durum alanı S denir. Karar probleminin her turunda, ajanın bir eylem seçmesi gerekir ve tüm olası eylemlerin kümesi A ile gösterilir. Tüm eylemlerin tüm durumlardan erişilebilir olmayabileceğini unutmayın.
Bir eylem a gerçekleştirilirken, ortamın durumu bir geçiş olasılığı P(s′ | s, a)’ya göre s’den s′’ye değişir. Bu, sistemin her zaman eylem a’yı takiben aynı yeni durum s′’ye girdiği kesin bir değişikliği içerebilir, bu durumda P bir geçiş fonksiyonudur. Ancak, genel olarak P(s′ | s, a), eylem a, s durumunda gerçekleştirildiyse ortamın s′ durumunda olma olasılığını belirleyen bir olasılık dağılımı veya kernel’dir.
Markov karar problemleri (MDP), Markov özelliğini yerine getirdikleri için sıralı karar problemlerinin özel bir durumudur. Markov özelliği, mevcut durum verildiğinde, gelecekteki durumların geçmiş durumlardan bağımsız olduğunu belirtir. Bu, SDP’nin hafızasız olduğu, yani mevcut durumun tüm ilgili bilgileri içerdiği ve gelecekteki durumların nasıl geliştiğini anlamak için tüm önceki durumların ve eylemlerin geçmişini tutmamıza gerek olmadığı anlamına gelir.
Aşağıdaki açıklamada, çoğunlukla bir Markov karar problemine odaklanacağımızı varsayacağız. Bir eylemi tamamladıktan sonra, ajan bir ödül rt alır, burada ödül, mevcut durumun, eylemin ve eylem gerçekleştirildikten sonra ortamın aldığı yeni durumun bir fonksiyonudur: r = r(s, a, s′). Özellikle, ödül yalnızca mevcut eyleme bağlıdır, olası gelecekteki eylemlere bağlı değildir. Eylem a gerçekleştirildikten sonra beklenen ödülü hesaplayabiliriz:
Burada, s durumunda a eylemini gerçekleştirdikten sonra P(s′ | s, a) olasılığına ulaşabileceğimiz tüm olası gelecek durumlar s′ üzerinde toplama yapmamız gerekir. Bunun nedeni, durumlar arasındaki geçişin stokastik olmasıdır, yani aynı durumdan başlayıp aynı eylemi gerçekleştirsek bile farklı durumlarda sonlanabiliriz. Dolayısıyla süreç şu şekilde tanımlanabilir:
- s0 başlangıç durumuyla başlayın
- t = 0'dan başlayarak ∞’a kadar herhangi bir t zamanı için
a) st durumunu gözlemleyin
b) Eylemi gerçekleştirin, ortam P(s_t+1 | st, at) olasılığıyla yeni durum s_t+1'e değişecektir.
c) rt ödülünü alın
SDP ve MDP’yi çözmek
Bu, çevreyle etkileşime girdiğimizde bir dizi durum, eylem ve ödüle yol açar: s0, a0, r1, s1, a1, r2,…. Toplam (indirimli) ödül daha sonra R(s0) = r0 + γr1 + γ²r2 + ⋯ ile verilir. Bu niceliğe “getiri” de denir. Sonlu karar problemlerinde, yani sabit sayıda adım için çalışan karar problemlerinde, her adımda elde ettiğimiz tüm ödülleri ekleyebiliriz ve toplam her zaman sonlu bir sayı olur. Ancak, sonsuza kadar çalışabilen sonsuz bir karar probleminde, tüm ödüllerin toplamının sonlu bir sayı olarak kaldığından emin olmamız gerekir. Bu, indirim faktörü γ’yi tanıtarak elde edilebilir. Eğer γ ∈ (0, 1) ise, toplam her zaman sonludur.
Bunu genişletebilir ve indirim edilmemiş tutarı elde etmek için γ = 1 değerini kullanabiliriz.
Daha sonra, ajanın ne yapacağını, yani belirli bir durum s gözlemlendiğinde hangi olası eylemin gerçekleştirileceğini belirleyen bir politika π(s) : S →A öğrenmesi gerekir. Politika, bir eylemin nasıl seçileceğini belirleyen bir dizi kuraldır. Bu, yukarıdaki olay dizisinin değiştirildiği anlamına gelir:
- s0 başlangıç durumuyla başlayın
- t = 0'dan başlayarak ∞’a kadar herhangi bir t zamanı için:
a) Durum st’yi gözlemleyin
b) Mevcut politikaya göre = π(st) noktasında harekete geçin, ortam P(s_t+1 | st , at) olasılığıyla s_t+1 yeni durumuna değişecektir.
c) rt ödülünü alın
Bu nedenle, toplam ödül artık R^π(s0) politikasına da bağlıdır. Ortam, geçiş olasılıkları P(s′ | s, a) ile ifade edildiği gibi stokastik olduğundan, R^π(s) genellikle ortamla farklı etkileşimler arasında farklıdır. Bu nedenle, politika π’nin değer fonksiyonunu toplam beklenen ödül olarak tanımlarız: V^π(s) = E_π[R^π(s)]
Burada Eπ [·], belirli bir π politikası altında çevreyle etkileşimlerin bir çalışmasında gerçekleştirilen eylemlerin dizisi üzerindeki beklenti değeridir.
Farklı politikalar değer fonksiyonunun farklı değerlerine yol açacaktır. En yüksek değere sahip olan, diğer tüm politikalar aynı veya daha düşük değerlere yol açtığından, en iyi politika V * = V^π^*(s) ≥ V^π(s) olan en iyi değer fonksiyonu olarak adlandırılır.
Varsayımlar
Daha önce, dinamik programlama kullanarak optimum politikanın nasıl bulunacağını tartışmıştık, bu da bizi Bellman denkleminin (optimallik) tartışmasına götürdü. Ancak, şimdiye kadar her zaman çok önemli bir varsayımda bulunduk: Ortamın nasıl çalıştığını biliyoruz veya daha spesifik olarak, geçiş olasılıklarını P(s′ | s, a) biliyoruz. Bu geçiş olasılıkları, çevre hakkındaki bilgimizi tanımlar ve eylemlerimize verilen tüm tepkileri bu sayılara kodladığımız için bir çevre modelini temsil eder.
Bu bağlamda, sıralı karar verme problemini “çözmek”, çevremizin eylemlerimize stokastik olarak nasıl tepki verdiğini bildiğimiz için bir planlama veya optimizasyon problemidir. Optimal politikayı bulmak için değer iterasyonu (value iteration) veya politika iterasyonu (policy iteration) gibi yöntemler kullanabiliriz. Ayrıca, belki de daha az belirgin olan başka bir varsayımda bulunduk, yani optimal politikayı bulmak için gerekli hesaplamaları gerçekten yapabileceğimizi ve yönetebileceğimizi varsaydık.
Kedi-fare oyununun basit durumunda, bu çok karmaşık değildir: Oyun tahtası (çevre) yalnızca sınırlı sayıda kareye sahiptir, örneğin 9 × 9 bir ızgara. Fare ve kedi yalnızca sekiz yönden birine hareket edebilir, yani fare her bir durumda çevreyle etkileşimde bulunmak için yalnızca sekiz eylemden birini gerçekleştirebilir. Ancak, ortaya çıkan hesaplamaları yönetmek, çok sayıda olası eylemimiz olduğunda veya eylem uzayı A’nın sürekli hale gelmesi durumunda hızla çok karmaşık hale gelebilir. Örneğin, bir uçak ya da helikopter uçurmak ya da otonom bir aracı kontrol etmek istersek, durum uzayı S de çok büyük ve karmaşık hale gelir: Bir araba durumunda, belirli bir trafik durumunu gözlemleriz ve hızlanmak, direksiyonu çevirmek ya da fren yapmak gibi geniş bir eylem yelpazesine sahibiz.
Bu eylemlerden her biri içinde de geniş bir spektrum bulunur; örneğin, frenlere nazikçe basmak, motor veya rejeneratif frenleme kullanmak ya da sürtünmeye dayalı frenlerle sert veya acil fren yapmak gibi. Ek olarak, şimdiye kadar hayal ettiğimiz hedefler oldukça basitti. Örneğin, fare peynire ulaşmak ve aynı zamanda kediden kaçınmak istemekteydi. Daha karmaşık senaryoları kolayca hayal edebiliriz; örneğin, fare peynire ulaşmak için önce bir labirenti geçmek, bir anahtarı bulmak ve ardından bu anahtarla peynirin bulunduğu bir kutuyu açmak zorunda kalabilir. Doğrudan peynire gitmek fareye yardımcı olmayacaktır. Bu tür hiyerarşik problemler, şimdiye kadar karşılaştığımız yöntemlerle modellemek açısından oldukça zordur.
Bu ünitede, çevrenin bir modeline sahip olmadığımızda, yani geçiş olasılıkları P(s′ | s, a) bilinmediğinde ve daha önce tartışılan dinamik programlama yaklaşımlarını kullanırken durum-eylem alanı başa çıkılamayacak kadar büyük olduğunda ardışık karar problemlerine nasıl yaklaşabileceğimize odaklanacağız.
Q-Öğrenme ve Zaman Farkı Öğrenmesi
Q-Faktörleri
Çevreyi tanımlayan modele erişimimiz olmadan eylem seçimimizi nasıl optimize edeceğimizi araştırmaya başlamadan önce, sıralı karar problemleri için dinamik programlama yaklaşımını kısaca gözden geçirmeliyiz. Sırada yalnızca bir adım kaldığı ve yalnızca bir son eylem yapmamız gerektiği durumuyla başlıyoruz, bu nedenle hangisinin en uygun eylem olduğunu belirlemek istiyoruz. Çevre s durumundaysa, bu eylemi yürüttüğümüzde ödül r(s, a) alırız. Şimdi Q faktörünü şu şekilde tanımlıyoruz: Q1(s, a) ≡ r(s, a).
Q faktörü, optimal eylemi gerçekleştirdiğimizde, yani optimal bir politikayı takip ettiğimizde aldığımız (toplam) ödül olarak tanımlanır. Dolayısıyla, en yüksek ödüle yol açan optimal politika π1(s) = argmax_a Q1(s, a)’dır, bu da eylem a’yı, onu yürüttüğümüzde aldığımız ödülü en üst düzeye çıkaracak şekilde seçtiğimiz anlamına gelir. Aynısını, değer fonksiyonu V1(s) = max_a Q1(s, a) açısından ifade edebiliriz.
O zaman SDP’de iki adımımız kaldığı durumu ele alalım. Bir durum s’den başlayarak, a eylemini gerçekleştiririz ve bir ödül r(s, a) alırız. Yukarıdaki tartışmayı takiben, son adım için değer fonksiyonunda ifade edilen ödül, optimal eylem a’yı gerçekleştirirsek V1(s′) = max_a Q1(s′, a) olur.
Son iki adımı ele aldığımızdan, son adım s’den değil, başlangıç durumu s’den bir eylem gerçekleştirerek ulaştığımız durum s’den başlar. Stokastik SDP’de, durum s’den eylem a’yı gerçekleştirdikten sonra durum s’de olma olasılığı P(s’ | s, a) ile verilir. Dolayısıyla, son adımın ödülü şudur:
İlk adımdaki ödül ile son adımdaki ödülü bir araya getirdiğimizde toplam ödül elde edilir:
Yukarıdaki duruma benzer şekilde, bir eylemde bulunmanın en iyi politikası, toplam ödülü Q_s(s, a) maksimize eden politikadır: π2(s) = argmax_a Q2(s, a).
Optimum değer fonksiyonu ile:
İşlemi tekrarlayabilir ve ardışık karar probleminin analizinde atılacak daha fazla adımı yinelemeli olarak ekleyebiliriz. O zaman, Qk(s, a), durum s’den başladığımızda, a eylemini gerçekleştirdiğimizde ve sonra her zaman kalan k — 1 adım için en uygun eylemi seçtiğimizde elde ettiğimiz toplam ödüldür. Karşılık gelen değer fonksiyonu, bazı durum s’den başlayarak k adım boyunca en uygun şekilde hareket edersek kazanılacak toplam ödülü ifade eden Vk(s) = argmax_aQk(s, a)’dır. Bunu Q ve V için yinelemeli formüller olarak ifade edebiliriz:
ve
Nereden başlarsak başlayalım, V0, V1, V2 değer fonksiyonları dizisi en iyi değer fonksiyonu V*’ye yakınsayacaktır ve Bellman’ın en iyilik denklemini elde ederiz:
Sağ taraftaki beklenti değeri Eπ[ · ]’yi alarak ortamın stokastik doğasını dahil edebiliriz. Bu, ardışık karar problemlerini çözmek için dinamik programlama yaklaşımını ele alırken daha önce tartıştığımız değer yineleme algoritmasıdır.
Durum Değeri İterasyonu
- k = 0'da, s durumu için V 0(s)’yi başlat.
- Tekrar et:
a) V_k+1(s) = max_a [r(s, a) + γ∑_s′P(s′ | s, a) Vk(s′)]
b) k = k + 1 güncelle.
3. |V k + 1 − Vk| < ϵ ise ve küçük bir sayı ϵ > 0 ise, yani değer yinelemesi yakınsarsa, dur.
Benzer bir algoritmayı Q(s,a) cinsinden ifade edebiliriz.
Eylem Değeri İterasyonu
- k = 0'da, Q0(s, a)’yı s durumu için başlat.
- Tekrar et:
a) Q_k+1(s, a) = r(s, a) + γ∑_s′P(s′ | s, a) max_a Qk(s′, a).
b) k = k + 1 güncelle.
3. Qk + 1 − Qk < ϵ ise, yani değer yinelemesi yakınsarsa dur.
V(s), durum-değer fonksiyonu olarak da adlandırılır ve s durumundan başlayıp daha sonra π politikasını izlediğimizde beklenen getiriyi tanımlar. Q(s, a), eylem-değer fonksiyonu olarak da adlandırılır ve s durumundan başlayıp a eylemini gerçekleştirip daha sonra π politikasını izlediğimizde beklenen getiriyi tanımlar.
Belirli bir durum-eylem çifti (s, a) için Q-fonksiyonunun değeri, a eylemini gerçekleştirdiğimizde s durumundaki bir ortamdan elde edeceğimiz ödülü niceliksel olarak belirler. Ödüllerimizi optimize etmek istediğimizden, Q-fonksiyonu en yüksek Q-değerine (veya ödüle) yol açan eylemi arayarak en iyi a eylemini bulmamıza yardımcı olur.
Bilinmeyen geçiş olasılıklarının ele alınması
Yukarıdaki yaklaşım, dinamik programlama kullanarak ardışık karar problemini çözerken benimsediğimiz yaklaşımla aynıdır. Şimdiye kadar, geçiş olasılıkları P(s′ | s, a) tarafından tanımlanan bir ortam modeline sahip olduğumuz anlamında çevremizi “biliyorduk”.
Şimdi P(s′ | s, a)’ya erişimimiz olmadığı, ancak çevreyle etkileşime girebildiğimiz durumu ele alacağız. Dolayısıyla, bir modelimiz bulunmaz ve optimum bir durum-değer fonksiyonu V*(s) veya eylem değer fonksiyonu Q*(s, a) hesaplayamayız, ancak çevrede eylemler gerçekleştirebilir ve bir ödül alabiliriz. Dolayısıyla, bir durumu gözlemleriz, bir eylemi gerçekleştiririz, bir ödül alırız, yeni bir durumu gözlemleriz, başka bir eylemi gerçekleştiririz, vb. Bu, s0, a0, r1, s1, a1, r2, s2, a2, r3,… dizisi olarak ifade edilebilir. Pekiştirmeli öğrenme, bu deneyimlerden öğrenmeyi amaçlar, böylece gerçekleştirdiğimiz eylem seçimleri zamanla daha iyi ve daha iyi hale gelir; burada “daha iyi”, daha yüksek bir getiri, kümülatif bir ödül almamız veya ilişkili bir maliyeti azaltmamız anlamına gelir. Esasen, geçiş olasılıklarını P(s′ | s, a) çevreyle etkileşime girerek kazandığımız deneyimlerle değiştiririz. Bu yaklaşımı geliştirmek için Q-fonksiyonu üzerindeki değer yinelemesinden tekrar başlıyoruz:
Hatırlayacağımız gibi, s durumundan başlayıp a eylemini gerçekleştirip daha sonra kalan k — 1 adım için her zaman en uygun eylemi seçersek toplam (beklenen) ödül budur. Bu, tüm Q değerlerini depolamak için iki dizi kullanılarak uygulanabilir, bir dizi Q_k+1 için ve bir dizi Qk için. Ancak bu, özellikle birçok olası durum ve eylemin olduğu karmaşık ortamlar için çok büyük depolama gereksinimlerine yol açacaktır.
Şimdi denklemi Q(s, a) için tüm değerleri depolamak için yalnızca bir dizi kullanacak şekilde değiştiriyoruz. Algoritma daha sonra şu hale gelir:
- Q(s, a)’yı başlat.
- Her çift (s,a) için tekrarlayın:
3. Yakınsama sağlandığında dur.
Yukarıdaki algoritma, durum-eylem çifti (s, a) ile karşılaşıldığı sıraya veya bazı çiftlerin birden fazla kez karşılaşılıp karşılaşılmadığına dair herhangi bir varsayımda bulunmaz. Tüm durum-eylem çiftleri (s, a)’yı ziyaret etmemiz ve Q-fonksiyonunu (s, a) çifti için güncellememiz gerektiğini söylemek yerine, şunu da söyleyebiliriz: Ajan, ortamla etkileşime girer ve durum-eylem çifti (s, a) ile karşılaşırsa Q-fonksiyonu güncellenir.
Bakış açısındaki bu değişim, çevreden gelen deneyimleri dahil etmemize olanak tanır: Tüm durum-eylem çiftlerini (s, a) ziyaret ettiğimizden emin olarak Q-fonksiyonunu hesaplamak yerine, ajanın çevreyle etkileşime girmesine ve ortaya çıkan deneyimleri Q-fonksiyonunun çalışan bir güncellemesinde kaydetmesine izin veririz.
Şimdi yalnızca bir Q(s, a) fonksiyonumuz olduğunu unutmayın ancak yine de geçiş olasılıklarını P(s′ |s, a) modellememiz gerekiyor. Ancak, bu geçiş olasılıklarını bilmediğimizden, bu gereksinimi kaldırmamız gerekiyor. Beklenen ödül ifadesini kullanarak, Q-fonksiyonu için güncelleme kuralını şu şekilde yazabiliriz:
s durumuyla karşılaştığımızda ve a eylemini gerçekleştirdiğimizde, bir ödül r alacağız ve yeni bir s′ durumu gözlemleyeceğiz. Çevremizin stokastik doğası nedeniyle, aynı durumdan başlayıp aynı eylemi gerçekleştirsek bile farklı s′ durumlarında son buluruz, yani her durum-eylem çifti (s, a) için farklı ödüller ve yeni durumlarla bir dizi farklı deneyim yaşarız.
Bunu şu şekilde ifade edebiliriz: (s, a:r1 , s1′), (s, a:r2 , s2′), (s, a:r3, s3′), …,(s, a:rn , sn′).
Q Öğrenme
Şimdi güncelleme kuralına aşağıdaki yaklaşımı uygulayalım:
Esasen, geçiş olasılıklarını düşürüyoruz ve bunun yerine n deneyim (yani çevreyle etkileşimden örnekler) kazandıktan sonra Q-fonksiyonunu, her adımda en uygun eylemleri izleyen anlık ödüllerin ve indirimli ödüllerin ortalamasıyla yaklaşık olarak hesaplıyoruz. Ajan çevreyle etkileşime girmeye devam ettikçe, bir sonraki adımda n + 1 deneyimimiz veya örneğimiz olur: (s, a:rn + 1, sn + 1′) ki bunları şimdiye kadar kaydettiğimiz deneyimler kümesine ekleriz. Dolayısıyla, bir sonraki adımda şunlara sahip oluruz:
Bu noktada, örnek ortalaması için aşağıdaki şekilde verilen yinelemeli güncelleme kuralına ihtiyacımız var:
Bir veri noktası daha x_m+1 eklersek, yinelemeli bir yaklaşım kullanarak tüm toplamı hesaplamaktan kaçınabiliriz:
Yukarıdakileri kullanırsak, yinelemeli güncelleme kuralını kullanarak bir deneyim daha ekledikten sonra Q-fonksiyonunu şu şekilde ifade edebiliriz:
Sadece yinelemeli olarak güncellediğimiz bir Qfonksiyonumuz olduğunu ve Q-öğrenme güncelleme kuralının şu hale geldiğini unutmayın:
1/n + 1 terimini küçük bir öğrenme oranı α ile değiştirdiğimiz yer. Bu, (C. J. C. H. Watkins, 1989; C. J. Watkins & Dayan, 1992) tarafından geliştirilen Q-öğrenme algoritmasıdır, daha fazla ayrıntı için ayrıca bkz. (Sutton & Barto, 2018b, s. 131–132).
Q Öğrenme Algoritması
- Q(s, a)’yı keyfi olarak başlat.
- Bazı başlangıç durumlarından başlayın.
- Son duruma ulaşana kadar tekrarlayın:
a) Mevcut durum s için bir eylem a seçin.
b) Eylem a’yı gerçekleştirin ve çevreden aldığınız ödül r’yi ve eylemden sonra çevrenin içinde bulunduğu yeni durum s’yi gözlemleyin.
c) Q değerlerini Denklem (4.12)’ye göre güncelleyin:
d) Mevcut durumu yeni duruma ayarlayın, yani s ← s’
Son (terminal) durum, Markov karar problemini sona erdiren ya da keşfetmeyi sonlandıran bir durumdur, yani bir kez son duruma girdikten sonra bu durumdan çıkamayız. Örnekler arasında ‘oyun bitti’ durumu veya bir video oyunundaki karakterin ‘ölmesi’ bulunur. Öğrenmeye devam etmek için yeni bir bölüm başlatmamız, yani son duruma ulaştıktan sonra yeni bir başlangıç durumu oluşturmamız gerekir.
Bir bölüm, ilk başlangıç durumundan son duruma kadar olan eylem ve durumların sırasına denir.
Q-öğrenme algoritması, bilinmeyen bir ortamla nasıl etkileşim kuracağımızı öğrenmek için ihtiyaç duyduğumuz tüm unsurları içerir: Baştan temiz bir sayfa açarak (Q(s, a) fonksiyonunu başlatma), eylemler gerçekleştirir, ödülleri ve yeni durumları gözlemleriz. Karşılaştığımız her bir durum-eylem çifti (s, a) için Q-fonksiyonunu güncelleriz. Öğrendikçe, ortamla etkileşim kurmada giderek daha iyi hale geliriz. Bu, yeni deneyimlerin Q(s, a) fonksiyonunu iyileştirmek için kullanıldığı anlamına gelir ve bu fonksiyon, mevcut durum s verildiğinde hangi eylemin en yüksek ödüle yol açacağını, yani en iyi eylemin hangisi olduğunu belirler.
Bu nedenle, belirli bir durum s için Q(s, a) değerinin en yüksek olduğu eylemi seçeriz. Q-öğrenmenin yakınsamasının kanıtı için (Melo, 2001) çalışmasına bakılabilir.
Pratik uygulamalarda, Q(s, a), durum s ve eylem a’nın birer indeks olarak kullanıldığı (çok büyük) bir tablo veya matris olarak uygulanabilir. Ancak, şimdiye kadar gözlemlediğimiz eylemler arasından yalnızca en yüksek ödüle ya da Q-değerine yol açan eylemi seçersek, başka bir eylemin daha yüksek bir ödüle yol açıp açmayacağını bilemeyiz. Bu nedenle, daha fazla deneyim kazanmak için bazı eylemleri rastgele denemek önerilir. Buna keşif-sömürü ikilemi (exploration-exploitation dilemma) denir ve bunu daha sonra daha ayrıntılı olarak tartışacağız.
Zaman Farkı Öğrenimi ve SARSA
Q-öğrenme algoritması, zaman farkı öğrenme yaklaşımının bir örneğidir. Bir deneyim ekleyerek k adımından k + 1'e geçtiğimizde netlik için n ve n + 1 dizinlerini eklediğimiz denklem şu şekilde verilir:
r + γ max_a Qn(s′, a) parçası, bir deneyim eklersek Q-fonksiyonuna katkıdır. Eğer tanımlarsak:
Q-fonksiyonu için güncelleme kuralını şu şekilde ifade edebiliriz:
Öğrenme oranı α’nın genellikle küçük olduğu yerde, öğrendiğimiz Q-değerlerini tek bir “kötü” deneyimle “mahvetme” riskini almak istemiyoruz. Esasen, Q-fonksiyonuna ilişkin bilgimizi her seferinde bir “deneyim” ekleyerek yinelemeli olarak güncelliyoruz ve Q-fonksiyonundaki değişim önceki ve mevcut adım arasındaki Q-değeriyle orantılıdır. Bu, sonraki etkileşimleri kullanarak çevre hakkındaki bilgimizi güncellediğimiz için “zaman farkı öğrenimi” ismine yol açar. Tek bir adım atmak yerine, her seferinde birkaç adım atmayı düşünebilir ve bu tür algoritmaları genellikle TD(λ) olarak etiketleyebiliriz.
Q-öğrenmede, Q-değerini hemen güncelledik ve bu değişen Q-değerine dayalı bir politikadan türetilen bir eylemi seçmek için bir politika kullandık.
Yapabileceğimiz tek seçim bu değildir. SARSA algoritması (Sutton & Barto, 2018b, s. 129 vd.) Q-öğrenme algoritmasından farklıdır; çünkü bir sonraki eylem, her zaman en yüksek anında ödülü veren eylemi seçmeye çalıştığımız güncellenmiş Q-fonksiyonundan türetilen (örtük) politikadan değil, ilk eylemi seçmek için kullanılan aynı politikadan seçilir. Bu, Q-öğrenmede olduğu gibi bir sonraki durum için maksimum ödülü kullanmadığımız, ancak geçerli politikaya göre seçilen bir eylemin ardından bir ödül elde ettiğimiz anlamına gelir. Bu, (s, a, r, s′, a′) dizisine yol açar ve bu dizi, takip eden algoritmaya da adını verir.
Algoritma şu şekilde özetlenebilir:
Sarsa Algoritması
- Q(s, a)’yı keyfi olarak başlat.
- Herhangi bir başlangıç durumu s ile başlayın.
- Son duruma ulaşana kadar tekrarlayın:
a) Mevcut durum s için (belirli bir politikayı izleyen) bir eylem a seçin.
b) Eylem a’yı gerçekleştirin ve çevreden aldığınız ödül r’yi ve eylemden sonra çevrenin içinde bulunduğu yeni durum s’yi gözlemleyin.
c) Yeni durum s’ için aynı politikayı izleyerek bir eylem a’ seçin.
d) Q değerlerini Denklem (4.12)’ye göre güncelleyin: Q(s, a) = Q(s, a) + α[r + γQ (s′, a′) − Q(s, a)]
e) Mevcut durumu yeni duruma, yani s ← s′ ve eylemi mevcut eyleme, yani a ← a′ ayarlayın.
SARSA algoritması “politika dahilinde” olarak adlandırılır çünkü bir sonraki durum s′ için eylem, orijinal durum s için seçilenle aynı politikadan seçilir; Q-öğrenmesi ise değerleri güncellerken mevcut politikadaki ödülü kullanmadığımız için “politika haricinde” olarak adlandırılır.
Sinir Ağları ve Derin Q-Öğrenme ile Güçlendirme Öğrenmesi
Q-öğrenme veya SARSA algoritması, bilinmeyen bir ortamda keşfetmeyi ve gezinmeyi öğrenmek ve deneyimlerden ders çıkarmak için ihtiyaç duyduğumuz her şeydir, böylece seçtiğimiz eylemler zamanla daha iyi hale gelir. Ortamı modelleyen geçiş olasılıklarını bilmemize gerek yok, ancak belirli bir durum s’de eylemler a için belirli seçimleri değerlendirmemize olanak tanıyan bir Q(s, a) fonksiyonunu yinelemeli olarak oluşturabiliriz.
Ancak, her şey yerli yerinde olsa bile, Q-öğrenmeyi kedi-fare oyunu veya küçük bir ızgara dünyasında gezinme gibi basit görevler dışında herhangi bir şey için kullanmak pratikte işe yaramayacaktır. Ana sebep, Q(s, a) fonksiyonunu açıkça oluşturmamız gerektiğidir. Örneğin, Q(s, a)’yı iki boyutlu bir dizi veya bir veritabanındaki bir tablo olarak uygulayabiliriz.
Ancak, çok sayıda durum ve/veya eylemimiz varsa, bunun üstesinden gelmek çok zorlaşacaktır. Örneğin, aşağıdaki şekilde gösterildiği gibi bir uçağı uçurmayı, bir araba sürmeyi veya karmaşık bir video oyunu oynamayı düşünürsek, böyle bir tablo veya dizi oluşturmak uygulanamaz ve hesaplama açısından çok pahalı hale gelir:
Durum-eylem alanı, durum sayısı arttıkça ve büyüdükçe çok büyük hale gelir ve ayrıca eylemler artık küçük bir ızgarada olduğu gibi ayrık ve sonlu değildir; burada yalnızca yukarı, aşağı, sola, sağa, çapraz olarak hareket edebilir ve belki de diğer bazı figürlerle etkileşime girebiliriz. Bunun yerine, eylem alanı sürekli veya yarı süreklidir, yani birbirinden çok az farklı olan çok sayıda eylem vardır ve bunlar sürekli olarak kabul edilebilir. Örneğin, bir arabayı frenlemeyi düşünün: Ne kadar sert fren yapılacağı, yalnızca rejeneratif veya motor frenine güvenilip güvenilmeyeceği, sürtünme freninin kullanılıp kullanılmayacağı vb. konusunda neredeyse sonsuz seçenek vardır. Ek olarak, dizideki veya tablodaki girdilerin çoğu başlatılan değerde kalacaktır (örneğin, başlangıçta tüm değerleri sıfırla başlatırsak sıfır kalır) çünkü durum ve eylem sayısı büyükse belirli bir durum-eylem çifti (s, a) ile karşılaşma olasılığı çok düşük olur.
Q-öğrenmesini daha karmaşık ortamlara uygulamak için şu yaklaşımı benimseyebiliriz: Büyük bir dizi veya tablo oluşturmak yerine, Q-fonksiyonunu nispeten az sayıda parametre θ’ye bağlı olan bir yöntem kullanarak yaklaşık olarak hesaplarız. Dolayısıyla, Q(s, a) yerine artık Q(s, a); θ’ye sahip oluruz ve bazı fonksiyonel formlar veya yaklaşık değerler kullanarak Q(s, a)’yı tahmin edebiliriz.
Geleneksel olarak, yaklaşık fonksiyon Q(s, a; θ) doğrusal bir model kullanılarak oluşturulmuştur ve doğrusal modelin “özellikleri” veya değişkenleri genellikle alanın uzmanları tarafından elle hazırlanmış ve tasarlanmıştır. Örneğin bu, kedi-fare oyununda özellikler kedi ile fare veya fare ile peynir arasındaki mesafe, yoldaki engellerin sayısı vb. olabilir.
2013 yılında DeepMind araştırmacıları, Atari’nin Pong, Breakout, Space Invaders, Seaquest veya BeamRider gibi video oyunlarında, derin sinir ağlarının yaklaşık Q(s, a; θ) fonksiyonunu öğrenmede geleneksel yöntemlerden çok daha iyi performans gösterdiğini gösterdiler (Mnih vd., 2015b, 2013).
Gerçek yaşam durumlarıyla, otonom sürüşlü arabalarla veya diğerleriyle karşılaştırıldığında, bu video oyunları hala nispeten basittir, ancak bu çalışma ilk kez derin sinir ağlarının Q(s, a; θ) fonksiyonunu diğer yaklaşımlardan daha iyi bir şekilde tahmin etmek için etkili bir şekilde kullanılabileceğini göstermiştir. Bu çalışmada, ağ ham piksel görüntüsünü girdi olarak alır, görüntünün içeriğini öğrenmek için bir dizi evrişimli sinir ağı katmanı kullanarak işler ve ardından her olası eylem için bir Q değeri belirler.
Q(s, a) modellemesi için daha önceki tablo yaklaşımını göz önünde bulundurarak, en basit yaklaşım tabloyu, girdi olarak bir durum ve eylem a alan ve aşağıdaki şeklin sol tarafında gösterildiği gibi çıkış olarak yaklaşık bir Q değeri hesaplayan (derin) bir sinir ağıyla değiştirmektir. Ancak, bu yine ağ için birçok eğitim örneği oluşturmak için tüm durum-eylem çiftlerini yeterince iyi kapsayabilmemizi gerektirir. Bu nedenle, girdi olarak bir durum s alan ve her olası eylem a için bir çıktı hesaplayan bir ağı eğitmek pratik uygulamalarda daha verimlidir (aşağıdaki şeklin sağ tarafı).
Ağ, durum eylem çiftlerinin (s, a) bir Q değerine eşlenmesini öğrenir (üst) veya tüm olası eylemler için bir Q değeri hesaplar (alt).
Q-değer fonksiyonunu yaklaşık olarak hesaplamak için kullanılan derin bir sinir ağını eğitmenin temel yönü, ağın optimize etmesi gereken kayıp fonksiyonunu tanımlamaktır. Özellikle, bir eğitim hedefi tanımlamamız gerekir. Q-değeri güncelleme kuralını Q_k+1(s, a) = Q_k(s, a) + αΔ olarak yazabileceğimizi gördük; burada Δ, Δ = r + γmax_a Q_k(s′, a) − Q_k(s, a) olarak tanımlanır; buna zaman farkı öğrenmesi hakkındaki tartışmada daha önce rastlamıştık. Bu, ortamdan gelen anlık ödül artı gelecekteki indirimli ödüller, Q-değeri ile ifade edilen bu niceliğin tahminine yakınsa veya eşitse Q-değerinin yakınsadığı anlamına gelir. Q-değerinin bir eylemin ne kadar “iyi” olduğunu ölçtüğünü unutmayın; yani, Q-değeri fonksiyonunu yeterince iyi biliyorsak, tüm olası eylemlere bakarak en yüksek ödüle yol açan en iyi eylem a’yı belirleyebilir ve en uygun olanı, yani en yüksek Q-değerine veya ödüle yol açanı seçebiliriz.
Bu nedenle, derin Q-ağının eğitim hedefini (denetimli öğrenmedeki ilişkili özellik vektörünün etiketi) şu şekilde tanımlıyoruz:
Bir sonraki durum s′ için gelecekteki ödülleri, tüm olası eylemler a için sinir ağını uygulayarak ve olası eylemlerin her biri için yaklaşık bir Q değeri elde ederek yaklaşık olarak hesaplayabiliriz (Geron, 2019, s. 633 vd.). Bu esasen denetlenen bir regresyon görevi olduğundan, hedef ile Q(s, a; θ) arasındaki ortalama kare hatayı kayıp fonksiyonu olarak alabilir ve sinir ağını gradyan inişi kullanarak eğitebiliriz:
Tekrar ediyorum, yeni ortamları keşfetmek ve en iyi eylemleri türetmek için elimizde her şey var. Q(s, a)’nın bir dizide veya tabloda saklandığı tablo yaklaşımıyla karşılaştırıldığında, derin sinir ağlarını kullanmak birçok durum veya sürekli bir eylem alanı olan karmaşık ortamlarda gezinmeyi sağlar. Ancak, bu sade yaklaşımını kullanmak genellikle tatmin edici sonuçlar vermez ve derin pekiştirmeli öğrenme sinir ağı dengesiz hale gelir veya şu ana kadar öğrendiklerini “unutur”: Ajan ortamın bir bölümünü keşfettikçe, edindiği deneyimler ve güncellenmiş yaklaşık Q(s, a; θ) fonksiyonuna dayalı ortaya çıkan politika güncellemeleri, ağın ortamın diğer bölümlerinde öğrendiklerini “bozabilir”. Aşağıdaki bölümde, yukarıda gördüğümüz sinir ağlarına dayalı Q-öğrenme yaklaşımını iyileştirmek için birkaç yaklaşımı tartışacağız.
Deneyim Tekrarı
Q-öğrenmede, bir ajan eylemleri gerçekleştirerek ve ortaya çıkan ödülleri ve ortamda meydana gelen değişimi gözlemleyerek ortamı keşfeder. Daha resmi olarak, ajanın bir durum s gözlemlediğini ve derin Q-ağını kullanarak hangi eylemin a’yı gerçekleştireceğini değerlendirdiğini söyleyebiliriz. Eylemi gerçekleştirdikten sonra, ajan bir ödül r alır ve yeni bir durum s′ gözlemler. Bu diziye deneyim dizisi (s, a, r, s′) denir.
Denklem’e geri baktığımızda, Q değerlerinin yalnızca son deneyim dizisi veya ortamla etkileşim kullanılarak güncellendiğini gördük. Ancak, sinir ağlarını, özellikle derin sinir ağlarını eğitmek, büyük miktarda eğitim verisi gerektirir. Şimdiye kadar karşılaştığımız tüm deneyim dizilerini depolayarak ve ağı yalnızca ortamla son etkileşimden elde edilen deneyim dizisi üzerinde eğitmek yerine, bu veri kümesinden rastgele örnek alarak böyle bir eğitim örneği oluşturabiliriz.
Bu yaklaşıma deneyim tekrarı denir. Etken çevreyle ne kadar çok etkileşime girerse, daha fazla deneyim dizisi depolandıkça eğitim örneği de o kadar büyür.
Eğitim verilerini işlerken bu tekrar oynatma tamponundan veya tekrar oynatma belleğinden rastgele bir örnek almak çok önemli bir ayrıntıdır. Önemini anlamak için “Oyun konsolunda video oyunu” başlıklı şekilde tekrar ele alalım: Karmaşık video oyunlarında veya gerçek yaşam uygulamalarında, sonraki deneyim tuple’ları yüksek oranda ilişkili olabilir. Örneğin, oyun kumandasındaki bir düğmeye basmak, oyunculardan birinin duruşunda hafif bir değişikliğe neden olabilir. Örneğin, “sağ ayağı çok az miktarda indir” eylemini gerçekleştirdikten sonra, sonraki durumlar s ve s′ ile ilişkili görüntüleri karşılaştırmak neredeyse aynı görüntüleri verir. Dolayısıyla, bu iki durum ve ilişkili deneyim tuple’ları yüksek oranda ilişkilidir.
Ancak, sinir ağlarını eğitirken, genellikle eğitim veri örneklerinin birbirinden bağımsız olduğunu ve aynı üretme fonksiyonundan aynı ve bağımsız özdeşçe dağıtılmış (IID: Independent and Identically Distributed) alındığını varsayarız. Deneyim ikililerini eğitim süreci sırasında derin Q-ağına beslemeden önce tekrar oynatma tamponundan rastgele almak, ağ tarafından görülen sonraki eğitim örnekleri arasındaki korelasyonu önemli ölçüde azaltır ve eğitim sürecini daha kararlı hale getirir.
Bu yaklaşımda tüm deneyimler aynı “değere” sahiptir: Bir deneyimin “önemli” olarak kabul edilip edilmediğine bakılmaksızın tekrar oynatma belleğinden tekdüze bir şekilde örnek alırız. Ayrıca, deneyimler tekrar oynatma tamponuna oluştukları oranda eklenecektir. Ancak, birçok senaryoda, bazı deneyimler diğerlerinden daha “değerli” olabilir. Örneğin, bazı deneyimler diğer deneyimlere kıyasla nadir olabilir veya elde edilmesi daha zor olabilir. Dahası, bazı deneyimler ortamı keşfetmenin ve Q-ağını eğitmenin erken aşamalarında yardımcı olmayabilir ancak sonraki aşamalarda önemli olabilir. Bu sorunları ele almak için Schaul ve diğerleri düz deneyim tekrarı yerine öncelikli tekrar oynatmanın kullanılmasını önermektedir. Temel fikir, yüksek beklenen öğrenme ilerlemesine sahip deneyimleri, yani bir etkenin (veya Q-ağının) en fazla şey öğrenebileceği deneyimleri tercih etmektir. Bu, Denklem tarafından verilen TD öğrenme hatasıyla yaklaşık olarak hesaplanabilir. En iyi (doğru) eylemi gerçekleştirerek elde edilen ödül ile Q-ağının mevcut durumuna göre gerçekleştirdiğimiz eylem arasındaki farktır. Esasen, doğru ödülü tahmin edersek, bu deneyim demetlerinden gelen tüm bilgileri zaten kullanmış oluruz, ancak tahmin bir eylem gerçekleştirdiğimizde gözlemlediğimiz şeyden oldukça uzaksa, yine de çevreyle etkileşime girerek öğrenebiliriz. Pi = Δi + ϵ kullanılarak, geçiş i’yi örnekleme olasılığı şu şekilde tanımlanır:
Burada ϵ, hata küçük veya sıfır olduğunda sayısal sorunları önlemek için küçük bir pozitif sabittir ve α, önceliklendirme şemasının gücünü belirler.
Çift Q Öğrenme
Ne yazık ki, eğitim prosedürüne yeterince büyük bir tekrar oynatma arabelleği eklense bile, şimdiye kadar tartışıldığı gibi derin sinir ağlarına dayalı bir pekiştirmeli öğrenme yaklaşımı genellikle karmaşık durumlarla başa çıkmak için yeterince kararlı değildir. Muhtemelen, hareket eden bir arabada bir çubuğu dengelemeye ve dik tutmaya çalıştığımız “araba direği” egzersizi gibi basit sistemleri çözebiliriz ancak Space Invaders veya daha da karmaşık olanlar gibi daha karmaşık video oyunlarını çözemeyiz.
Bunun ana nedeni, Q-öğrenme algoritmasında derin Q-ağını iki kez kullanmamızdır. Eğitim hedefi Q-ağının çıktısına dayanır, yani sinir ağının tahminleri hedef tanımında kullanılır. Bu, etiketli verilerin hedeflerinin önceden bilindiği ve öğrenme yaklaşımından bağımsız olduğu denetlenen öğrenmeye göre büyük bir farktır. Öğrenme algoritmasına, bu durumda sinir ağının ağırlıklarına olan bu bağımlılık, bir geri bildirim döngüsü yaratabilir ve ağ kararsız hale gelebilir. Mnih ve diğerleri (Mnih ve diğerleri, 2013, 2015b), hedefleri tanımlamak için derin Q-ağının bir kopyasını kullanarak bu sorunu önlerler. Dolayısıyla, artık aynı ağın iki sürümü vardır: Çevrimiçi ağ olarak adlandırılan bir ağ, ajan tarafından ortamı keşfetmek için kullanılır ve hedef ağ olarak adlandırılan diğeri, eğitim hedefini tanımlamak için kullanılır. Geri bildirim döngüsünden kaçınmak için hedef ağ, ağırlıkları çevrimiçi ağdan hedef ağa kopyalayarak her birkaç yinelemede periyodik olarak güncellenir. Daha sonra orijinal Q-öğrenme algoritması, ağırlıkların her yinelemede kopyalandığı özel durum olarak kurtarılır. Hedef ağ yalnızca birkaç yinelemede bir güncellendiğinden, ajan ortamın farklı bölgelerini keşfettikçe yaklaşık Q-değeri işlevinde hızlı değişikliklere daha az eğilimlidir.
(Mnih ve diğerleri, 2015b)’de, hedef ağ, bir deneyim dizisi elde etmenin her 10.000 yinelemesinde güncellendi. Bu sorunu ele almak için bir başka yaklaşım “Çift Q-öğrenimi” olarak adlandırılır (Hasselt, 2010; Van Hasselt, Guez ve Silver, 2016). Bu yöntem, hem tablolu hem de derin Q-öğrenimindeki belirli bir sorunu iyileştirmeyi amaçlamaktadır: Q-öğrenme güncelleme kuralındaki “max” operatörü bir eylemi seçmek ve değerlendirmek için aynı Q-tablosunu veya aynı derin Q-ağını kullanır ve en yüksek tahmini Q-değerine yol açanı seçeriz. Ancak, Q değeri bir tahmin olduğundan, bazı dalgalanmalar olduğunu kabul etmeliyiz . Q değeri, tam bilinen ardışık karar probleminden değil, deneyimlere dayalı çevrimiçi öğrenmeden türetilir. Bu nedenle, tam olarak bilinen bir ardışık karar probleminin en iyi çözümüne erişimimiz olsaydı, iki veya daha fazla eylem aynı Q değerine sahip olsa bile, bu Q değeri için tahminler genel olarak biraz farklı olacaktır. Her zaman en yüksek Q değerine sahip olanı, bu durumda bir Q değeri tablosundan veya sinir ağından en yüksek tahmini seçtiğimizden, bir önyargı getirebiliriz. Sinir ağlarında Çift Q öğrenmesini uygulamak için Hasselt ve arkadaşları, Mnih ve arkadaşlarının (Mnih ve arkadaşları, 2015b) çalışmalarını temel alır. Özellikle, yine hedef ağın çevrimiçi ağın bir kopyası olduğu ve parametrelerin her birkaç yinelemede bir güncellendiği bir çevrimiçi ve bir hedef ağ kullanırlar.
Mnih ve diğerleri tarafından yapılan orijinal uygulamada, hedef ağ bir sonraki en iyi eylemi seçmek ve Q değerini, yani eylemin kalitesini değerlendirmek için kullanılır. Başka bir derin Q ağının tanıtılmasını önlemek için, yazarlar bir sonraki durum için en iyi eylemi seçmek üzere hedef ağ yerine çevrimiçi ağın kullanılmasını ve daha sonra seçildikten sonra en iyi eylem için Q değerlerini hesaplamak üzere hedef ağın kullanılmasını önermektedir. Yeni hedef daha sonra şu hale gelir (Van Hasselt ve diğerleri, 2016):
Burada θt çevrimiçi ağın parametreleri ve θt− hedef ağın parametreleridir.
Gecikmeli Seyrek Ödüller ve Hiyerarşik Öğrenme
Şimdiye kadar pekiştirmeli öğrenme hakkında yaptığımız tartışmalarda, çoğunlukla, hangi eylemlerin yararlı veya yararsız olduğunu nispeten kolay öğrenebileceğimizi dolaylı olarak varsaydık. Basit kedi-fare oyununda, farenin peynire yaklaşmak için sadece birkaç adım atması gerekir (veya kedi tarafından yakalanmak için), yönlendirme, hızlanma veya frenleme anında etki eder ve basit araba-sırık egzersizinde, sırığın devrilip devrilmediğini hızla öğrenebiliriz. Ancak, diğer birçok senaryo farklıdır: Olumlu bir ödül almak uzun zaman alabilir veya olumlu bir ödül elde edilmeden önce çok sayıda adım atılması gerekir. Bu senaryolar daha zordur çünkü olumlu bir ödül alana kadar ne kadar zaman geçeceğini bilmiyorsak keşfetmeye devam etmek zor olur. Bu örneklerden biri olan aşağıdaki şekilde gösterilen kör uçurum yürüyüşü, gerçekten de öncelikli deneyim tekrarını tanıtmanın arkasındaki temel motivasyonlardan biriydi.
Ajan ilk pozisyondan başlar ve amaç zincirin sonuna n pozisyonuna ulaşmaktır. Kör uçurum yürüyüşünde, ajan yalnızca “doğru” kararı alırsa, zincirin sonuna doğru hareket ederse ve gerçekten zincirin sonuna ulaşırsa ödül alır. Ajanın “yanlış” kararı aldığı diğer tüm durumlarda, uçurumdan düşer, bölüm sona erer ve ajanı tekrar ilk adıma yerleştirerek yeniden başlatılır. Esasen, ajan yalnızca ileriye doğru hareket etmeyi, asla geriye doğru hareket etmemeyi, dizinin ne kadar uzun olduğunu ve ödülün ne zaman elde edileceğini bilmeden öğrenmek zorundadır. Diğer durumlarda, ortam oldukça karmaşık olacaktır ve ortamdan öğrenilecek, genel bir hedefe bağlı olabilecek veya olmayabilecek birkaç hedef olabilir. Kulkarni ve diğerleri çalışmalarında (Kulkarni, Narasimhan, Saeedi ve Tenenbaum, 2016) aşağıdaki şekilde gösterilen kuruluma benzer olan Atari’nin “Montezuma’s Revenge” adlı video oyununu örnek olarak kullanır: Bir oyuncu bir seviyeye girer ve seviyeyi keşfetmesi ve örneğin bir sonraki seviyeye açılan kapıyı açmak için bir anahtar alması gerekir. Yolda bazı hazineler bulabilir veya bulamayabilirler. Bu, seviyeyi tamamlama şanslarını mutlaka artırmaz ancak genel ödüle sayılır.
Çevre hakkında bilgi edinmek, keşif süreci içinde bireysel hedeflere ulaşmak olarak anlaşılabilir. Standart ardışık karar problemlerinde veya pekiştirmeli öğrenmede, bir durum s hakkındaki etkili bilgi, esasen ardışık karar probleminin genel amacı için belirli bir durumun ne kadar “iyi” olduğunu ölçen bir ölçüt olan değer fonksiyonu V(s) tarafından yakalanır.
Sutton ve diğerleri (Sutton, Modayil, Degris, Pilarski ve White, 2011) bunu genel bir değer fonksiyonuna genişletmeyi ve pekiştirmeli öğrenme ajanının çevreyi keşfeden iblis (demon) adı verilen birden fazla alt ajandan oluştuğu Horde mimarisini tanıtmayı öneriyorlar. Her iblis çevre hakkında tek bir hedef odaklı soruyu ele alır ve dolayısıyla çevrenin genel bilgisine katkıda bulunur. Karşılık gelen genel değer fonksiyonu Vg(s), g hedefine ulaşmaya çalışırken bir durum için değer fonksiyonudur. Bu değer fonksiyonlarından oluşan bir küme daha sonra çevre hakkında sahip olduğumuz bilginin farklı yönlerini temsil eder. Anahtara nasıl ulaşılacağı veya bir hazinenin nasıl toplanacağı örnek olarak verilebilir. Schaul ve diğerleri (Schaul, Horgan, Gregor ve Silver, 2015) bunu tüm olası hedefler ve durumlar ve dolayısıyla bunları takip eden tüm alt ajanlar için tek bir hedef odaklı değer fonksiyonunun kullanıldığı evrensel bir değer fonksiyonu V(s, g; θ) ile genişletiyorlar. Bu karmaşık fonksiyon örneğin, sinir ağları kullanılarak yaklaşık olarak hesaplanabilir.
Ancak, çevreyi keşfederken çeşitli hedefleri öğrenmek, bu hedeflerin birbirine bağlı olabileceği için, o çevrede hareket etmek için yeterli olmayabilir. Yukarıdaki şekilde gösterilen video oyunu örneğine geri dönecek olursak, ajan önce bir anahtar olduğunu öğrenmeli ve onu nasıl alacağını bilmelidir, çünkü bir sonraki seviyeye geçiş için gerekli olan kapıyı bulmadan önce, daha önce alınan bu anahtarla kapının kilidini açması gerekecektir. Yol boyunca bazı hazineler toplanabilir (veya toplanmayabilir). Dolayısıyla, hedefler birbirinden bağımsız veya aynı değerde değildir: Hazine toplamak genel puanı artırır ancak bir sonraki seviyeye geçmek için fayda sağlamaz. İlk olarak anahtarı almadan, bir sonraki seviyeye götüren kapıyı bulmanın bir anlamı yoktur. Kulkarni ve arkadaşları (Kulkarni ve ark., 2016), değer fonksiyonlarının hiyerarşilerini içeren bir çerçeve olan “hiyerarşik derin Q öğrenimi (h-DQN)” önermiştir. Temel fikir, “meta-denetleyici” (meta-controller) adı verilen üst düzey bir kontrolör tanıtarak durum s’yi analiz edip yeni hedefler g seçmek ve belirli bir hedef g’ye ulaşmak için optimal eylemleri nasıl seçeceğini öğrenen alt düzey bir modül olan denetleyiciyi kullanmaktır. Bir hedef tamamlandıktan sonra, meta-denetleyici başka bir hedef seçer ve süreç yeni hedefle tekrarlanır. Bu şekilde, keşif sırasında farklı zamanlarda önemli hale gelen hiyerarşik hedeflere veya hedeflere ulaşılabilir. Yukarıdaki şekilde gösterilen oyun durumunda, meta-denetleyici önce anahtarı almayı, ardından bu anahtarı kullanarak bir sonraki seviyeye geçiş kapısını açmayı hedefler.
Değer ve Politika Tabanlı Öğrenme
Şimdiye kadarki tartışmalarda her zaman bir durumu gözlemleyerek ve bu durumun ne kadar “değerli” olduğunu türeterek çevreden aldığımız ödülü iyileştirme veya optimize etme yoluyla yönlendirildik. Bu, Denklem (4.2)’deki değer fonksiyonudur V^π(s) = E_π[R^π(s)]. Ayrıca, bir durum s’yi gözlemleme ve eylemde bulunma kombinasyonunu çevreden beklenen ödülle ilişkilendiren Q değerini de tanıttık ve eylem a’yı değer fonksiyonunu veya eşdeğer olarak Q değerlerini en üst düzeye çıkaracak şekilde seçerdik. Dolayısıyla, eylem seçimimiz her zaman en yüksek Q değerine sahip en “değerli” seçimi yaparak belirlendi. Bu, bir etkenin bir durum s için bir eylemi nasıl seçeceğini belirleyen örtük bir politikamız olduğu anlamına gelir. Önceki politikalarımız şu şekilde ifade edilebilir: π(s) = argmax_a Q(s, a).
Denklem (4.4)’te gördüğümüz gibi. Buna açgözlü politika da denir. Açgözlü politika bir sonraki acil adımı optimize eder ve en yüksek acil ödüle yol açan eylemi seçer.
Ancak, çok sayıda eylem varsa veya eylem alanı sürekliyse, tüm olası eylemleri keşfedemeyiz. Şimdi politikanın kendisine odaklandığımız farklı bir yaklaşımı tartışacağız. Politika, belirli bir durumda eylemlerimizi nasıl seçtiğimizi belirler ve bir durumu bir eyleme “eşler”. Deterministik ve stokastik bir politika arasında ayrım yapabiliriz. Deterministik bir politikada, her zaman s durumunda aynı a eylemini gerçekleştiririz, yani a = π(s). Stokastik bir politikada, mevcut eylemlerden hangisinin gerçekleştirileceğini belirleyen bir olasılığımız vardır, yani π(a, s) = P(At = a, St = s). Güçlendirme öğreniminin temel amacı, gelecekte s durumu verildiğinde tüm eylemlerimizin toplam ödülünü optimize etmektir. Bu, atılacak bir sonraki eylemi optimize etmediğimiz (bunu açgözlü politikalarda yapabilmemize rağmen) ancak uzun vadeli hedefe odaklandığımız anlamına gelir, yani tüm olası eylemler ve durumlar üzerinde optimizasyon yapmak istiyoruz. Amaç fonksiyonunu (optimize etmek istediğimiz şey, örneğin en aza indirmek istediğimiz maliyet) şu şekilde ifade edebiliriz:
Burada θ eylemlerimizi optimize etmek için değiştirebileceğimiz politikanın parametreleridir ve γ ∈ (0, 1] bir indirim faktörüdür. Sonsuz karar problemlerinde genellikle bir indirim faktörüne ihtiyaç duyduğumuzu, sonlu karar problemlerinin ise ödüllerin toplamı zaten sonlu olacağından bir indirim faktörü içermek zorunda olmadığını unutmayın. Ancak, bir indirim faktörü kullanarak ve γ = 1'e izin vererek her iki durumu da yakalayabiliriz. Miktar:
Aynı zamanda, t anındaki mevcut durumdan başlayarak, k indeksiyle gösterilen tüm gelecek durumlar boyunca problem için gelecekteki toplam getiriyi ifade eder. Literatürde, vt yerine getiri genellikle Rt olarak da adlandırılır.
Örneklem ortalamasını alarak beklenti değerini yaklaşık olarak hesaplayabiliriz:
Örnek ortalaması şu şekilde verilir:
İndeks i, πθ politikasını izleyerek çevreyle etkileşime girerek elde ettiğimiz tüm örnekler üzerinde çalıştığında. Çevre sürekliyse, beklenti değeri E [ · ]’yi durumlar üzerindeki bir dağılım fonksiyonu dπθ(s) üzerindeki ortalama değerle değiştiririz:
Burada Vπθ(s) değer fonksiyonudur. Amacımıza ulaşmak için, genel ödülü optimize edecek eylemleri seçtiğimiz politika πθ’yi bulmamız gerekir. Bu, hedef fonksiyon denklemin’i maksimize etmek için, politikamızın bağlı olduğu parametre kümesi θ’yi bulmamız gerektiği anlamına gelir. Bu, politika tabanlı pekiştirmeli öğrenmenin bir optimizasyon problemi olduğu anlamına gelir. En uygun parametreler θ*, hedef fonksiyonunu maksimize edenlerdir:
Ve en iyi parametreleri belirleyebiliriz. Tekrar, eğimi kullanarak en iyi parametreleri yinelemeli olarak belirleriz. Karşılık gelen güncelleme kuralı şudur:
Burada α küçük bir öğrenme oranıdır. Buna iniş yerine eğim yükselişi denir (eksi işareti kullanacağımız yer). Politika eğim teoremine göre eğim şu şekilde verilir:
Denklem’te olduğu gibi, ajanın eylemlerini seçmek ve ortamla etkileşime girmek için politikadan örnekleme yaparak beklenti değerini yaklaşık olarak hesaplayabiliriz:
Burada i, çevreyle etkileşime girerek elde ettiğimiz tüm N örnekleri üzerinde bir kez daha çalışır ve sonlu bir örneklemden beklenen değeri yaklaşık olarak hesaplamak için örnek ortalamasını kullanırız. Politika dışı bir öğrenme yaklaşımı olan Q-öğrenmenin aksine, politika eğimine dayalı öğrenmenin politika içi bir yaklaşım olduğunu unutmayın. Bu, örneklerin geçerli politika kullanılarak elde edildiği anlamına gelir. Sonuç olarak, politikayı değiştirir değiştirmez, farklı bir politikaya ait oldukları için tüm eski örnekleri atmamız ve örneklemeyi baştan başlatmamız gerekir. Politika eğimi yaklaşımı, daha önce karşılaşılan ve modeli tanımlayan tüm geçiş olasılıklarının bilindiği ardışık karar problemlerinin politika yinelemesine benzerdir. Q değeri için bir tahmin olarak gerçek dönüş değeri vt’yi (indirimli ödüllerin toplamı) kullanarak, yukarıdakileri “REINFORCE” algoritmasına (Sutton & Barto, 2018b, s. 328) ve (Williams, 1992) dönüştürebiliriz.
REINFORCE Algoritması
- θ parametrelerini keyfi olarak başlatın.
- Tekrar et:
a) Belirli bir politika πθ için ortamı N adım boyunca örnekleyin. Bu, politika πθ’ye bağlı bir dizi duruma, eyleme ve ödüle yol açar: {s0 , a0 , r1 , …, sN − 1 , aN − 1 , rN}
b) Her adım için i ∈ [0, N] : parametreleri şuna göre güncelleyin: θ ← θ + α∇θ logπθ(si , ai) vi
c) Parametre kümesi θ’yi döndürün ve yeni politikayı seçin
Politika ve değer fonksiyonuna dayalı yaklaşımları karşılaştırırsak, genel olarak şunları elde ederiz:
Değer fonksiyonuna dayalı öğrenmede, çevreyle etkileşime girerek (örneğin derin bir Q ağı kullanarak) Q değerlerini öğreniriz ve en yüksek ilişkili değere sahip eylemi gerçekleştiren örtük bir politika olan π(s) = argmax_a Q(s, a) kullanırız.
Politika tabanlı öğrenmede, eğim yükselişini kullanarak bir politika fonksiyonunun parametrelerini değiştirerek genel ödülü optimize ediyoruz.
Aktör Eleştirmen (Actor Critic) Öğrenme
Şimdiye kadar, karmaşık ortamların, bir değer fonksiyonu kullanarak veya eylem seçimini yöneten politikalara bakarak, sinir ağları kullanılarak nasıl ele alınacağını tartıştık. Değer fonksiyonuna dayalı yaklaşımda, derin sinir ağlarını kullanarak çevreyi nasıl öğrenebileceğimizi ve bunu bir sonraki eylemin ne olacağını belirlemek için nasıl kullanabileceğimizi gördük. Bu bizi politika dışı öğrenme için derin Q ağları ve politika içi öğrenme için SARSA’yı geliştirmeye ve (öncelikli) deneyim tekrarı, çift Q öğrenmesi vb. gibi iyileştirmeler yapmaya yöneltti. Ayrıca açık bir politikayı nasıl kullanabileceğimizi ve doğrudan en iyi eylem seçimini nasıl öğrenebileceğimizi de araştırdık. Bu bizi politika eğimine dayalı yöntemler hakkındaki tartışmaya götürüyor. Şimdi, politika eğimleriyle çevreden getiriyi tahmin etmek için sinir ağlarını birleştirerek ortak bir yaklaşım oluşturuyoruz. Genel fikir, aşağıdaki şekilde gösterildiği gibi farklı yönlere odaklanan iki ağa sahip olmaktır: Bir aktör belirli bir politikayla başlar ve ardından bir eleştirmenin “tavsiyesini” dahil ederek gelişmeyi öğrenir. Eleştirmen politikayı değerlendirmeye odaklanır. Yaklaşım bir koçla çalışmaya benziyor: Sporcu tekniğini geliştirmeye çalışırken, koç da sporcunun gelişmesine yardımcı olacak faydalı ipuçları veriyor.
Aktör-Eleştirmen öğrenmesinin genel yaklaşımı, sıralı veya Markov karar problemlerinde aktör-eleştirmen yöntemi olarak da adlandırılan politika yinelemesine çok benzerdir. Ancak, SDP’de problemin kurulumunu, özellikle geçiş olasılıklarını P(s′ | s, a) ve ortamdan elde edeceğimiz ödülleri biliyorduk. Bu, politikanın tam olarak değerlendirilmesini sağlar. Şimdi, ortamın modelini bilmiyoruz, yani geçiş olasılıklarını veya ödülleri bilmiyoruz ve deneyim kazanarak ve bir politika seçimini “oynatarak” ve sonra onu geliştirerek ortam hakkında bilgi edinmemiz gerekiyor. Bu ayrıca, politikaları tam olarak değerlendiremediğimiz için bir sonraki politika seçiminin mevcut olandan (önemli ölçüde) daha kötü olabileceği anlamına gelir. Üç yaklaşım aşağıdaki tabloda özetlenebilir:
Şimdi iki yaklaşımı birleştiriyoruz: bir eylem-değer fonksiyonu ve bir politika eğimi öğrenmek. Bu nedenle, iki sinir ağı aracılığıyla iki parametre kümesini korumamız gerekiyor, biri eleştirmen için, diğeri aktör için. Aşağıdaki rolleri üstlenirler:
- Eleştirmen: Eylem-değer fonksiyonu Q’yu öğrenin, parametreler: ω.
- Aktör: Eleştirmenin önerdiği yönde politikayı güncelle, parametreler: θ.
Politika eğimi teoremine göre (bkz. Denklem (4.27)), politika eğimi ∇θJ(θ), belirli bir politika πθ için Qπθ(s, a) değerlerine bağlıdır.
Bu, politikaya göre hareket ederek çevreden gelecekteki (indirimli) ödülleri elde edebileceğimizi varsayar. Artık bu fonksiyona erişimimiz olmadığına göre, bunu tahmin etmek için derin bir Q-öğrenme ağı kullanırız, bu eleştirmenin rolüdür. Dolayısıyla, şunu tahmin ediyoruz:
Bu, tam politika eğimine erişimimiz olmadığı için yaklaşık bir politika eğimi tırmanışı gerçekleştirdiğimiz anlamına gelir. Politika eğimi teoremi daha sonra şu hale gelir:
Ve politika gradyanı için güncelleme kuralı şu hale gelir:
Genel aktör eleştirmen algoritması daha sonra şu şekilde tanımlanabilir:
Temel Aktör Eleştirmen Algoritması
- Parametreleri ω, θ olarak başlat. Herhangi bir s durumundan başla.
- İlk eylemi πθ politikasına göre gerçekleştirin.
- Tekrarla:
a) a eylemini takiben r ödülünü al ve s′ durumunu gözlemle.
b) Mevcut politika πθ(s′, a′)’yı izleyerek yeni bir eylem a′ seçin.
c) Yaklaşık politika gradyanı için güncelleme kuralını Denklem (4.31)’e göre değerlendirin: Δθ = α∇θ logπθ(s, a) Qω(s, a) ve öğrenme oranı α’yı kullanarak politika gradyanı için sinir ağını güncelleyin.
d) Zamansal fark hatasını değerlendirin:
ve Q-değerlerini öğrenen sinir ağını öğrenme oranı β’yi kullanarak güncelleyin Δω = β δ ∇ωQω(s, a). Bu adımın, Q değerini maksimize eden (Q öğrenmede politika dışı) adımdan ziyade, geçerli politika πθ’ye (SARSA) göre seçilen eylem olarak politikada olduğunu unutmayın. Bu nedenle, burada “maksimum” operatörü yoktur.
e) geçerli durumu yeni duruma, yani s ← s′ ve eylemi geçerli eyleme, yani a ← a′ ayarlayın.
Temel olarak, aktör-eleştirmen (actor-critic) algoritması, SARSA ve REINFORCE yöntemlerini birleştirir ve eylemlerin değeri (Q-değeri) ile yaklaşık politika gradyanını öğrenmek için ayrı sinir ağları kullanır. İki ağın öğrenme oranları α ve β aynı değildir. Mevcut politikaya göre yalnızca bir eylem seçip ardından her iki ağı güncellemek oldukça verimsiz olacağından, süreç genellikle paralel hale getirilir. Bu durumda birçok ajan çevreyle etkileşim kurar. Eşzamanlı (synchronous) bir yapıda, birçok ajan çevreyle etkileşime geçer, deneyim çiftlerini (s,a,s′,r) elde eder ve belirli bir sayıda deneyim çifti toplandıktan sonra yaklaşık politika ağı güncellenir. Bu yapı eşzamanlıdır çünkü tüm ajanlar aynı politikaya göre hareket eder ve politika tüm ajanlar için aynı anda güncellenir.
Mnih ve arkadaşları (Mnih ve ark., 2016), politika parametrelerindeki değişikliklerin (θ) ajanları farklı zamanlarda etkilediği eşzamansız (asynchronous) ajanlar fikrini geliştirir. Örneğin, bazı eylemlerin diğerlerinden daha uzun sürmesi durumunda, bu durum daha fazla esneklik sağlar. Çünkü ajanların, politika ağının parametreleri güncellenmeden önce tüm ajanların eylemlerini tamamlamasını beklemesi gerekmez. Wang ve arkadaşları (Z. Wang ve ark., 2016), deneyim çiftlerinin daha verimli kullanılmasını sağlamak için aktör-eleştirmen yapısında deneyim yeniden oynatmayı (experience replay) tanıtmıştır. Bu yöntem, deneyimlerin arasındaki korelasyonu azaltarak derin Q-öğrenme (Deep Q-Learning) yöntemindeki gibi deneyim çiftlerinin daha etkin kullanılmasını sağlar.
Temel aktör-eleştirmen algoritmasının zorluklarından biri, hesaplamamız gereken gradyanların büyük bir varyans göstermesidir. Ajanların çevreyi keşfetmek ve deneyim çiftleri toplamak için kullandıkları farklı yollar, bir güncellemeden diğerine büyük ölçüde farklılık gösterebilir. Bu varyansı azaltmanın bir yolu, avantaj fonksiyonunu (A(s,a)) tanıtmaktır. Avantaj fonksiyonu şu şekilde tanımlanır: A(s,a)=Q(s,a)−V(s).
Avantajı şu şekilde düşünebiliriz: Q-değeri, bir durumda olmanın ne kadar “iyi” olduğunu belirleyen V(s) durumu değerine ayrıştırılabilir ve avantaj, belirli bir durumda (s) bir eylemin (a) diğer eylemlere kıyasla ne kadar iyi olduğunu gösterir. Bunu şu şekilde hayal edebiliriz: bir sınıftaki öğrenciler grubunu düşünelim. Durum fonksiyonu, bu sınıftaki öğrencilerin ortalama performansını, örneğin ortalama notlarını temsil eder. Avantaj ise bir öğrencinin performansının sınıf ortalamasına kıyasla ne kadar daha iyi (veya kötü) olduğunu karşılaştırmamıza olanak tanır. Bu nedenle, Q-değerlerini öğrenmek yerine avantaj fonksiyonunu öğrenmek, bir eylemin ne kadar “iyi” olduğunu öğrenmekten, “ortalama” bir eylemle elde edeceğimiz sonuca kıyasla ne kadar daha iyi veya kötü olduğunu öğrenmeye odaklanmayı sağlar.
Schulman ve arkadaşları bu konsepti genişleterek sürekli kontrol problemleri için genel avantaj tahminini (General Advantage Estimation) tanıtmışlardır (Schulman, Moritz, Levine, Jordan, & Abbeel, 2015). Denklem (4.32)’deki durum-eylem değer fonksiyonu (Q(s,a)Q(s, a)Q(s,a)) ve durum değer fonksiyonunu (V(s)) öğrenmek için iki ağ kullanmamak adına yalnızca V(s) üzerinde eğitilmiş bir ağ kullanılabilir. Değer fonksiyonunda ifade edilen zaman farkı hatasından (δ) başlanır: δ=r(s,a)+γV(s′)−V(s).
Ayrıca, Denklem (4.8)’i kullanarak Q-değerini şu şekilde ifade edebileceğimizi hatırlarız:
Q(s,a)=r(s,a)+γV(s′). Burada, durumun değerinin Q’yu maksimize eden eylemi alarak elde edildiği kullanılmıştır. Böylece avantaj şu şekilde yazılabilir: A(s,a)=r(s,a)+γV(s′)−V(s).
Bu, zaman farkı hatasının avantaj fonksiyonunun bir tahmincisi olduğu anlamına gelir.
Mnih ve arkadaşları (Mnih ve ark., 2016), A3C (Asynchronous Advantage Actor Critic) olarak adlandırılan bir eşzamansız güncelleme mekanizması önerir. Eşzamanlı varyant ise A2C olarak adlandırılır (OpenAI, 2017). Haarnoja ve arkadaşları (Haarnoja, Zhou, Abbeel, & Levine, 2018), beklenen ödülü maksimize ederken aynı zamanda entropiyi de maksimize eden “Soft Actor Critic” yöntemini önerir. Bu yaklaşım, ajanın mümkün olduğunca rastgele davranması ve diğer yöntemlerle kolayca alınamayacak eylemleri de içerecek şekilde çevreyi daha kapsamlı ve verimli bir şekilde keşfetmesini sağlar.
“Proximal Policy Optimization” algoritması (Schulman, Wolski, Dhariwal, Radford, & Klimov, 2017), yukarıda tartışılan “ham” gradyan yerine optimize edilen bir vekil fonksiyon (surrogate function) tanıtarak politika gradyanı tahminini daha da istikrarlı hale getirir. Örneğin, optimize edilecek hedef fonksiyonun aralığının sınırlı olduğu bir “kesilmiş vekil amaç” (clipped surrogate objective) kullanılır. Bu, ardışık güncellemelerde farklı yönlere giden büyük politika güncellemelerinden kaçınılmasını sağlar ve bunun yerine daha küçük değişiklikler tercih edilir. Ayrıca, “uyarlanabilir Kulback-Leibler Ceza Katsayısı” (adaptive Kulback-Leibler Penalty Coefficient), eski ve yeni politika arasındaki Kulback-Leibler farklılığını bir düzenleme mekanizması olarak kullanarak, gradyan güncellemesinden sonra önerilen yeni politikanın eski politikanın çok uzağına gitmesini engeller.
Özet
Pekiştirmeli öğrenme alanı, sinir ağlarının bu alanda etkili bir şekilde nasıl kullanılabileceğinin keşfedilmesinden bu yana birçok önemli ilerleme kaydetmiştir. Daha önce, pekiştirmeli öğrenme genellikle tablolu yaklaşımlarla etkili bir şekilde ele alınamayan birçok sistemin karmaşıklığıyla sınırlıydı. Bu birim, sinir ağlarının pekiştirmeli öğrenmede nasıl kullanılacağını, özellikle de durum-eylem fonksiyonunun derin bir sinir ağı tarafından öğrenildiği derin Q-ağlarına (Deep Q-Networks) ve mevcut verilerin daha verimli kullanılması veya öğrenme sürecinin iyileştirilmesine yönelik çeşitli geliştirmelere odaklanmaktadır. Politika gradyan yöntemleri, ajanların eylemlerini doğrudan seçmelerine olanak tanıyan bir politika öğrenmeyi sağlar ve bu sayede daha uzun vadeli bir bakış açısıyla toplam beklenen ödülü optimize etmeye olanak tanır. Ancak bu, ödüllerin uzun bir eylem dizisi boyunca belirlenebileceği anlamına gelir. Aktör-kritik yaklaşımlar, deneyimlerden durum-değer veya eylem-değer fonksiyonunu öğrenmeyi politika gradyanları kullanarak politika optimizasyonuyla birleştirir. Bu mekanizma, sezgisel olarak bir koç veya öğretmenle çalışmaya, yani mevcut eylem seçimlerine geri bildirim sağlamaya benzetilebilir.