*

  • machine learning algoritmalarından biri.

    temel olarak dayandığı mantık şudur: öncelikle tamamen aptal olduğunu farzettiğimiz ajanımız rastgele hamleler yapar (zaten oynamayı bilmediği için doğal hareketi budur). yapılan her hamleden sonra ajana yaptığı hamlenin ödülü geri bildirim olarak verilir. verilen ödül problemin doğası gereği kazanan bir hamle yapıldıysa pozitif bir ödül, kaybeden ya da kural dışı bir hamle içinse negatif bir ödül, bir galibiyet veya yenilgiye yol açmayan hamleler içinse 0 vermektir (problemin doğasında en kısa yoldan çözüme ulaşmak varsa, yapılan her galibiyet dışı hamleye de yenilgiye oranla çok daha küçük bir negatif ödül verilebilir).

    daha sonra ise problemin her durumu ve o durumda yapılacak hamleler için bir tablo oluşturmaktır. bu tablodaki değerler verilen bir durum ve o durumda yapılacak hamle için, o hamlenin yararını belirleyecek değerler içerir. bu değerler öğrenme sürecinden önce rastgele bir değere eşitlenir (mesela 0). daha sonra ajanın yapacağı hamleler ve o hamlelerin kazandığı ödüllere göre tablo değerleri yenilenir. bir tablodaki değerin yenilenmesindeki amaç o hamleden sonra yapılacak en iyi hamlenin değerine yaklaşmaktır. bunun için bir hamlenin değeri, kendinden sonra yapılabilecek hamlelerin en yükseğinin değerinden belli bir oranda kesinti yapılarak yenilenir. tabloda yapılan değişiklik eski değeri son bulunan değere yaklaşacak şekilde değiştirmektir. bu değişimin ne kadar hızlı olacağı, öğrenme katsayısıyla belirlenir.

    bir kaç öğrenme oyunu sonrası elimizde oluşacak tablo şu şekilde oluşabilir:

    galibiyete götüren hamleler = galibiyet ödülü
    galibiyete 2 adımda götüren hamleler = (kesinti oranı)*(galibiyet ödülü)
    galibiyete 3 adımda götüren hamleler = (kesinti oranı)^2*(galibiyet ödülü)

    bu şekilde yeterince eğitim süreci (birkaç yüzbin oyun) yaşanırsa, tablo değerleri oyundaki o hamlelerin değerini doğru tahmin edebilecek kadar oyunun teorik kazanma fonksiyonuna yaklaşır (oyunda böyle bir fonksiyon olduğu farzedilmektedir). böylece (artık) akıllı ajan (bkz: intelligent agent), hangi hamlenin daha iyi olduğunu bilebilir.

    öğrenme sonucunda ajanın yapacağı, bir duruma denk gelindiğinde, o durumdan yapılabilecek hamlelerin en değerlisini oynamaktır.

    bu tarz bir yaklaşım ne yazık ki bir tabloya yazabileceğimiz, okuyabileceğimiz kadar dar problemler için çözüm sağlamaktadır. daha geniş problemler içinse zaman ve hafıza problemleri başgösterecektir. örnek olarak satranç oyunu gibi çok oyun içi durum barındıran oyunlar için bu yaklaşımı doğrudan kullanmak başarısız sonuçlara yol açar.

    (bkz: yapay zeka)
    (bkz: temporal difference learning)
    (bkz: reinforcement learning)

    not: tanımların düzeltmeye ihtiyacı olabilir.
  • geçici farklar algoritmasına dayanan bir reinforcement learning algoritmasıdır. algoritma, q(s,a) olarak gösterilen durum-eylem değerinin güncellenmesini sağlar. bu değer, s durumunda uygulanan a eyleminin uzun dönemdeki beklenen değeridir. q değerleri belli bir episode sayısından sonra optimum durum-eylem değerlerine yakınsar. algoritmanın adımları şu şekilde sıralanır:

    - q(s,a) için başlangıç değerlerini belirle
    - durumu algıla, s0
    - bu durum için (s0) bir eylem ata (a)
    - a eylemini uygula, yeni oluşan s1 durumunu algıla ve r puanını al
    - q(s0,a) değer fonksiyonunu aşağıdaki kurala göre güncelle:

    q(s0,a) = q(s0,a) + w(r + y(max q(s1, b)) - q(s0,a))

    - s0 = s1
    - üçüncü adıma dön ve öğrenme süreci bitene kadar bu adımları tekrarla

    w, ajanın öğrenme surecini etkileyen bir parametredir ve 0 ile 1 arası sabit bir değer alabildiği gibi adım adım değişik değerler de alabilir. y parametresi de 0 ile 1 arasında değişen değerler alır. güncelleme denkleminden de anlaşılacağı gibi yeni oluşan durumdaki en iyi q değerinden(max q(s1, b)), eski durumdaki q değeri çıkarılır. bu şekilde alınan puanın yanısıra, uzun dönem düşünüldüğünde, geçilen yeni durumun yaptığı katkı da göz önüne alınmış olur. y değerinin sıfıra yaklaştığı durumlarda, uzun dönemdeki puana az ağırlık verildiği için yanlış seçimler yapılmasına yolaçabilir. literatürdeki çoğu çalışmada w=0.1, y=0.9 olarak seçilmiştir. q(s,a) değerleri ilk başta rasgele atanabildiği gibi herhangi bir durum için tercih edilen bir eylem yoksa, bütün değerler eşit olarak da belirlenebilir.
  • bu konu üzerinde derinlemesine uğraşan arkadaşlar mdp içinde bulunan transition probability değerlerinin q function içinde neden bulunmadığını anlayamamış olabilirler. bunun sebebi q-learning algoritmasının "model-free" yapısında olmasındandır. yani agent'ımız environmentı modellemek zorunda kalmaz. örneğin bir state içindeyken bir action gerçekleştirilirse yeni state environment tarafından bize verilir. böylelikle bizim hangi statelere gideceğimizi (transition probabilities) düşünmemize ve hesaplamamıza gerek kalmaz.
  • görünen o ki ilerleyen günlerde daha çok duyacağız. openai herkesi işsiz bırakmaya and içmiş.
hesabın var mı? giriş yap