Alpha Zero 趣味学习:TicTacToe
深度学习风行天下,起始于围棋软件 AlphaGo 的成功。
从游戏软件开发中学习 deep learning,可以适当避开深度学习理论的繁难晦涩、枯燥乏味,值得一试。
AlphaGo 有着名垂青史的赫赫功绩,但也有其难免的弱点。它的学习方法属于有监督学习,需要海量标注数据,不仅使得开发成本居高,并且学习者难有充足数据可用。
AlphaGo Zero 的学习方法属于无监督学习,人们只需给出解题的基本规则,无须提供具体数据。AlphaGo Zero 是自学成材。
不过,AlphaGo Zero 的自学训练,对硬件性能要求极高,学习者若要尝试实验,需先投入大量资金购置高档计算机设备。
比较好的办法,是选用与 AlphaGo Zero 功能原理相近的软件作为替代。我推荐 Blanyal 的作品 alpha-zero。它有3个游戏,但我只会玩其中的 tictactoe,知道它的规则逻辑,所以选择它当作学习对象。
尝试训练程序,我是这样做的:
- 下载源程序
- 建立目录 tictactoe,拷入源程序包中第一级目录下的全部 8 个.py 文件,和第二级目录 tic_tac_toe
建立目录 tictactoe\data
打开 config.py,修改其中的 2 句
第 1 句: model_directory = “./connect_four/models/”
改为 :model_directory = “./data/”
第 2 句: game = 2
改为 :game = 0
打开 main.py,删除其中 2 句
from othello.othello_game import OthelloGame
from connect_four.connect_four_game import ConnectFourGame
命令行运行:python main.py
程序运行 9 分多钟,完成网络训练。源程序通过基本体检。
后又训练 1 次,用时约 30 分钟,对弈结果平局,训练成功。