junxiaosong / AlphaZero_Gomoku

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

小白的猜想,请多多指教。 #11

Closed 1715509415 closed 6 years ago

1715509415 commented 6 years ago

AlphaGo zero和 alphazero 的区别是少了一个eval。self和opt还是一样。AlphaGo zero中是一个步骤一个步骤来。如,在我们的单机电脑中,是先self生成数据,然后再opt训练数据。再eval评估。我们不能同时进行这三个步骤。因为不能刚好连接得上。。。即使alphazero少了eval。但还是要一步一步来啊,要怎么做才能self数据的时候自动的变成opt的模型呢?我想的是self数据完成后直接变成model。然后model又直接self这样不是更快了吗。这样我们就可以美美的睡觉第二天起来,直接能用上更好的model了。如:https://github.com/chncyhn/flappybird-qlearning-bot

junxiaosong commented 6 years ago

根据你提供的flappybird的repo链接,我猜你说的“self数据直接变成model”是指那个repo里用的table based Q-learning算法,直接以表格形式存储每一个(s,a)对应的Q-value,这是最基础的强化学习算法,只适用于动作空间和状态空间都离散且比较小的情况,不适用于下棋这个case.

1715509415 commented 6 years ago

嗯,受教了.大学有时间,所以就多学习。五子棋self出来的数据,有的还没有几子就输了,象这样的局有必要再进行opt和eval吗。我想如果不的话,那model多样化不够,但是如果这样差的局也拿去训练和评估的话,那会不会拖累和降低model的棋力呢

junxiaosong commented 6 years ago

这个影响不好说,你可以尝试做实验进行对比