Results 60 comments of Junxiao Song

We use the negative value of the state, this is because alternate levels in the search tree are from the perspective of different players and the Q-values are in fact...

@gmftbyGMFTBY leaf_value是从leaf节点的视角考虑的,leaf value传入后是用来更新Q value的,而leaf节点的Q value是给它的父节点选择分支的时候用的,所以这个Q value是从父节点的视角出发的,所以leaf节点自身的leaf value和自身的Q value就是从相反的视角考虑的,所以传入时就加了负号。

这两个model都是训练了3000~4000多局自我对局得到的,model2是后期代码稳定了一次性跑出来的,另一个没记错的话是在一个learning rate下跑了1000局,然后改了下learning rate,以1000局得到的model初始化又跑了3000局

这边的关注点是AlphaZero算法,所以我们使用最简单的无禁手的五子棋作为训练对象。如果有兴趣要实现五子棋正式比赛的规则,或者其他棋类游戏,都可以在game.py中实现

我觉得理论上是可以的,AlphaGo出来之前很多人应该就是这么做的,但效果应该会变差吧,因为策略网络其实就是在搜索的时候给出一些更有潜力的分支,这样能提高搜索效率,把有限的搜索次数用在最关键的部分

看了下确实有问题,应该还是得用data_format='channels_first',这个tensorFlow版本是其他同学贡献的,当时看了,但没有发现这个问题,感谢指出。不知道是否方便帮忙修一下,提个pull request呢?

已合并#29 ,多谢

@xinrui-zhuang 调用的时候,模型名字直接用"best_policy.model"即可加载

@xinrui-zhuang 意思是把64-72行全部注释掉,那一段的目的是让大家可以只用numpy就能加载提供的模型并和它对战;然后取消60-61行的注释,这两行是加载自己训练的模型用的,不管你是用的Theano/Lasagne, PyTorch 还是 TensorFlow

@xinrui-zhuang 感觉1500个epoch对于12*12的大棋盘来说太少了,另外issue #14 #13 中的一些讨论也可以参考