while True : learn()- Makine Öğrenmesini Oyun ile Öğrenmek

Eralp Özcan
5 min readMay 18, 2019

--

Veri bilimi ve Makine Öğrenmesi konularının eksenindeki birçok endüstri ve iş modelinin değiştirilip,geliştirilmesi ve günümüz uygulamalarında kullanımı,Yapay Zeka konularına duyulan ilginin artmasını sağlıyor. Bu yazıda Makine Öğrenmesini eğlenceli bir şekilde nasıl çalıştığını ne yaptığını öğreten ve yol gösterici olan “while True: learn()” oyununu giriş seviyesinde anlatmaya çalışacağım.

Gerçek iken: learn ()

while True: learn(),2017 yılında erken erişim ile piyasaya çıkmış bir oyun,geliştiricisi Luden.io’nun amacı insanlara makine öğrenmesini ve uzmanın nasıl çalıştığını öğretmek.

"Öğrenmek için asla geç değildir".

  • Bu oyun, yaşamını sağlamak için görsel programlama kullanan bir makine öğrenme uzmanının simülatörüdür. Özel yetenekler gerekli değildir.

Öncelikle oyunun Türkçe dil desteği bulunuyor topluluk tarafından %98'inin çevirisi tamamlanmış. Oyun içeriğini dil engeline takılmadan oynayabiliyoruz. Yalnız oyun içerisinde önermiş olduğu ek dış kaynaklar İngilizce. Oyunun tamamen size bir makine öğrenmesi uzmanın tarihçesinden 1950'li yıllardan alarak günümüze kadar getiriyor. Ve tabi ki bunu güzel bir hikaye ile yapıyor;
Uzmanımızın kedisi ile iletişim kuramaması sorunundan yola çıkarak onu anlamaya yönelik program yazmasıyla başlıyor. Bu süreç zarfında ise gelişen teknoloji ve modeller ile sizde programınızı geliştiriyor,çeşitli işler sorunları çözerek,para kazanıp kendi girişiminizi kuruyorsunuz. Tam anlamıyla eğlenceli ve öğretici bir şekilde Makine Öğrenmesi Uzmanın yaptığı,yapabileceği işleri gerçekleştiriyorsunuz.

Oyun Steam ve HumbleBundle üzerinden satışa sunuluyor. Oyunu anlatmaya geçmeden sahip olmak isterseniz kendi siteleri üzerinden de yönlendirmelere erişebilirsiniz.

Şimdi oyuna geçecek olursak,daha doğrusu yavaş yavaş Makine Öğrenmesi Uzmanlığı koltuğumuza oturalım. :)

while True: Learn() Giriş

Oyunumuzu açtığımızda bizi bu görsel veya buna benzer bir görsel karşılıyor. Oyunun iyi yanı ve öğretici yanı ise eğitim sekmesine tıkladığımızda sizi adım adım ne yapacağınızı nasıl yapacağınızı öğreten kaynaklara yönlendiriyor. Bunların içerisinde Youtube,Cousera,Kaggle ve Google gibi sitelerde bulunan kurslar,arXiv ile ise akademik çalışmalar ve Wikipedia ile temel bilgilere yönlendirmeleri bulunuyor.

Adım Adım ML ile Daha Derine

Önerilen tüm kurslara ve derslere ise buradan ulaşabilirsiniz. Önerilen kurslar sizin için de bir yol haritası olabilir. Önerilmiş tüm kursları öğrenmemiz veya almamız gerekmiyor. Sorunuz veya çalışmak istediğiniz alana göre yönelimde bulunabilirsiniz. Şahsi tavsiyem tüm konula hakkında bir aşinalık kazanmanız sizin faydanıza olacaktır. Oyun size gerektiğinde gerekli konuların makalelerini ve kurslarını size önerecek.

Vee başlıyoruz..

Hikaye’nin çıkış noktası.

Hikayemizin çıkış noktası ve ana projemiz olan kedi konuşmalarını tanımlamak/sınıflandırmak.

CatOverflow birebir StackOverflow oyun aslında burada bizi gerçek hayatta StackOverflow’a kullanıma ve faydasına yönlendiriyor bir açıdan. Oyunun içerisinde bir çok cevabı ve haberleri buradan da öğreneceğiz. Gerçek hayatımızda StackOverflow’un çoğu zaman imdadımıza yetiştiğini unutmamak gerek.

Evet ilk yan işimiz de geldi. Oyun süresi boyunca bir çok böyle yan görev/iş geliyor. İşlere göre sistemleri tasarlayarak sizden istenen doğruluk değerlerine ulaşmaya çalışıyorsunuz.

İlk iş ve Uzman Sistem

İlk programımız öğrencilerin sınavlarının verisini işlemeye yönelik,burada uzman sistem kullanarak verileri farklı çıkışlara yönlendiriyoruz. Kutucukların köşesinde bulunan kırmızı ile daire içine aldığım “İ” ye tıkladığımızda ise o araç ile ilgili bize bilgileri veriyor. Basit bir şekilde hem oyunda ki işlevini anlatıyor hemde bizlere gerçek dünyada ki halini anlatıyor ve linkler ile yönlendiriyor . Bu görev için makale ve video verilmiş. İlerleyen yerlerde aşağıda gösterdiğim gibi kurs yönlendirmelerini de gösteriyor. *Kaynakların bir çoğu basit eğlenceli ve anlaşılabilir bir dile dayanıyor.

Mark-1 Perceptron

Mark-1 Perceptron’ı ilerleyen bir uygulamada kullanıyoruz. Bize önerdiği gerçek dünya yönlendirmeleri şöyle;

Bir çoğumuz biliyoruz ki bazı işlemler için donanımlarımız yetersiz kalıyor. Hatta bu alanların bu zamana kadar gündem olamamasının ana sebeplerinden biriside bu donanım meselesiydi. Veriniz,parametreleriniz çok ve ağınız büyük bunlar bir işlem kapasitesi ve zamana maliyet oluyordu. Burada da aynı durumu göz ardı etmeyip her bir işlem kutucuğunun belli bir işlem süresi var. Örneğin, Uzman Sistem için 1 sn,Perceptron için 0.693 sn gibi. Tabi ki oyun da bu performansı zamanla geliştirme imkanı sunuyor.

Donanım Geliştirme

Tabi ki kendi ağınızı/düğümlerimizi de oluşturabiliyoruz. Çünkü sorunlar büyüyor ve düğümler yetersiz kalabiliyor. Kendi oluşturduğumuz düğümlerin/ağın hepsini bir şema haline toplamamız mümkün. Temel anlamda gerçekleşen bu oluşturma süreci aslında kolaylık sağlaması açısından bulunuyor ancak günümüzde kullanılan derin öğrenme modelleri de aslında böyle paketler(DLL0)’den oluşuyor.

DLL Yapısı

Benim oluşturmuş olduğum “DLL0” yapısının içerisinde 22 adet Mark-1 Perceptron bulunuyor. Temel haliyle bir ağ oluşturmuş oluyoruz,istediğimiz zaman istediğimiz yerde çağırabilir değiştirebiliriz. Benzer bir görsel halini görmek isterseniz şurada.

Görev Ağacı

Bu kısıma kadar anlatmış olduğum yer “Cat” projemizin %29'luk kısmını oluşturuyor. Görev ağacımıza göre ise şuan 1998'lindan sonraki aşamaya geçmiş bulunuyoruz.

Reinforcement Learning ve Text Recognition kısımlarını ve devamını bir sonra ki yazı serisine bırakıyorum.

Umarım keyif alarak öğreneceğiniz bu alanın güzelliklerini ve temellerini anlayabileceğiniz bir oyun olur. 😏

Hiç bir şey için geç değil öğrenmeye,kodlamaya ve üretmeye devam 💪 💻

Kaynaklar

--

--

Eralp Özcan

Full Stack Developer and Frontend Developer | Vue.js , Nuxt.js MEVN