Reinforcement Learning

--

Teknolojinin bu kadar geliştiği bir dönemde akıllı cihazlar, kendi kendine hareket eden robotlar, insansız ihalar ortaya çıkmış ve yapay zeka sistemler son derece önem teşkil etmeye başlamıştır. Reinforcement Learning’te yapay zekanın içerisinde yer alan bir yapı olarak düşünebiliriz. Reinforcement Learning ML yapısının alt kollarından bir tanesidir.ML yapısında genellikle Markov Karar Süreci denilen bir yapı kullanılıyor. MDP olarak söylenir kısaca. Bu yapıda yapay zeka sisteminin önceden bilgilendirilmesine ve yönlendirilmesine dayalı bir sistemdir.

Reinforcement Learning amaca yönelik hareket etmektedir. Tüm Reinforcement Learning ajanlarının açık hedefleri vardır, ortamlarının özelliklerini hissedebilir ve ortamlarında etkili olacak eylemleri seçebilirler. Temel yapıda ajan çevreye göre bir aksiyon gösterir, buna politika (policy) denir ve çevreden buna karşılık bir tepki bekler. Oluşan tepkiler önceden belirlenmiş ödül sistemine (reward) tabi tutulur. Kazanılan ödül doğrultusunda ajan eğitilir, yaptığının ne kadar yanlış ya da doğru olduğunu anlar. Ajan , çeşitli eylemler denemeli ve kademeli olarak en iyi görünenleri tercih etmelidir. Stokastik bir görevde, her bir eylem beklenen kazancının güvenilir bir tahminini elde etmek için birçok kez denenmelidir.Aslında bakarsanız bir örnek verilmesi gerekirse , yeni doğmuş bir bebek nasıl deneme yanılma yoluyla doğruyu buluyorsa sistemde öyle çalışıyor veya küçük bir çocuk sobaya elini değdirdiğinde onun kötü bir şey olduğunu o an anlar ve bir daha oraya gitmeyeceğini bilir tam olarak RL mantığıda bunun gibi çalışmaktadır.

Bu sistemin özelliği, yapay zekayı bir sonuca koşullandırması. Bu sonuç her zaman en yüksek ödül değerinde. Daha az, daha farklı bir ödül ya da hiç ödül alamaması yapay zekâ için bir ceza olarak görülüyor. Dolayısıyla yapay zekanın motivasyonun her zaman tek yönde işlediği öylenebilir. Reinforcement Learning’in en heyecan verici yönlerinden biri, diğer mühendislik ve bilim disiplinleriyle olan sağlam ve verimli etkileşimleridir. Reinforcement Learning, istatistik ve diğer matematiksel konularla daha fazla entegrasyona yönelik sanatsal zeka ve makine öğrenimi alanındaki on yıllardır devam eden bir eğilimin içindedir.

Sistem nasıl işliyor? Adımlar:

1-Yapay zekâ bulunduğu ortam hakkında bilgisi yetersiz ise neden sonuç arasında bağ kurmak amacıyla gözlem yapar.

2-Gözlemin bittikten sonra yapay zekâ seçenekler arasında bir tercihte bulunmaya zorlanır. En yüksek ödüle endeksli olduğu için, o ödüle en uygun olacak şekilde bir karar vererek harekete geçer.

3-İlk adımından bittikten sonra yapay zekâ tekrar gözlem için harekete geçer önüne çıkan yeni seçeneklere bakar. Burada önemli olan nokta, yapay zekanın ilk adımdan sonra hedefine ulaşma konusunda nasıl doğru karar alabileceğini öğrenmiş olması.

Reinforcement Learning Nasıl Çalışır ?

Reinforcement Learning algoritmasını uygulamak için 3 temel yaklaşım vardır ;

Değer Tabanlı:Değer tabanlı reinforcement learning methodunda deger fonksiyonu maksimize etmeye çalışılır.

Policy Tabanlı:Policy bazlı bir reinforcement learning yönteminde , her durumda gerçekleştirilen eylemin gelecekte maksimum kazanç elde etmek için optimal olacağı bir policy bulmaya çalışırsınız.

Deterministik: Herhangi bir durumda,aynı eylem policy tarafından üretilir.

Stokastik:Her eylemin belli bir olasılığı vardır -

Model Tabanlı: Reinforcement Learning’in bu methodunda, her ortam için sanal bir model yaratılır ve ajan bu özel ortamda öğrenmeye çalışır.Model her ortam için farklı olduğundan, bu tür için belli bir çözüm veya algoritma yoktur.

Terminoloji

Ajan: Bir ortamda ödüllendirmek için eylemler gerçekleştiren varsayımsal bir varlık.

Eylem : Ajanın alabileceği tüm olası hareketler.

Çevre : Ajanın yüzleşmesi gereken bir senaryo.

State : Çevre tarafından iade edilen mevcut durum.

Ödül :Aracıdan son eylemi değerlendirmek için çevreden geri gönderilen dönüş.

Policy: Ajanın mevcut duruma göre bir sonraki eylemi belirlemek için kullandığı strateji.

Değer :Kısa vadeli ödüle karşılık, uzun vadede azalma beklenen getiri.

İşlev Yaklaşıklandırıcısı: Training örneklerinden bir fonksiyon indükleme problemini ifade eder. Standart yaklaşımlar, karar ağaçları, sinir ağları ve en yakın komşu yöntemlerini içerir

Markov Karar Süreci: Statelerin tam olarak algılanabileceği sıralı bir karar probleminin olasılıksal bir modeli ve seçilen mevcut durum ve eylem gelecekteki durumlar üzerindeki olasılık dağılımını belirler.

Dinamik Programlama:Sıralı karar problemlerini bir kompozisyonel maliyet yapısıyla çözmek için bir çözüm yöntemi sunar.

Monte Carlo: Bir state’n değerini, o durumda başlayan birçok denemeyi çalıştırarak tahmin eden, daha sonra bu denemelerde elde edilen toplam ödülün ortalamasını

Reinforcement Learning’in Diğer Machine Learning Algoritmalarıyla İlişkisi

Reinforcement Learning modeli supervised ya da unsupervised öğrenme modellerinden farklıdır. Kısaca diğer öğrenme yöntemlerini açıklamak gerekirse, Supervised Learning , etiketli veriler üzerinde gerçekleşen modelleri içerir. Unsupervised Learning ise etiketli verilerin elimizde olmadığı zaman kümeleme gibi modellerin kullanıldığı öğrenme yöntemidir.Reinforcement Learning yapısını eğer bir diğer yapılardan birini benzeticeksek bu Unsupervised Learning olurdu elbette.Diğer öğrenme yöntemlerinde ödül agent gibi yapılar bulunmaz sonradan öğrenme gibi yapılardan bahsedilmez ancak Reinforcement Learning modellerinde agent ve ödül yapısı olduğu için systemin kendi kendine öğrenmesi olasılığı ortaya çıkar. Unsupervised yöntemde tavsiye sistemleri, marketing sistemler , customer segmentasyonu veya boyut azaltma gibi modellemeler varken RL’de gerçek zamanlı karar alma , oyunlar için yapay zeka , robot sistemleri , beceri edinme sistemleri gibi sonradan öğrenme olanağı olan sistemlerde kullanılır. Supervised Learning ise ana yapıda classification ve regression olarak ikiye ayrılır.

Reinforcement Learning Algoritmaları Karşılaştırması

13 farklı RL algoritması vardır. Aşağıdaki tabloda bu 13 farklı algoritmanın belli başlı özellikleri verilmiştir. Elbetteki bu algoritmalardan en ünlüsü Q-Learning’dir. Bende Q-Learning ve Deep Q-Learninge değineceğim.Description bölümünde algoritmanın ne mantıkla çalıştığı örnek vermek gerekirse Q-Learning Durum-Aksiyon-Ödül ve tekrar durum mantığıyla çalışmaktadır. Model ve Policy yapısı hepsinde aynı iki Eylem alanı Ayrık ve Devamlı olmak üzere ikiye ayrılıyor. Durum Alanı da keza aynı şekilde.

Q-Learning Nedir ?

Reinforcement Learning’in en popular algoritmalarından bir tanesi olan Q-Learning hareket kümesindeki action setleri dahilinde deterministik şartlar altında maksimum değeri bulmayı amaçlar. Amaç , En optimal path’ı bularak maxium ödüle ulaşmaktır. Q-Learning’de geçen terimler başlıca Envıronment-Agent-State-Action ve Rewarddır. Ajanın ödül haritası, gitmesini istediğimiz ya da istemediğimiz yerler daha önceden bizim tarafımızdan belirlenir ve bu değerler ödül tablosuna yazılır.

Yukarıda görülen fotoğrafta Q-Learning’in formülü yer almaktadır. Bu formülün temel yapısında Bellman Equation yer almaktadır. Her yeni durum bir çok parametreye bağlıdır. Ajan ödüle giderken her iterasyonda edindiği tecrübeleri gidebildiği yerleri seçerken çoklamak için kullanır. Bu tecrübeleri ise Q-Tablosu adı verilen bir tabloda tutar.Q-Tablosundaki sıfırlar olduğundan ilk aşamada rastgele hareket edecektir. Bu rastgele yapı ajanın ilk ödülü bulmasına kadar devam edecektir. Ödülü bulduğu anda Q-Tablosunu günceller böylece hafızada tutmuş olur. Her seferinde ajan bu algoritmaya göre bir sonraki adımı tahmin edip hareket eder ve ödüle ulaşmaya çalışır. Ödüle ulaştıktan sonra ise ajan tekrardan random olacak şekilde harekete başlar ve tekrardan ödülü bulmaya çalışır. Bu işlem devam ettikçe ajan ortamı iyice öğrenir ve hangi durumda nereye gideceğini çözer.

Q-Learning’in genel işleyişine bakacak olursak ;

1- Q-Table Inıtalize etmek

Q Table, ilgili state ve actionlar Q değerlerini tutan tablodur.İlk olarak Q-table’a 0 değerleri atanır.

2- Action Seçme

Q-value değeri en yüksek olan action seçilir. Fakat agent hedefe gitmeyi bir şekilde başarırsa bir süre sonra kendini iyileştirmeyi bırakacaktır.

3- Seçilen İşlemin Gerçekleşme İşlemi

Seçilen adımın gerçekleşme aşaması

4- Ödül Ölçümü

Olumlu yada olumsuz ödül alınır

5- Q-Table Güncelleme

Tüm aşamalar gerçekleştirildikten sonra tekrar Q-Table güncellenir.

Q-Learning’in genel çalışma mantığı bu şekildedir.

Deep Q-Learning Nedir ?

Deep Q Learning de aynı Q Learning gibi bir Reinforcement Learning algoritmasıdır. En önemli farkı ise Q-Table yerine yapay sinir ağlarının kullanılmasıdır. Q Learningde Q-Table’ı Q değerlerinin tutmak için kullanılır. Hangi durumda hangi aksiyon hangi Q değerini veriyor ? Q Learningden farklı olarak burada yapay sinir ağlarını actionlar tahmin edilmek için kullanılır . En yüksek sonuç veren action en mantıklı action olur.

Deep Q-Learning de yapay sinir ağları kullanıldığı için Hidden Layer , loss function , Nöron sayısı gibi değerlere dikkat etmek gerekmektedir. Yukarıdaki şekili anlatmak gerekirse , Action, Environmenta gelir daha sonra Environmenttan çıkan sonuç state , action,reward, next state değerleridir, bu değerler yapay sinir ağlarına girerek 4 farklı Q-value değeri çıkarmaktadır. 4 farklı Q-Value değeri s durumuna göre yukarı-aşağı-sağa-sola doğru tanımladığımız outputlar çıkıyor. En büyük Q-value değeri action değeri seçilerek environmenta yollanır. Böylelikle path tamamlanmış olur.

Reinforcement Learning Nerelerde Kullanılıyor ?

RL algoritmalarının son yıllarda bu kadar popülaritesinin artmasının nedeni belli başlı oyunlarda kullanılmasıdır. Go oyunu , santranç, dama gibi bir zeka oyunudur.Dünyanın en iyi go oyuncusu RL tarafından yenilince RL algoritmalarının popülaritesi artmıştır.Daha sonra Atari Seaquest oyunu gibi bir çok noktada RL algoritmaları kullanılmıştır. RL algoritmaları sadece oyun özelinde değil fabrikalardaki robotlarda hatta SpaceX şirketinin ürettiği roketlerde, Otonom arabalarda RL algoritmasının kullanıldığı bilinmektedir.

AlphaGO ve Atari

Aşağıda görüldüğü gibi Reinforcement Learning’in bir çok uygulama alanı vardır. Bunlardan en popular olanları Process Kontrolü , Networking, Resource Yönetimi , Robotics gibi alanlardır. Son yıllar özellikle Otonom araçlar da oldukça önemli adımlar atılmıştır.

Temel düzeyde geniş çapli RL anlatımım bu kadar. SEVGİYLE KALIN.

Referans

https://www.datacamp.com/community/tutorials/introduction-reinforcement-learning

https://www.wikizeroo.org/index.php?q=aHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvUmVpbmZvcmNlbWVudF9sZWFybmluZw

https://www.udemy.com/course/python-ile-yapay-zeka-adan-zye-reinforcement-learning/learn/lecture/13893204#overview

https://medium.com/@SmartLabAI/reinforcement-learning-algorithms-an-intuitive-overview-904e2dff5bbc

http://www.xn--yusufan-xfb.com/machine-learning/q-learning/

https://www.freecodecamp.org/news/an-introduction-to-q-learning-reinforcement-learning-14ac0b4493cc/

https://medium.com/deep-learning-turkiye/q-learninge-giri%C5%9F-6742b3c5ed2b

https://medium.com/@jonathan_hui/rl-introduction-to-deep-reinforcement-learning-35c25e04c199

--

--