1. 程式人生 > 其它 >使用PyTorch實現簡單的AlphaZero的演算法(3):神經網路架構和自學習

使用PyTorch實現簡單的AlphaZero的演算法(3):神經網路架構和自學習

神經網路架構和訓練、自學習、棋盤對稱性、Playout Cap Randomization,結果視覺化

從我們之前的文章中,介紹了蒙特卡洛樹搜尋 (MCTS) 的工作原理以及如何使用它來獲得給定棋盤狀態的輸出策略。我們也理解神經網路在 MCTS 中的兩個主要作用;通過神經網路的策略輸出來指導探索,並使用其價值輸出代替傳統的蒙特卡洛rollout演算法。

在這一部分中,我們將從這個神經網路的架構開始,檢查它的不同層、輸入和輸出。然後瞭解如何使用自我對弈訓練網路和研究用於訓練神經網路的損失函式。本文還將仔細研究訓練的細節,包括特定於 Chain Reaction 遊戲的資料增強技術和稱為 Playout Cap Randomization 的方法提高訓練效率。最後我們將視覺化檢視我們的工作成果。

神經網路架構

神經網路模型的輸入形狀為MxNx7,其中M和N分別為Chain Reaction遊戲的行數和列數。圖形中的數字“7”表示有7個通道,每個通道以二進位制資料的形式儲存的某些特定資訊,如下面所示:

下面的圖片展示了神經網路的架構。

我們的神經網路結構是一個resnet結構-它有conv2d, batchnorm2d和relu層,dropout層和兩個任務頭。

完整文章:

https://avoid.overfit.cn/post/d2e6352cf0104473ba896d198f8277bc