joezou

Results 7 comments of joezou

我试了下,也不行,不知道如何调整算法和参数。

> 有一种方法,就是限制棋子只能在同色棋子周围落子。直接mask也行,比较好的办法是让输出以棋子为中心,输出多个(比如黑棋的话就得以黑棋为中心的5×5区域,以白棋为中心的5×5区域,然后再把它们累加起来,归一化,得到value和policy。也就是输出是总棋子×5×5的tensor)这样棋子就更加会进攻或防守。觉得效果不好可以再缩减,比如把5×5变成3×3。 请问下,具体是以哪个棋子呢?比如现在白棋下了一步,紧接着应该黑棋下,那么黑棋子的落子是围绕上一步白棋的落子,还是上上一步黑棋的落子呢?在我看来围绕白棋就是寻找防守,围绕黑棋就是寻求进攻?

> 试试这个 https://github.com/initial-h/AlphaZero_Gomoku_MPI 大佬,请教下,整个训练的过程中,loss和entropy变化会怎么样,比如loss会持续降低吗?如果loss不持续降低,是不是也并不是意味着棋力不再增强?那我们观察棋力是否增强,有什么好的方法呢?和历史上最好的模型去对弈?

> > > 试试这个 https://github.com/initial-h/AlphaZero_Gomoku_MPI > > > > > > 大佬,请教下,整个训练的过程中,loss和entropy变化会怎么样,比如loss会持续降低吗?如果loss不持续降低,是不是也并不是意味着棋力不再增强?那我们观察棋力是否增强,有什么好的方法呢?和历史上最好的模型去对弈? > > 不会一直降低的,因为数据一直在变化。只要维持在一个低的水平波动就是正常的。可以搞几个固定的模型对打画个曲线出来。 感谢回复~

> > > 有一种方法,就是限制棋子只能在同色棋子周围落子。直接mask也行,比较好的办法是让输出以棋子为中心,输出多个(比如黑棋的话就得以黑棋为中心的5×5区域,以白棋为中心的5×5区域,然后再把它们累加起来,归一化,得到value和policy。也就是输出是总棋子×5×5的tensor)这样棋子就更加会进攻或防守。觉得效果不好可以再缩减,比如把5×5变成3×3。 > > > > > > 请问下,具体是以哪个棋子呢?比如现在白棋下了一步,紧接着应该黑棋下,那么黑棋子的落子是围绕上一步白棋的落子,还是上上一步黑棋的落子呢?在我看来围绕白棋就是寻找防守,围绕黑棋就是寻求进攻? > > 就是以所有棋子,但是区分轨道。我的想法是假设现在黑棋要下,人为的把所有黑子和他附近的3×3或5×5取出来,送入一个神经网络,得到黑子数量乘以3×3的方阵(以3×3为例),mask,然后再把他们加起来,看做进攻policy。同样的把所有白子附近的3×3取出来,送入一个神经网络,得到白子数量乘以3×3的方阵,mask,加起来(这里可以归一化一下),看做防守policy。最后就看哪个大嘛,或者你可以所有统一归一化一下,把白的乘以一个负数,加一起看哪里大,就下哪里。 我理解下你的意思,就是黑棋要落子,你会遍历下棋盘上黑棋附近3x3和5x5方阵的可以落子点(通过mask),然后所有的落子位置进行归一化,作为进攻policy;再遍历下棋盘上白棋附近3x3和5x5方阵的可以落子点(通过mask),同样归一化作为防守policy;最后再考虑进攻和方式的policy,进行落子? 如果我理解正确的话,我觉得一端到端看这个方案太复杂了;二输入变得太局限了,仅看该子周围的3x3和5x5方阵,你想想最牛逼的棋手是只看局部情况的吗?显然不是啊。我认为太tricky了。

> 我也是遇到这个问题,棋盘大小改成15*15后,训练收敛loss非常快,500局就到3点几了,然后自对弈每局步数越来越少,20多步,10多步就结束胜出了。根本不防守的,双方只拼谁更快5子连珠。不管对方棋。硬着头皮继续训练,到3000局,也是一样,平均10-20步每局。永远学不会防守。 你有没有改善?我现在用棋手先sft之后,再强化学习,也还是不会防守,下了快40000盘了,双方老是贴边进攻。

我调小了棋盘的大小,9*9的棋盘,下了将近2w盘棋,还是没有得到一个很牛逼的AI。“限制在存在棋子的周围两格内的空位”,这件事情应该是让ai自己学会,而不是限制住,我发现现在还是学不会。