Makine öğrenmiyor: AlphaZero'nun şifresini çözmek için bir resim (Pytorch uygulamasıyla)

Makine öğrenimi derin öğrenme kuru depo www.jqbxx.com

Başlangıçta kendim yazmayı planlamıştım ama David Foster'ın şaheserini buldum ve okuduktan sonra anladım. Hiçbir şey söylemeyeceğim

Net göremiyorsanız, orijinal resim arka bağlantıda da bulunabilir.

Anlamıyor musun ! ! ! O halde açıklamama izin verin.

AlphaGo Zero, esas olarak üç bölümden oluşur: kendi kendine oynama, eğitim ve değerlendirme. AlphaGo ile karşılaştırıldığında, AlphaZero arasındaki en büyük fark, eğitim için uzman numuneleri kullanmamasıdır. Eğitim örnekleri kişinin kendisi tarafından üretilir ve kendisi ile oynar, eğitim ise oluşturulan örnekler tarafından gerçekleştirilir; güncelleme öncesi güncellenen ağ ve ağ rekabeti değerlendirilir.

Başlangıçta, tüm sistem mevcut en iyi ağ parametrelerine göre kendi kendine oyun oynamaya başladı Farz edelim ki 10.000 oyun oynandı ve kendi kendine oyun sürecinde elde edilen veriler toplandı. Bu veriler şunları içerir: her oyunun durumu ve bu durumdaki her bir eylemin olasılığı (Monte Carlo arama ağacıyla elde edilir); her oyunun kazanan puanı ve tüm oyunlardan sonra toplam puan (kazanan +1 puanı, Başarısızlık için -1 puan ve sonunda puanları toplayın), elde edilen tüm veriler 500.000'lik bir veri deposuna konulacak; daha sonra bu verilerden rastgele 2048 örnek örneklenecek ve ağ 1.000 yineleme güncellenecek. Güncellemeden sonra ağı değerlendirin: Oyunun 400 turu boyunca güncel olarak güncellenen ağı ve güncellenmemiş ağı kullanın ve oyunun kazanma oranına göre mevcut güncellenmiş ağı kabul edip etmeyeceğinize karar verin. Güncellenen ağın kazanma oranı% 55'in üzerindeyse, güncellenen ağ kabul edilir, aksi takdirde kabul edilmez.

İlk olarak AlphaZero'nun girdi oyununun durumuna bakalım. Şekilde gösterildiği gibi, 19 * 19 boyutunda (satranç tahtası ile aynı boyutta) 17 özellik haritasını temsil eden 19 * 19 * 17 boyutunda bir veridir. Bunların arasında 8'i beyaz, 8'i siyah ve 1 ile işaretlenen yer çocuk var anlamına gelir, aksi takdirde 0 olarak işaretlenir. Kalan, siyahın veya beyazın dönüşü olduğunu belirtmek için tüm 1'leri veya tüm 0'ları kullanır. Oluşturulan bu veriler, oyunun durumunun eğitim için ağa girdi olduğunu gösterir.

Öyleyse bir göz atalım, AlphaZero'nun ağı tam olarak nasıl?

Bu ağ temel olarak üç bölümden oluşur: 40 katmanlı bir artık ağdan oluşan bir özellik çıkarma ağı (gövde) ve bir değer ağı ve bir strateji ağı (iki başlık). Ağdaki değer ağının çıktı değeri, mevcut durumun değer tahmini olarak kullanılır; strateji ağının çıktısı, bir durumun bir eyleme eşleme olasılığı olarak kullanılır. Bu iki parçanın çıktıları, nihai satranç kararına rehberlik etmesi için Monte Carlo arama ağacına tanıtıldı. Açıkçası, değer ağının çıktısı -1 ile 1 arasında 1B'lik bir skaler değerdir; strateji ağının çıktısı, her noktanın satrancın oynandığı noktayı temsil ettiği 19 * 19 * 1 özellik haritasıdır. Konum olasılığı. Ağın Monte Carlo arama ağacını nasıl yönlendirdiğine bir göz atalım.

Şekilde gösterildiği gibi, şekildeki arama ağacındaki siyah noktalar, bir durumdan diğerine geçişi temsil eder; geri kalan düğümler, daha önce bahsedilen girdi olan oyunun durumunu temsil eder. Yaprak olmayan bir düğümün durumundan başlayarak, genellikle birçok olası eylem vardır ve durum düğümü a dört özelliğe sahiptir ve nasıl seçileceğini belirlerler. Spesifik olarak, N, eylem düğümünün şu ana kadar ziyaret edilme sayısını temsil eder; P, ağ tarafından tahmin edilen düğümü seçme olasılığını temsil eder; W, sonraki durumun toplam değerini ve ağ tarafından eylem çıktısının değerini temsil eder. Değeri bu değere dahil edilecektir; bu değer ziyaret sayısına bölünerek ortalama Q değerine eşittir. Aslında, daha fazla eylem keşfetmek için Q'ya bir U eklenecektir. Bence çok açık olmalı. Öyleyse, oluşturulmuş arama ağacına dayanarak satranç adımlarına nasıl devam edersiniz? Belirli bir eşik aralığı dahilinde (örneğin, 1000 iterasyondan önce), eylem, Q fonksiyonunu maksimize ederek seçilir; daha sonra bu eşikten büyük olduğunda, Monte Carlo arama ağacı yöntemi kullanılır (örneğin, olasılığa dayalı PUCT algoritması Ve gerçekleştirilecek eylemi seçmek için ziyaret sayısı).

O halde Monte Carlo arama ağacının bunda nasıl uygulandığına bir göz atalım. İlki düğümdür:

sınıf Düğümü:

def __init __ (self, parent = None, proba = None, move = None):

self.p = proba

self.n = 0

self.w = 0

self.q = 0

self.children =

self.parent = ebeveyn

self.move = hareket

Bunların arasında, daha önce bahsedilen 4 öznitelik ve üst ve alt düğümlerin işaretçileri vardır. Ve son hamle, mevcut durumdaki yasal hamlelere işaret ediyor. Eğitim sürecinde bu değerler güncellenecektir, peki güncellemeden sonra eylemleri seçmek için bunları nasıl kullanacaksınız?

def select (düğümler, c_puct = C_PUCT):

"PUCT formülüne göre seçimin optimize edilmiş versiyonu"

total_count = 0

aralıktaki i için (nodes.shape):

total_count + = düğüm

action_scores = np.zeros (nodes.shape)

aralıktaki i için (nodes.shape):

action_scores = düğümler + c_puct * düğümleri * \

(np.sqrt (toplam_sayı) / (1 + düğüm ))

eşittir = np.where (action_scores == np.max (action_scores))

eğer eşitse.shape > 0:

return np.random.choice (eşittir)

getiri eşittir

Bunun gösterdiği şey, tüm alt düğümler arasında herhangi bir düğüm için en yüksek puana sahip düğümün PUCT algoritması aracılığıyla bulunduğudur. Bu action_scores içindeki puan Hesaplama sürecinde, hem ağ tahmini olasılığı hem de düğümün ziyaret edilme sayısı dikkate alınır. Ziyaret edilen yaprak olmayan düğüm için genişletmeye devam edin; bu bir yaprak düğüm ise son değerlendirmeyi gerçekleştirin. Artık ağ modülü, değer ağı ve strateji ağına gelince, bunları tek tek tanımlamayacağız. Ayrıntılı referans:

https://github.com/dylandjian/superGo

Referanslar:

https://medium.com/applied-data-science/alphago-zero-explained-in-one-diagram-365f5abf67e0

21: 9 oran! Sony Xperia XZ4 açıkta, üçlü arka kamera
önceki
Baofengyingyin Uygulama güncelleme günlüğü, bu şaka biraz fazla
Sonraki
Makine öğrenmiyor: öneri sistemlerinde derin öğrenmenin uygulanması
80PLUS Platinum da insanlara yakın, Jinhetian Z ZP600P-GF güç kaynağını denetler
Makine öğrenmiyor: Derin öğrenme CNN'ye dayalı kısa metin benzerliği hesaplama şeması
68.000'e satılan 3D baskılı elektrikli arabalar: sıradan arabalardan 4 kat daha güçlü, sadece 450kg
Makine öğrenmiyor: derin öğrenmeye dayalı kişiselleştirilmiş ürün incelemesi etiketi çıkarma
Üreticiler madencilik madenciliğine dayanamaz: grafik kartı madenciliği garanti edilmez!
Paranızın tam karşılığı olan MSI Z170 Krait GAMING anakartın sınırlı bir zaman artışı var
Alüminyum levha + cam, istifleme de moda! Jinhetian 21+, V10'un yandan kasa ekranını öngörüyor
Makineler öğrenmiyor: Yapay zekayı çıplak kızları bikiniyle otomatik olarak "giydirmek" için kullanın ve annem artık benim için endişelenmiyor
"Tembel insanların" favorisi, Korbel Smart Tek Bardak İçme Makinesi CBK02S'nin kullanım ekranı
Makine öğrenmiyor: e-ticaret platformu öneri sistemi mimarisinin evrimi
Kullanışlı ve daha akıllı Kobel Smart Tek Bardak İçme Makinesi CBK02S kutudan çıktı
To Top