AlphaZero'da, terminal durumlarının verilerini saklamamız gerekiyor mu?
AlphaZero'daki sinir ağının güncelleme / geri yayılma adımı sırasında kullanılan eğitim verileri hakkında bir sorum var.
Kağıttan:
Her zaman adımı için veriler $t$ olarak saklanır ($s_t, \pi_t, z_t$) nerede $z_t = \pm r_T$ adımdaki mevcut oyuncunun bakış açısından oyunun kazananıdır $t$. Paralel olarak (Şekil 1b), yeni ağ parametreleri$\Theta_i$ verilerden eğitilmiştir ($s,\pi, z$) kendi kendine oyunun son yinelemelerinin tüm zaman aşamaları arasında tek tip olarak örneklenir
Zamanındaki politikayla ilgili olarak $t$ ($\pi_t$), Bunu, her bir alt düğüm için ziyaret sayısıyla orantılı bir eylem gerçekleştirmenin olasılık dağılımı olarak anladım, yani MCTS sırasında, belirli bir zamanda bir üst düğüm (durum) verildiğinde $t$, eğer bazı alt düğümler (sonraki durum) $a$ ziyaret edildi $N_a$ kez ve tüm çocuk düğümleri ziyaret edilir $\sum_b N_b$ kez, sonra olasılığı $a$ (ve karşılık gelen hareketi) örneklenen $\frac{N_a}{\sum_b N_b}$ve bu, dağıtımı parametreler $\pi_t$. Bu doğru mu? Durum böyleyse, bazı terminal durumları için$T$, bir dağıtımı parametrize edemeyiz çünkü ziyaret edecek alt düğümlerimiz (durumlarımız) yok. Bu eklemediğimiz anlamına mı geliyor ($s_T, \pi_T, z_T$) eğitim verilerine?
Ayrıca, kayıp işlevi ile ilgili bir takip sorusu:
$l = (z-v)^2 - \pi^T log\textbf{p} + c||\Theta||^2$
Bu konuda kafam karıştı $\pi^T$gösterim. En iyi tahminim, bunun, tüm politikalardan örneklenen bir eylem vektörü olduğu.$N$ X $(s_t, \pi_t, z_t)$minibatch, ama emin değilim. (PS$T$ kullanılan $\pi^T$ -den farklı $T$kağıda bakarsanız terminal durumu belirtmek için kullanılır. Karışıklık için üzgünüm, iki farklı görünümlü T'yi nasıl yazacağımı bilmiyorum)
Yanıtlar
Terminal oyun durumları için herhangi bir veri ekleyip eklemediklerinden% 100 emin değilim, ancak gerçekten de terminal oyun durumları için veri dahil etmeme seçimini yapmak çok mantıklı. Sizin de haklı olarak belirttiğiniz gibi, bu durumlarda politika başını güncellemek için anlamlı hedeflerimiz yok ve bu gerçekten bir sorun değil çünkü bir terminal oyun durumunda politika çıktısını asla fiilen kullanmayız. Değer lideri için güncelleme yapabileceğimiz anlamlı hedefler sağlayabiliriz, ancak yine bu tür çıktılardan yararlanmak zorunda kalmayız; Bir ağaç aramasında bir terminal oyun durumuyla karşılaşırsak, bir değer fonksiyonu yaklaşımı elde etmek için ağa bir çağrı yapmak yerine, sadece bu terminal oyun durumunun gerçek değerini yedekleriz.
Teoride, değer başını terminal oyun durumlarında eğitmenin kesinlikle gerekli olmamasına rağmen biraz faydalı olabileceğini düşünebilirim; terminal olmayan (ancak terminal olmaya yakın) benzer oyun durumlarına genelleme sağlayabilir ve bunlar için öğrenmeyi hızlandırabilir. Örneğin, amacın bir sırayı tamamlamak olduğu bir oyununuz varsa$5$ parçalar, değer başını gerçekte bir satıra sahip olduğunuz terminal devletler üzerinde eğitmek $5$ parçaları ve oyunu tamamen kazandıysanız, henüz sahip olmadığınız benzer oyun durumları için öğrenmeyi genelleştirebilir ve hızlandırabilir $5$Bir satırda parçalar var, ancak bu hedefe çok yakın. Bununla birlikte, sezgisel olarak bunun (varsa) büyük bir fayda sağlayacağını gerçekten düşünmüyorum ve muhtemelen zararlı olacağı durumlar da bulabiliriz.
İçinde $\pi^{\text{T}}$ gösterim $\pi$ eylemler üzerinde ayrı bir olasılık dağılımı (bir olasılık dağılımına normalleştirilmiş MCTS'nin ziyaret sayıları) içeren bir vektördür (herhangi bir rasgele zaman adımı için, burada zaman adımı belirtilmemiştir) ve $\text{T}$basitçe o vektörün devrikini aldığımızı gösterir. Şahsen notasyonu sevmiyorum, şunun gibi bir şeyi tercih ediyorum$\pi^{\top}$ bir harften daha açık bir şekilde farklı olan $T$ veya $\text{T}$.
Her neyse, bunu devrik olarak ifade etmek için anladığınızda, göreceksiniz ki $\pi^{\top}\log(\mathbf{p})$ iki vektör arasındaki bir iç çarpımdır ve sonunda tek bir skaler olur.