AlphaZero hiç görmediği bir durumu nasıl değerlendirmeyi öğrenir?


12

Şu soruya verilen yanıtların takibi:

AlphaZero'yu Anlama

Benim sorum, sinir ağının karşılaşmadığı bir konumda ne yapacağını "öğrenmesi" olacaktır. Gerçek AZ'nin eğitilmiş sinir ağındaki önyargı + ağırlıkları kullanarak bir MCTS yürüttüğünü söylemek, sinir ağının bu değerleri nasıl hesapladığına bir adım geri iter. İnsan bilgisi olmadan rastgele kendi kendine oyun oynasaydı, o zaman hiç görmediği bir pozisyonu nasıl ağırlıklandıracağına nasıl karar verir?

Yanıtlar:


6

Bir satranç motorunun sinir ağı veya açık kod olarak somutlaştırıldığı değerlendirme fonksiyonu her zaman herhangi bir tahta pozisyonuna bir değer atayabilir. Bir tahta pozisyonu verirseniz, bir oyunda asla gerçekleşmeyecek saçma olanlar bile, bir oyuncuya veya diğerine ne kadar elverişli olduğunu gösteren bir sayı verebilir. Satrançtaki tahta pozisyonlarının sayısı yönetilemeyecek kadar devasa olduğu için, eğitim sadece oyun ağacının sonsuz bir örneğinde yapılabilir. Motor, tahta pozisyonlarının önceden hesaplanmış değerlerini hatırlamakla kalmaz, aynı zamanda parçaların düzenine göre hesaplamalar yapar. Nöral-net olmayan bir örnek için, bir satranç motorunun değerlendirmesinin bir parçası, her bir parçanın değerini yanına toplamak ve rakibin taşlarının toplam değerini çıkarmak olabilir. Sonra,

Motor eğitim alınmadığında, değerlendirme fonksiyonunun parametreleri (genellikle) rastgele değerlerle başladığı için bir konuma atanan değerler de rastgele olabilir. Bir antrenman aşamasının amacı, motorun parametrelerini, oyuncu için muhtemel kazanma durumları olan tahta pozisyonlarına yüksek puanlar atayacak şekilde ayarlamaktır.

Gönderen AlphaZero kağıt (sayfa 3):

AlphaZero'daki derin sinir ağının parametreleri, rastgele başlatılan parametrelerden başlayarak, kendi kendine oyun güçlendirme öğrenimi ile eğitilir. Oyunlar MCTS tarafından her iki oyuncu için hamleler seçilerek oynanır. Oyun sonunda, terminal pozisyonu oyunun sonucunu hesaplamak için oyunun kurallarına göre puanlanır: −1 kayıp için, 0 beraberlik için ve galibiyet için +1. Sinir ağı parametreleri, tahmin edilen sonuç ile oyun sonucu arasındaki hatayı en aza indirecek ve politika vektörünün arama olasılıklarıyla benzerliğini en üst düzeye çıkaracak şekilde güncellenir.

[matematik sembolleri alıntıdan kaldırıldı]

Özetle, eğitim sırasında AlphaZero kendine karşı bir oyun oynadı. Oyun bittiğinde, oyunun sonucu ve oyunun nasıl ilerleyeceği konusundaki tahminlerinin doğruluğu, sinir ağını bir sonraki oyun sırasında daha doğru olacak şekilde ayarlamak için kullanıldı. AlphaZero, gördüğü her pozisyonun kaydını tutmuyor, ancak gelecekte gördüğü herhangi bir tahtayı daha doğru bir şekilde değerlendirebilmesi için kendini ayarlıyor.


Açıklamanızı algoritmik düzeyde tamamen anlıyorum, ama hala işe yaradığı için hayret ediyorum. İlk oyunların o kadar rasgele olacağını ve öğrenme değerinin olmayacağını düşünürdüm. Bu aşamadaki bir hamlenin sonucunu, mat arkadaşı için oynamak dışında değerlendirmek imkansız gibi görünüyor, çünkü size söylenen tek şey bu. Ancak bu şah mat, ancak çok sayıda diğer temelde rastgele şeyler geçtikten sonra gerçekleşecektir. Bağırsak hissim, herhangi bir sonuç çıkarmak için yeterli anlamlı veri olmadığıdır. Neden yanılıyorum?
Philip Roe

@PhilipRoe Haklısınız, her oyun sadece biraz bilgi sağlar. Aslında evrim algoritmasıyla öğrenen kendi satranç motorumu yazdım. Motorun rastgele değiştirilmiş kopyaları birbirini oynar; kaybedenler silinir ve kazananlar daha fazla değiştirilmiş kopya üretir. Sadece doğru parça değerlerini (kraliçe, kale, piskopos / şövalye, piyon) bulmak için genellikle 10.000 ila 20.000 oyun gerekir. Yeteneğini kazanmak için AlphaZero 44 milyon oyun aldı (bağlantılı makalenin 15. sayfasındaki tablo).
Mark H

Yanıt verdiğiniz için teşekkürler! Ama hala hayrete düşüyorum. Değerlendirilmesi mümkün olan çok büyük pozisyonlar vardır. Ancak, sorulması gereken çok sayıda olası soru alanı da vardır. Antropomorfik olarak kendimi kurallar dışında sıfır ön bilgiyle ve neredeyse akıl almaz derecede yetersiz bir seviyede oynanan büyük bir oyun veritabanı ile hayal ediyorum (her şeyin hatırlanmamasına rağmen) Bu noktada benim için ne oluyor "Hey belki ben "O zaman parçaları saymadan ne kadar süre önce iyi bir fikir gibi görünüyor?
Philip Roe

1
"İyi bir soru nedir?" Ama bu olmadan bile, 20.000 oyunda bir parça heirarchy'nin kurulabileceğinden etkilendim. Bu yüzden tabula'nın gerçekten rasa olduğunu kabul etmekte zorlanıyorum. Kurallarınızı oluşturma ve gözden geçirme süreci hakkında bazı asgari talimatlar (kaç tane, ne sıklıkla?) Hala gerekli görünüyor.
Philip Roe

1
@PhilipRoe Programımda, motora parçaları saymasını söylüyorum, ama her parçanın değerine değil. Bu yüzden motora neye bakacağımı söylüyorum, ama gördüklerini nasıl ağırlıklandıracağımı söylemiyorum. AlphaZero çok daha fazla tabula rasa. Merak ediyorsanız: github.com/MarkZH/Genetic_Chess
Mark H
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.