Bilgisayar oyunlarında makine öğrenmesi yöntemlerinin kullanılması
Using machine learning techniques in computer games
Yazar: HAKAN OĞUZ VURAL
Danışman: PROF. DR. İMAN ASKERBEYLİ
Ankara Üniversitesi / Fen Bilimleri Enstitüsü / Bilgisayar Mühendisliği Ana Bilim Dalı
Derece: Yüksek Lisans, 2022
Konu: Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrol = Computer Engineering and Computer Science and Control
Dizin: Evrimsel algoritmalar = Evolutionary algorithms    ; Genetik algoritma tekniği = Genetic algorithm technique ; Makine öğrenmesi yöntemleri = Machine learning methods ; Yapay sinir ağları = Artificial neural networks ; Yapay zeka = Artificial intelligence

Özet:
Bu projede evrimsel yapay sinir ağları teknikleri kullanılarak bir bilgisayar oyununu oynamayı sıfırdan, kendi kendine öğrenen bir yapay zekâ geliştirmek amacıyla Yapay Oyuncu Geliştirme Ortamı (YOGO) adı verilen bir sistem oluşturulmuştur. YOGO sayesinde bilgisayar oyunlarını oynayabilen birleşimli bir yapay oyuncu geliştirilmiş ve statik yapay zekalardan daha yüksek performanslı yapay zekalar oluşturmak amaçlanmıştır. Flappy Bird, Google Dino Run ve Cell Rush adlı üç oyunda YOGA sınanmış ardından birtakım testler yardımıyla bu oyunları istenilen seviyede oynayabilecek, başarı kriterlerini sağlayan yapay oyuncular geliştirilmiştir. Her bir yapay oyuncu, oyun dünyasını algılayabilecek sensörlere, oyun dünyası ile etkileşime girecek hareket motor sistemine ve sensör ile motor sistemi arasında veri akışını sağlayacak bir yapay sinir ağına sahiptir. Yapay oyuncuların sahip olduğu yapay sinir ağları sensörden gelen verileri girdi olarak alıp, işleyip ve çıktı üretmektedir.  Üretilen çıktı verileri motor sistemine yollanmakta ve motor sistemi aldığı verilere göre yapay oyuncunun hareketlerini gerçekleştirmektedir. Yapay oyuncular performansına göre değerlendirilerek ve genetik algoritma teknikleriyle seçilip, çaprazlanıp, mutasyona uğrayarak bir sonraki jenerasyona aktarılmaktadır. Sadece en iyi yüzde elli çaprazlamalara katılmaktadır. Çaprazlanan bireyler yeni jenerasyonun bir önceki jenerasyonlardan daha iyi olması ümidiyle seçilmektedir. Yapay oyuncular başarı kriteri sağlanana kadar eğitilmekte ve nesilden nesille aktarılmaktadır.

Abstract:
In this project, a system called Artificial Player Development Environment (YOGO) was created in order to develop a self-learning artificial intelligence from scratch using evolutionary artificial neural networks techniques. Thanks to YOGO, a composite artificial player that can play computer games has been developed and it is aimed to create higher performance artificial intelligences than static artificial intelligences. YOGA has been tested in three games called Flappy Bird, Google Dino Run and Cell Rush. As a result of the tests, artificial players have been developed that can play these games at the desired level and meet the success criteria. Each artificial player has sensors that can detect the game world, a motion engine system that will interact with the game world and an artificial neural network that will provide data flow between the sensor and the engine system. Artificial neural networks owned by artificial players take the data from the sensor as input, process it and send the output data it produces to the motor system. The motor system performs the movements of the artificial player according to the data it receives. Artificial players are evaluated according to their performance and are selected, crossed, mutated and passed on to the next generation with genetic algorithm techniques. Only the best fifty percent individuals participate in crossing proccess. Crossed individuals are selected in the hope that the new generation will be better than the previous generations. Artificial players are trained and handed down from generation to generation until the success criterion is met.