簡體   English   中英

訓練深度神經網絡的強化學習

[英]Reinforcement learning for training deep neural network

我打算編寫一個使用深度卷積神經網絡的國際象棋引擎來評估國際象棋的位置。 我將使用位板來表示板 state,這意味着輸入層應該有 12*64 個神經元用於 position,1 個用於玩家移動(0 表示黑色,1 表示白色)和 4 個神經元用於易位權(wks, bks、wqs、bqs)。 將有兩個隱藏層,每個層有 515 個神經元,以及一個 output 神經元,其值介於 -1 代表黑人獲勝,1 代表白人獲勝,0 代表相等的 position。所有神經元將使用 tanh() 激活 function。

我考慮過通過向 CNN 提供大量 Stockfish 評估的位置來使用監督學習,但決定不這樣做,因為這在某種意義上只會復制另一個引擎的評估 function。
因此我決定使用強化學習,調整自玩游戲的權重和偏差。 但是,當無法判斷給定 position 的正確評估是什么時,我該如何訓練 neural.network? 我如何“告訴”它一個給定的動作是一個錯誤而另一個動作是優秀的?

我已經閱讀了一些關於這個主題的論文和文章,但在解釋訓練過程時,它們似乎都沒有解釋神經網絡的調整......

非常感謝所有答案:))

簡單來說,給定所有棋子的位置,代理在特定的state中。 每個 state 都有一個值,可以通過各種方法(如果使用深度 RL,則為 neural.networks)學習該值。 state 值是通過后續狀態的預期回報(reward)學習到的。 因此,您可以通過模擬環境並從中獲得獎勵來訓練神經網絡。 獎勵連同 state 值將用作訓練您的神經網絡的目標。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM