yapay zeka ile flappy bird geliştirmek, Fatih Mehmet Bostancı, famebo Designed by Freepik
Yazılım

Yapay Zeka ile Flappy Bird Eğitmek

Bu uygulama "Reinforcement Learning" yani "Pekiştirmeli Öğrenme" yöntemi kullanılarak geliştirildi. Peki nedir bu reinforcement yöntemi ?

"Güçlendirmeli öğrenme, istenen davranışları ödüllendirmeye ve / veya istenmeyenleri cezalandırmaya dayalı bir eğitim yöntemidir."

Demiş kaynak "Reinforcement Öğrenimi" için. Ayrıca; öğrenme metodu yapay zekanın denetimsiz makine öğrenimini ödüller ve cezalar yoluyla yönlendirmenin bir yöntemi olarak kabul edilmiştir. Diye de eklemiş.

Kısaca Reinforcement Learning makineye; yaptığı hatalardan ders çıkararak en doğru sonucu üretebilme yeteneği kazandırmak olarak nitelendirilebilir. Yani insan zekasına en yakın öğrenme biçimlerinden birisi olarak kabul edilebilir. Sonuçta biz insanlar da doğduğumuz andan itibaren bir çok hatalar yapar ve bu hataların sonucunda yaptığı hatalardan ders çıkararak bir yetişkin olur. Bundan yola çıkılarak bir makinenin de, farklı durumlarda daha önceki tecrübelerinden faydalanıp en doğru sonucu üretmesi sağlanabilir.

Bu araştırmaların ışığında internette dolaşırken kaynak olarak edindiğim video sayesinde ben de kendi "öğrenen flappy bird" uygulamamı gerçekleştirmek istedim. Reinforcement Learning kullanırken yapılan hatalardan bir çıkarım yapılarak doğru sonuca ulaşıldığı için öğrenilecek durumun belki binlerce, yüzbinlerce veya milyonlarca tekrarlanması gerekebilir. Bu sebeple biz uygulamamızda bir kuşu bir defa ekrana çizdirerek 1500 defa benzeri hataları tekrarlamasını izlemek yerine, daha hızlı öğrenmesini sağlamak amacıyla aynı kuşu 1500 kere ekrana çizerek tek seferde 1500 deneme yapmasını sağlamaktayız. Bu da öğrenimin süresini 1500 kez daha kısaltmak anlamına gelmektedir. Bu üretilen 1500 kuş yandıktan sonra (reinforcement mantığına göre cezalandırıldıktan sonra) en uzun süre ayakta kalmayı başaran kuş "en zeki kuş" olarak kabul ediliyor ve en zeki kuşun beyni ile yeni jenerasyon 1500 adet kuş üretiliyor.  Yani her bir yeni nesil (jenerasyon) bir önceki nesilden daha zeki olarak üretiliyor ve bir önceki neslin yapmış olduğu hataların tekrarlanmaması sağlanıyor. Tabi ki ekranda üretilen borular rastgele üretildikleri için oyun alanı ve öğrenme süresi de buna bağlı olarak değişkenlik gösterebilmektedir.

Uygulamayı; http://flappybirdai.fatihbostanci.com adresinden inceleyebilirsiniz.

Pekiştirmeli öğrenmenin kullanılabileceği alanlar yalnızca bir oyundan ibaret olmayıp, hayatın bir çok alanında (sağlık sektörü, arama kurtarma çalışmaları vb.) kullanılabilir, insandan daha hızlı karar verebilme yeteneği sayesinde daha önce hiç görmediği yeni bir ortama koyulduğunda, (örneğin; enkaz altında kalmış bir insan bedeni arama çalışması sırasında) ortama çok daha hızlı adapte olabilir ve insanların giremeyeceği alanlarda da arama çalışmalarına devam edebilir.

Tabi yapay zeka uygulaması geliştirirken dikkatli olunmalı ve mühendislik etik kurallarına sonuna kadar uyulmalı. Neticede hiç birimiz bir gün karşımızda bir ultron görmek istemeyiz değil mi .. ?

Blogumu okuduğunuz için teşekkür ederim. Bir sonraki yazılarda görüşmek üzere, hoşça kalın!