ericborn / binarybot: Bot, StarCraft 2 oynayabilen bir Sinir ağı tarafından desteklenmektedir

BinaryBot

Bu projenin amacı, StarCraft 2 oyununun tamamen özerk bir şekilde oynayabileceği bir bot oluşturmaktı. Proje süresince, hem yerel hem de buluttan faydalanan TensorFlow ve Keras ile sinir ağları inşa ederek veri kaydetmek ve yüklemek için Numpy'yi kullanmayı öğrendim. GPU'lar, verileri gerçek zamanlı olarak analiz eder ve Linux ile çalışır.

StarCraft 2 oyununda zafer için belirlenmiş bir yol yoktur ve hedefim kendi oyun tarzını ve stratejisini geliştiren esnek bir bot oluşturmak olduğu için, botun hareketlerini bir sinir sistemi tarafından kontrol ettirerek bunu başarmaya karar verdim. ağ. Bir tür dahili hafıza işlevine sahip bir tür sinir ağı olan LSTM, uzun süreli kısa süreli belleği kullanan bir sinir ağı uygulaması ile gittim. Bir sinir ağının kendisini eğitmek için büyük miktarda veri incelemesi gerektiğinden, ilk önce oyun verilerini üretecek ve ağı eğitmek için kullanacak bir bot oluşturdum. Eğitimden ve bir modelden tasarruf ettikten sonra, gerçek zamanlı verileri okumak ve oyun içi eylemleri seçmek için botu uyguladım.

Ne yazık ki, sinir ağı bu kadar iyi oynamıyor. Bot, gerçek zamanlı verileri analiz eder ve bazen değişken kararlar alır, ancak çoğu zaman aynı işlemi yok edilinceye kadar seçer. Oyununu iyileştirmek için, botu aynı işlemi arka arkaya 5 kez seçerse, o eylemi gerçekleştirmek yerine, bunun yerine rastgele bir eylemin kullanılmasını önleyen bir sistem kullandım. Bu, botun performansında önemli gelişmelere neden oluyor, ancak sinir ağının genel amacını kilit karar verici olarak yok ediyor.

Dosyalar

binary_bot.py, eylemlerini kontrol etmek için CuDNNLSTM-model.h5 adı verilen sinir ağı modelini kullanan ana bot dosyasıdır. Model katmanlarını veya yapılandırmasını değiştirmek istiyorsanız, eğitim verilerini almak, modeli oluşturmak, ardından eğitmek ve kaydetmek için tüm kodu içeren CuDNNLSTM.py dosyasını kullanın. Egzersiz verileri oluşturmak için Binary_bot_random.py veya Binary_bot_static.py kullanın. Rastgele bot sadece rastgele eylemleri seçer ve genel olarak oldukça düşük performans gösterir. Statik bot hızlı bir şekilde hareket kümelerini yineler ve oyunu oynarken çok daha iyidir, ancak çok az çeşitliliği vardır.

Ayrıca https://starcraft2.com adresinden ücretsiz olarak indirebileceğiniz tam bir StarCraft 2 kurulumuna ihtiyacınız olacak.

Paketler

PySC2, StarCraft II'yi RL araştırması için zengin bir ortamda geliştirmek üzere DeepMind ve Blizzard arasındaki bir işbirliğidir. PySC2, RL ajanlarının StarCraft 2 ile etkileşime girmesi, gözlemler alması ve eylemler göndermesi için bir arayüz sağlar. Kod burada bulunabilir: https://github.com/deepmind/pysc2

SC2, Python 3'teki StarCraft II AI Botları yazmak için kullanımı kolay bir kütüphanedir. Dokümantasyon ve detaylar burada bulunabilir: https://github.com/Blizzard/s2client-proto#downloads

Resmi harita paketleri, Linux dağıtımı ve ek bilgileri Blizzards Git'te burada bulabilirsiniz: https://github.com/Blizzard/s2client-proto

kâğıtlar

DeepMind’in bu projenin amacı, makine öğrenmesinin StarCraft 2 oyununa hakim olup olmadığını görmek idi. Bulgularını burada okunabilecek bir araştırma makalesinde yayınladı: https://arxiv.org/abs/1708.04782

TenCent ayrıca çevreyi kullanan bir çift bot geliştirdi ve bulguları ile birlikte bir makale yayınladı: https://arxiv.org/abs/1809.07193

DeepMind'in aksine TenCent, PySC2 ortamının değiştirilmiş halini ve Git'lerinde bulabilecekleri bot kodlarını gerçekten yayınladı: https://github.com/Tencent/TStarBots

You may also like...

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir