junxiaosong / AlphaZero_Gomoku

An implementation of the AlphaZero algorithm for Gomoku (also called Gobang or Five in a Row)
MIT License
3.34k stars 971 forks source link

请问人机对弈的时候,为什么不保留之前的树的统计数据呢? #51

Open gmftbyGMFTBY opened 6 years ago

gmftbyGMFTBY commented 6 years ago

https://github.com/junxiaosong/AlphaZero_Gomoku/blob/66292c55cc53acfae7f7bc5a15a370571549bdd9/mcts_alphaZero.py#L206

gmftbyGMFTBY commented 6 years ago

我的意思是,如果保留了是不是效果会更好呢?

junxiaosong commented 6 years ago

人机对弈的时候还要考虑人一方的move,另外即使保留也只是两个move之后的子树,考虑到每一层的分支数量,两层之后的一个分支中的数据其实很少

gmftbyGMFTBY commented 6 years ago

谢谢

mrmitzh commented 5 years ago

人机对弈的时候还要考虑人一方的move,另外即使保留也只是两个move之后的子树,考虑到每一层的分支数量,两层之后的一个分支中的数据其实很少

那在self_play的过程中为什么就要保存下来呢? 是因为self_play的过程中页是经过类似的搜索过程对整颗mcts树上的值有变动吗?

zyfo2 commented 4 years ago

人机对弈的时候还要考虑人一方的move,另外即使保留也只是两个move之后的子树,考虑到每一层的分支数量,两层之后的一个分支中的数据其实很少

那在self_play的过程中为什么就要保存下来呢? 是因为self_play的过程中页是经过类似的搜索过程对整颗mcts树上的值有变动吗?

个人理解如果人机的话,只有一方搜索,相当于树更多的包含了对机器有利的分支,因为人很可能走对他有利的分支,这个分支很可能在树里面比较少探索的深度比较有限,所以保留下来意义也不大,数据太少。而如果self play 的时候,两个方向都有一定深度,所以适合共享