Q-Learning’e Giriş

Özkan Doğan
Deep Learning Türkiye
4 min readMar 18, 2019

Q-Learning algoritması, pekiştirmeli öğrenmenin(reinforcement learning) en çok bilinen algoritmalarındandır. Algoritmadaki temel amaç bir sonraki hareketleri inceleyip yapacağı hareketlere göre kazanacağı ödülü görmek ve bu ödülü en çoklayıp (maximize) buna göre hareket etmektir.

En İyi Durumu Değerlendir

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 (Reward Table) yazılır. Ajanın tecrübeleri bu ödül tablosuna göre şekillenecektir.

Ajan ödüle giderken her iterasyonda edindiği tecrübeleri gidebildiği yerleri seçerken en çoklamak için kullanır. Bu tecrübeleri ise Q-Tablosu (Q-Table) adı verdiğimiz bir tabloda tutar.

Q-Tablosu Değerleri

Q-Tablomuz başlangıçta ajanımızın hiçbir tecrübesi olmadığı için sıfırlarla doludur ve bu yüzden ajanımız ilk seçimlerinde Q-Tablosundaki sıfırları en çoklayacağından rastgele hareket edecektir. Bu rastgelelik ajanın ilk ödülü bulmasına kadar sürecektir. Ajan ödülün olduğu bir yere geldiği anda ödüle gelmeden önceki yerini bilir ve bu yerin değerini kendi tecrübelerini biriktirdiği Q-Tablosuna yazar. Bu yazma işleminin belirli bir algoritması bulunmaktadır.

Q-Learning Algoritması

“Q(s,a)” (state,action) dediğimiz değer bizim şu anda {bulunduğumuz, gideceğimiz} dizin, “lr” dediğimiz değer öğrenme katsayısı (learning rate),“r(s,a)” dediğimiz değer bizim {bulunduğumuz, gideceğimiz} ödül tablomuzdaki ödül değerimiz, “Y” değeri gamma, “max (Q (s’,a’))” değeri ise gidebileceğimiz {gideceğimiz,gideceğimiz yerden gidebileceğimiz} yerlerin en yüksek Q değeridir.

Her seferinde ajan bu algoritmaya göre bir ilerisini tahmin edip hareket eder ve ödüle ulaşır. Ödüle ulaştıktan sonra ise ajan tekrardan rastgele bir yerden harekete başlar ve tekrardan ödülü bulmaya çalışır. Bu işlem devam ettikçe ajan hangi durumda nereye gideceğini bilmeye başlar.

Bir örnekle Q-Learning algoritmasını daha iyi anlamaya çalışalım.

Düğüm Modeli

Yukarıdaki modelde 3 numaralı düğüm gitmek istediğimiz hedef düğümdür. Öncelikle bu düğüm modeline göre bir ödül tablosu hazırlamamız gerekmektedir. 3 numara hedef düğüm olduğu için en büyük ödül o düğüme verilmelidir. Diğer düğümler ise birbirinden farksız olduğu için ödülsüz olarak belirlenebilir. Gidilmeyen düğümler ya da gitmesini istemediğimiz düğümler ise negatif belirlenir. Bu örneğimizde gitmesini istemediğimiz yer yok ama gidilemeyen yer vardır (0'dan 3'e gibi).

Ödül Tablosu (Reward Table)

Ödül tablosunu oluşturduktan sonra tecrübesiz olduğumuz ve sıfırlarla dolu olan Q-Tablomuzu oluşturuyoruz.

Q-Tablosu (Q-Table)

Ajanımızı rastgele bir düğüme yerleştiriyoruz. 0 düğümüne yerleştirdiğimizi varsayalım. Ajanın gidebileceği iki düğüm vardır ve bu düğümlerden birisini seçmelidir (1. ya da 2. düğüm). Q-Tablosunda gideceği iki düğümün de değeri sıfırdır bu yüzden rastgele bir seçim yapar (2. düğümü seçtiğini varsayalım) ve bu seçimini değerlendirmeye başlar. Not: Gamma değerini 0.8, öğrenme değerini de 0.7 alalım.

Q-Learning algoritmamıza göre ilk seçimimizin değerlendirmesini yapalım.

Q(0,2)=Q(0,2) + 0.7*( 0+0.8*max( Q(2,1),Q(2,3) )-Q(0,2) )

Q(0,2)=0+0.7*(0+0.8*0)-0)

Q(0,2) ← 0

İlk durumda ajan ödül olan bir yere gitmediğinden Q-Tablosundaki değer sıfır kalmıştır.

Yeni, Değişmeyen Q-Tablomuz

İkinci aşamada ajan 2 düğümünden devam edecektir. Gideceği üç yol bulunmaktadır (0. düğüm, 1. düğüm ve 3. düğüm). Ajan Q-Tablosuna tekrar bakar ve üç düğümün de Q değerinin sıfır olduğunu görür ve rastgele seçim yapar. Bu seçiminde 3 düğümünü seçtiğini varsayalım ve seçtiği düğüme göre Q-Learning algoritmamızı uygulayalım.

Q(2,3)=Q(2,3) + 0.7*( 100+0.8*max(Q(3,2) )-Q(2,3) )

Q(2,3)=0+0.7*(100+0.8*0)-0)

Q(2,3) ← 70

2. düğümden 3. düğüme geçmenin ödülü olduğu için Q-değerimizde bir değişme olmuştur ve tecrübe kazanmışızdır yani Q-Tablomuz değişmiştir.

Yeni, Değişen Q-Tablomuz

Bu işlemler tekrar ettikçe Q-Tablomuz şekillenecek ve ajanımız direkt olarak hedef düğüme doğru hareket etmeye başlayacaktır.

“Q-Learning’e Giriş” başlıklı bu yazımda Q-Learning nedir, ödül tablosu, Q-Tablosu nedir ve nasıl değişimlere uğrar gibi konulara temel seviyede değinmeye çalıştım. Bir sonraki yazımda Python ile Q-Learning algoritması kodlamaya çalışacağım. Okuduğunuz için teşekkür ederim.

--

--