Karesis

Results 13 comments of Karesis

我试了一下,也不行。作者代码是纯卷积的视觉思路,可能表现力会差,得上lstm或注意力

我尝试了一种新的方法,贼简单,效果不错,还在整理代码,预计下周发出来,甚至不用mcts,一个list就搞定了。我这周要补考,下周抓紧发✧٩(ˊωˋ*)و✧

完啦,根本简单不了 qAq 看我最近的一些研究,Self那个项目 感觉一丢掉mcts就完蛋

我尝试用一个基于搜索的ai生成数据,然后我写了一个神经网络来做学习。这个效果还不错,可以看https://github.com/Karesis/GmetaMini2 还没有readme,晚一点我给一个。有时间我准备把里面的一些方法来替换这个作者项目里的神经网络

有一种方法,就是限制棋子只能在同色棋子周围落子。直接mask也行,比较好的办法是让输出以棋子为中心,输出多个(比如黑棋的话就得以黑棋为中心的5×5区域,以白棋为中心的5×5区域,然后再把它们累加起来,归一化,得到value和policy。也就是输出是总棋子×5×5的tensor)这样棋子就更加会进攻或防守。觉得效果不好可以再缩减,比如把5×5变成3×3。

> > 有一种方法,就是限制棋子只能在同色棋子周围落子。直接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。最后就看哪个大嘛,或者你可以所有统一归一化一下,把白的乘以一个负数,加一起看哪里大,就下哪里。

> > > > 有一种方法,就是限制棋子只能在同色棋子周围落子。直接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了。 可以试一下,只是我最近没时间(过段时间我肯定会试的)。就是五子棋可以这样想,毕竟最终棋盘也不是特别大。有可能其他地方“浪费了”,类似于稀疏注意力的想法,并且这样可以把棋子落点约束到现有棋子周围(之前我试过随机在已有落子周围落子,在五子棋这个任务上,比单纯的随机落子会“聪明”一点) 但这只是一个想法,得试。

Hi @zesterer and everyone, I'm adding another data point to this issue as I've just spent a significant amount of time debugging what appears to be the exact same problem....

> [@Karesis](https://github.com/Karesis) That's unfortunate. I would like to provide a good solution for this, but I can't think of any, without reverting to hacks (like shortening type names in an...