Derlemeyi ve organize etmeyi isteyin
Qubit Üretildi | Genel Hesap QbitAI
Şok! "Flappy Bird" uzun yıllardır popülerdir, ancak Çince adı yoktur.
Sorun değil. Bu, tüm yapay zekaların bu oyunu el çalışması yapmak için kullanmasını engellemez. Örneğin, bugünün HTML5 öğreticisi, size kuşlarla oynayabilen bir yapay zeka oluşturmak için sinir ağı + genetik algoritmayı kullanmayı öğretmek içindir.
Önceden söyleyeyim, bu AI'nın kodu eğitimin sonunda indirildi. Tüm kod, HTML5 kullanılarak Phaser çerçevesi kullanılarak yapılır. Ek olarak, sinir ağı sıfırdan inşa etmek yerine Synaptic Neural Network kütüphanesini kullanır.
Yukarıdaki Demo demosunun ekran görüntüsüdür. Bu algoritmanın gerçek etkisini görmek için aşağıdaki web sitesini ziyaret edin.
Bu sistemin algoritması esas olarak NeuroEvolution'a dayanmaktadır. Bu makine öğrenimi yöntemi, yapay sinir ağlarını (YSA) eğitmek için genetik algoritma (GA) gibi evrimsel yöntemleri kullanır.
Başka bir deyişle, bu örnekteki makine öğrenimi = genetik algoritma + sinir ağı
Yapay sinir ağları, makine öğrenimi algoritmalarının bir alt kümesidir. Biyolojik sinir ağlarının yapısından ve işlevinden esinlenirler.Bu ağlar, birbirine sinyal gönderen birçok nörondan oluşur.
Bir sinir ağı, bir giriş katmanından, bir veya daha fazla gizli katmandan ve bir çıktı katmanından oluşur. Her katmanda bazı nöronlar bulunur ve giriş ve çıkış katmanlarındaki nöronlar doğrudan dış ortama bağlıdır.
Bu projede, her ajanın (yani kuşun) içinden geçmesi gereken AI beyni olarak kendi sinir ağına sahip olması. Bu beyinler üç katmandan oluşur ve aşağıdaki şekilde yapılandırılmıştır:
Kuştan boşluğa yatay ve dikey mesafeleri temsil eden bir giriş katmanı, iki nöron
Bir gizli katman, altı nöron
Bir çıktı katmanı, bir nöron, aşağıdaki eylemleri gerçekleştirir: eğer çıktı > Sadece 0,5'te uç
Yukarıdaki metin aşağıdaki resim ile de temsil edilebilir:
Burada sinir ağlarını eğitmek ve iyileştirmek için genetik algoritmalar kullanıyoruz.
Adından da anlaşılacağı gibi, genetik algoritma, doğal seçilim ve genetik süreçlerden yararlanan, arama tabanlı bir optimizasyon tekniğidir. Bu algoritma, ilk rastgele evrimi gerçekleştirmek için aynı seçim, kombinasyon geçişi ve mutasyon kombinasyonunu kullanır.
Aşağıdakiler, genetik algoritmamızın ana adımlarıdır:
İlk 10 kuş (popülasyon) oluşturmak için rastgele sinir ağını kullanın
Oyun oynamaya giderken kuşların kendi sinir ağlarını kullanmalarına izin verin
Her kuş için, uçuş kalitesini ölçmek için uygunluk işlevini hesaplayın
Tüm kuşlar öldüğünde, mevcut popülasyonu bir sonraki nesle değerlendirmek için genetik operatörleri kullanın.
2. adımı tekrarlayın
Yukarıdaki üçüncü adımda, uygunluk işlevinin ayrıntıları ve nasıl tanımlanacağı hakkında konuşacağız.
Popülasyonu geliştirmek için en iyi bireyleri (kuşları) kullanmak istediğimizden, bir uygunluk işlevi tanımlamamız gerekir.
Genel olarak konuşursak, uygunluk işlevi, nesnenin kalitesini ölçmek için kullanılır. Ekibimizdeki her kuş ölçülür ve yeni nesil popülasyonu oluşturmak için bunlardan uygun bireyler seçilir.
Bu projede kuşun uçuş mesafesine göre ödüller veriyoruz. Ayrıca kuşu, kuş ile bir sonraki boşluk arasındaki mesafeye göre cezalandıracağız. Bu şekilde, hangi kuşların aynı mesafeden uçtuğunu ayırt edebilirsiniz.
Yukarıdaki 4. adımdaki genetik algoritma için, uygulama adımları aşağıdadır. Temel olarak, en iyi bireysel kuşlar hayatta kalacak ve yavruları en kötü performans gösterenlerin yerini alacak.
Mevcut popülasyondaki bireyler uygunluk durumuna göre sıralanır
Ödül vermek ve bunları doğrudan gelecek nesle aktarmak için ilk dördü seçin
En yüksek dereceli iki birey, bir yavru oluşturmak için çapraz birleştirilir.
İlk dörtten rastgele iki kişiyi seçin ve üç yavru üretmek için çapraz birleştirin
İki doğrudan kopya yavru oluşturmak için ilk dörtten rastgele iki kişi seçin
Her yavru için rastgele bir mutasyon uygulayın
Yukarıdaki kod, aşağıdaki adrese gidilerek alınabilir:
https://github.com/ssusnic/Machine-Learning-Flappy-Bird
Bu eğitimde, yapay zekanın Flappy Bird oyununu oynamayı öğrenmesine başarıyla izin verdik. Birkaç tekrardan sonra neredeyse yenilmez bir kuş elde edebiliriz. Bu hedefe ulaşmak için iki makine öğrenme algoritması benimsedik: yapay sinir ağı + genetik algoritma.
Bu projeyle ilgileniyorsanız, gelecekte ne olacağını görmek için koddaki bazı parametreleri değiştirmeyi deneyebilirsiniz. Örneğin, gizli katmandaki nöron sayısı veya popülasyonun her neslindeki birey sayısı değiştirilebilir. Elbette, engeller arasındaki mesafe, yerçekimi vb. Gibi faktörler eklemek gibi uygunluk işlevini de değiştirebilirsiniz.
Ve benzer kavramları diğer oyunlara da uygulamayı deneyebilirsiniz!
İyi şanslar ~
- Bitiş -
Samimi işe alım
Qubit, editörleri / muhabirleri işe alıyor ve merkezi Pekin, Zhongguancun'da bulunuyor. Yetenekli ve hevesli öğrencilerin bize katılmasını dört gözle bekliyoruz! Ayrıntılar için, lütfen QbitAI diyalog arayüzünde "işe alım" kelimesiyle yanıt verin.
Qubit QbitAI
' ' Yapay zeka teknolojisi ve ürünlerindeki yeni eğilimleri takip edin