Giter Site home page Giter Site logo

q-learning-with-pygame's Introduction

Q-Learning-With-PyGame

1-) Giriş

Pekiştirmeli öğrenme (reinforcement learning), öznelerin (agent) bir görevi en yüksek
kazançla tamamlayabilmek için hangi eylemleri gerçekleştirmeleri gerektigi ile
ilgilenen bir makine öğrenmesi tekniğidir. Bu tür öğrenme algoritmaların girdisi
öznelerin görev yapacakları farklı durumlardan oluşan bir ortam S, yapabilecekleri
eylemler A, ortamdaki durumuna göre yapabilecekleri eylemleri belirleyen prensipler, bir
durumdan diğer duruma geçtiklerinde elde edecekleri kazançtır.
Q-learning pekiştirmeli bir öğrenme algoritmasıdır. Ortam hakkında hiçbir şeyin
bilinmediği durumlarda, Q-learning algoritması ortamı brute-force şeklinde, her
ortam için olası tüm aksiyonları takip ederek, problem çözümü için en karlı yolu
bulmaya çalışır. Q-learning algoritmasının girdileri kazanç matrisi olarak adlandırılan R
matrisidir. Bu matrisin satır ve sütunları ortamları temsil etmekte, R[i][j] değeri ise i
durumundan j durumuna geçtiğinde elde edilen anlık kazanç değeridir. Eğer i
durumunda j durumuna bir geçiş yoksa R[i][j] değeri -1, geçis var ancak j durumu
hedef durum değilse değeri 0, j hedef durum ise değeri kullanıcı tarafından belirlenen bir
kazanç değeridir.
Q-learning algoritmasının çıktısı ise öğrenmenin kalitesini gösteren Q matrisidir.
Q-learning iteratif bir algoritmadır ve tüm değerleri başlangıçta 0 olan Q matrisi
optimal değerlere yakınsadığı da sona erer. Algoritma her iterasyonda rastgele bir
durumdan öğrenmeye baslar, A’ya göre durum değiştirir ve Q matrisini günceller.
A’ya göre hedef duruma ulaşıldığında iterasyon sona erer. A’ya göre bir durumdan
birden fazla duruma geçis olabilir. Boyle bir durumda, olası geçişler den biri rastgele
seçilir. Eğer seçilen durum hedef duruma ulaştırmıyorsa, durum rastgele olacak durum
olarak belirlenir. Hedef duruma ulaşılanakadar iterasyon devam eder. Q matrisi aşağıdaki formüle göre güncellenir:
Q(durum, aksiyon) = R(durum, aksiyon)+γ×Max{Q(sonraki durumlar, tüm aksiyonlar)} γ
ogrenme katsayısıdır ve 0 ile 1 arasında bir değer alır.

2-) Proje

Burada robotun Q learning algoritması kullanarak engel sütunlarından kaçması ve beyaz alanlardan
geçerek doğru yol alması gerekiyor. 
Robotumuz kullanıcının istediği bir kareden başlayıp kırmızı kutulara çarpmadan bitiş kısmına en kısa(maliyetle) yoldan
ulaşırsa başarılı sayılacaktır.
Ajan, herhangi bir beyaz kareden başlayarak sağa, sola, aşağı, yukarı ve çapraz hareket edebilir. Atılan
adımlar belirleyici olmalı ve engele çarpışmadıkça başarılı olur. Robot en son duvara geldiğinde robot
sadece aşağı hareket ederek istenilen noktaya  gelecektir. Sonuç olarak robot başlangıç noktasından
istenilen hedefe gelinceye kadar hiçbir engele çarpmadan ve en kısa yolu bularak ödülü alır.


İndirim faktörü γ = 0.9, kırmızıya çarparsa -5 ödül puanı,yeşil bitiş noktasına +100, diğer geçişlere
-1 ödül puanı olarak hesaplanacaktır.

A) Verilen 50 * 50’lİk matriste her bir kullanıcı kendine özgü engel oluşturup,matristeki değerleri
random olarak atayacaktır.Bu matris değerlerini engel.txt dosyasına yazdırılacak.Örnek gösterim
(1,1,K).
B) Grafiksel ara yüzde belirlenen yollar, engeller ve duvarlar gösterilecektir(15p).
C) Kullanıcı tarafından bir grafiksel arayüz tasarlanacak, bu ara yüzde ajan başlangıç noktası, hedef
noktası istenecektir.
D) Herhangi bir başlangıç noktasından hedef noktaya ulaşıncaya kadar ajanın yaptığı
kazançların/maliyetin(episode via cost) ve bölüm adım sayısının (episode via step) grafiği
çizdirecek.
E) Sonuç olarak ise başlangıç karesinden hedef kareye giden en kısa yol grafiksel ara yüzde
gösterilerek yol planı grafik üzerinde çizdirilecek.. .

q-learning-with-pygame's People

Contributors

zeynepkuden avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.