飞扬围棋

标题: leelaz 对alphaz的讨论 [打印本页]

作者: lu01    时间: 2017-12-6 20:49
标题: leelaz 对alphaz的讨论
https://github.com/gcp/leela-zero/issues/267
justinwong098评论了6小时前

DeepMind最近为他们的新程序AlphaZero发布了一篇论文。其中一个重大变化是“省略评选步骤和选拔最佳球员”。如果我正确地解释这一点,这意味着他们使用最新的网络来生成新的游戏,即使它不是迄今为止最强大的游戏。这是一个合理的修改添加到LeelaZero?
以下是论文的引用:

在AlphaGo Zero中,自我游戏是由以前所有迭代中最好的玩家生成的。在每次训练结束后,新玩家的表现与最佳玩家进行对比;如果以55%的优势获胜,那么它将取代最好的玩家,而自我游戏则是由这个新玩家产生的。相反,AlphaZero只是维护一个不断更新的单个神经网络,而不是等待迭代完成。自我游戏是通过使用这个神经网络的最新参数生成的,省略了评估步骤和选择最佳玩家。



@kityanhem




:+1 :: - 1 ::微笑::田田:: thinking_face ::心脏:

kityanhem评论了6小时前

https://arxiv.org/abs/1712.01815
关于AlphaZero的文件



@ isty2e




:+1 :: - 1 ::微笑::田田:: thinking_face ::心脏:

isty2e 6个小时前评论
编辑

@ isty2e

@ isty2e


由于以下原因,我不认为这适用于LZ。
1.训练速度和自我发挥之间的平衡对我来说似乎很重要。如果训练速度较慢,网络质量的提升速度不够快,从而导致自身质量下降。另一方面,如果自我生成的速度较慢,那么网络可能会过度配置,考虑到较少的培训可能更可取,结果可能是有问题的。很难弄清楚这些细节并平衡它们。

2.我不认为AlphaGo Zero的自我游戏AlphaZero更强大。他们已经产生了21M的游戏,而AlphaGo Zero则是5M。 10M游戏后AlphaZero达到了AlphaGo Zero水平。

3.简化流程将会困难得多,部署随时间而变化的神经网络。
Ttl在6小时前发表评论

本文(https://arxiv.org/abs/1705.08439),基本上使用与十六进制的AGZ相同的算法,也不使用评估。但他们说这是因为他们发现新的网络一直比较强,他们没有发现评估是必要的。 LZ现在也不能这么说。



@ justinwong098




:+1 :: - 1 ::微笑::田田:: thinking_face ::心脏:

justinwong098评论了6小时之前•
编辑

@ justinwong098


我不认为AlphaGo Zero的自我游戏AlphaZero的数量更强。
你是对的。我没有想到这一点。你可能是正确的,这个AlphaZero的变化不应该被执行。然而,公平地说,AlphaZero还有一些其他的变化使得它不能玩Go:例如他们没有用8倍对称性来丰富它,或者AlphaGo Zero调整了超参数,而AlphaZero没有,或AlphaZero不得不考虑其他的结果,如抽奖。我可以想象,包括8个对称将大大提高可用的训练数据,AlphaZero没有利用;如果我们使用一些粗糙的数学,21/8 = 2.625,这比AlphaGo Zero 20块要求的5m还要少。



@ isty2e




:+1 :: - 1 ::微笑::田田:: thinking_face ::心脏:

isty2e评论5小时前

@ justinwong098这是有点含糊不清,但我理解,因为AlphaZero的对称被利用去,但不是国际象棋和将棋。无论如何,我个人认为这里最重要的第一个原因。



@ justinwong098




:+1 :: - 1 ::微笑::田田:: thinking_face ::心脏:

justinwong098评论了5个小时以前

@ isty2e
我会考虑利用对称性作为领域知识的一部分,其中对称性在该部分没有提及。
我不确定现在训练和自我比赛是否非常好。看来GCP花了很多时间评估。但是我可能是错的。
如果我们要实现这些AlphaZero的变化,那么我的(未受教育的)建议就是继续每25到3000个游戏一次训练新的网络,就像我们一直在做的那样。而不是评估新的网络是否更强大,只需使用新的网络来生成新的自我游戏。



@gcp




:+1 :: - 1 ::微笑::田田:: thinking_face ::心脏:
所有者此用户是leela-zero存储库的所有者。
gcp评论5小时前
编辑

@gcp


贬低评估会使事情变得更容易,因为它是延迟的主要来源。目前正在做分发的工作,但仍然是。我可以让我的训练器每1000步就上传一个网络。
我觉得这个方法很有效。在训练中我们看到了比赛的强度大幅下降。
他们也使用了800个MCTS模拟。所以1600比1000和所有这些显然不相关。



@ isty2e




:+1 :: - 1 ::微笑::田田:: thinking_face ::心脏:

isty2e评论5小时前

@ justinwong098它是这样写的:

围棋的规则是不变的旋转和反射。这个事实在AlphaGo和AlphaGo Zero中有两种使用方式。首先,训练数据通过为每个位置生成8个对称来增强。其次,在MCTS期间,董事会职位在进行神经网络评估之前使用随机选择的轮流或反射进行转换,以便蒙特卡罗评估在不同的偏倚上进行平均。国际象棋和将棋的规则是不对称的,一般来说对称是不可能的。 AlphaZero不会增加训练数据,也不会在MCTS期间转换棋盘位置。
所以我的理解是,AlphaZero利用了对称性(“这个事实在AlphaGo和AlphaGo Zero中有两种利用方式”),但是棋和将棋并非如此。
关于两个过程之间的平衡,不平衡可能比AlphaGo更不利于AlphaZero。当然,这只是我的印象,但很可能。如果这样一个连续的网络变化首先是有益的,尤其是考虑到它没有理论证明的话,我也觉得很可疑。例如,这可能只对国际象棋和将棋有益。



@ justinwong098




:+1 :: - 1 ::微笑::田田:: thinking_face ::心脏:

justinwong098评论了5个小时以前

@ isty2e
您引用的部分说只有AlphaGo和AlphaGo Zero利用了对称性。他们说AlphaZero不会“增加训练数据”;如果他们只希望这个适用于AlphaZero的Go版本,我希望他们会这样说。另请参阅“域知识”部分,其中未提及对称性增强。 “AlphaZero没有使用任何形式的领域知识,除了[在领域知识部分]列出的点”。
我不相信,放弃评估会在训练和自我发挥之间造成很大的不平衡。你能进一步扩大这一点吗?因为正如GCP所提到的,评估是“延迟的主要来源”。为什么放弃评估会使不平衡状况恶化?
isty2e评论5小时前

@ justinwong098呃,你说得对。我有些如何读取它作为“AlphaZero和AlphaGo零”,而不是“AlphaGo和AlphaGo零”。
对于这种不平衡,我认为主要的论点是在我上面写的评论中:“如果训练比较慢,网络质量的提升速度不够快,导致自我质量下降;另一方面,游戏的生成速度较慢,网络可能会过度配置,考虑到较少的培训可能更可取,结果是可疑的,很难弄清楚这些细节和平衡。



@billyswong




:+1 :: - 1 ::微笑::田田:: thinking_face ::心脏:

billyswong评论5小时前

我感兴趣的是这一段

移动的选择与根访问次数成正比。 Dirichlet噪声Dir(α)被添加到根节点的先验概率;这个比例与典型位置的合法移动的近似数量成反比,分别为棋子,将棋和棋子的α= {0.3,0.15,0.03}。
所以手工制作的30多招随机规则被删除/推广。



@ justinwong098




:+1 :: - 1 ::微笑::田田:: thinking_face ::心脏:

justinwong098评论了5个小时以前

@gcp

我觉得这个方法很有效。在训练中我们看到了比赛的强度大幅下降。
我的(未受教育的)推测是,在自我玩耍的过程中,机器人学习了一些使得整体较弱的动作/技巧(解释力量的下降),因为使用了太多的技巧。然而,一旦积累了足够的游戏,就可以更好地概括,并知道何时使用某种技术,从而打败当前最好的网络。
另一方面,如果一个新的网络被用于没有评估的自我玩耍,这仍然是可行的,因为在自我游戏期间,网络也将学会使用(先前学习的)移动/技术。
justinwong098评论了5个小时以前

@ isty2e
我还没有理解。如果我们放弃评估,你认为训练会比自我更快吗?而且,如你所见,现在的状况如何?你目前看到它是平衡的,还是比另一个好?



@gcp




:+1 :: - 1 ::微笑::田田:: thinking_face ::心脏:
所有者此用户是leela-zero存储库的所有者。
gcp在5小时前发表评论


所以手工制作的30多招随机规则被删除/推广。
Dirichlet噪音已经在那里,所以它被有效地删除。



@ isty2e




:+1 :: - 1 ::微笑::田田:: thinking_face ::心脏:

isty2e评论5小时前

@ justinwong098这不是一个评价下降的问题,而是一个连续的,同步的培训。目前,明确的测试是瓶颈,但一旦测试分发和培训自动化,那么这将被解决。



@gcp




:+1 :: - 1 ::微笑::田田:: thinking_face ::心脏:
所有者此用户是leela-zero存储库的所有者。
gcp在5小时前发表评论

说实话,新的文件是非常缺乏细节。



@ isty2e




:+1 :: - 1 ::微笑::田田:: thinking_face ::心脏:

isty2e评论5小时前

是的,包括ANN架构。



@bood




:+1 :: - 1 ::微笑::田田:: thinking_face ::心脏:
参与者此用户以前曾承诺过leela-zero存储库。
bood评论5小时前•
编辑

@bood


@ gcp对于目前的数据我们不得不去看看它是如何进行无评估的方法是合理的吗?
编辑:啊,我在这里是无意义的,我们生成的数据已经从评估网络...



@gcp




:+1 :: - 1 ::微笑::田田:: thinking_face ::心脏:
所有者此用户是leela-zero存储库的所有者。
gcp在5小时前发表评论

大概。我需要考虑一下目前的情况。



@ isty2e




:+1 :: - 1 ::微笑::田田:: thinking_face ::心脏:

isty2e评论5小时前

然后,我们将采取多少训练步骤变得模糊...这是通过平衡国际海事组织的速度在AZ有效处理,但没有评估,只是不清楚该怎么做LZ。



@gcp




:+1 :: - 1 ::微笑::田田:: thinking_face ::心脏:
所有者此用户是leela-zero存储库的所有者。
gcp评论5小时前
编辑

@gcp


我不确定你是什么意思。 AZ不能平衡速度。
如果他们使用更多的培训硬件,培训会更快。如果他们使用更多的自我玩家,自我玩耍会更快。没有具体的迹象表明它们是相互平衡的,因为零件是异步运行的。
评估的主要原因是为了防止网络退化的训练。这似乎不是必要的 - 我的意外和你一样大。



@ isty2e




:+1 :: - 1 ::微笑::田田:: thinking_face ::心脏:

isty2e 5个小时前评论
编辑

@ isty2e

@ isty2e


@ gcp我的意思是,他们可以调整参数和分配的硬件数量。你可以想象一个特定的自我游戏的有效训练步骤的数量,这将增加,如果较少的TPU用于自我游戏,减少自我游戏变得更快。而且似乎训练步骤的数量影响了网络的强度。因此,分配给NN训练和自我演奏的计算资源之间的比率可以被认为是超参数。也许播放的数量也是。



@gcp




:+1 :: - 1 ::微笑::田田:: thinking_face ::心脏:
所有者此用户是leela-zero存储库的所有者。
gcp在4小时前发表评论

是的,这是可能的。他们谈论调整超参数,所以如果你问他们“为什么800或者为什么1600”,答案就是“更强”,这是很有可能的。



@ isty2e




:+1 :: - 1 ::微笑::田田:: thinking_face ::心脏:

isty2e评论4小时之前•
编辑

@ isty2e


@gcp所以我的观点是,训练和自我发挥的相对速度可能是一个很重要的东西,根本没有发表。如果有可能的话,LZ的价值显然很难得到优化。无论如何,他们的不评价策略是有效的,因为他们发现的有效培训阶段价值对于这个过程是足够的,但是很难将其转化为LZ。我认为复制AGZ而不是AZ更安全,毕竟AZ是否比AGZ更有效。
gcp在4小时前发表评论

“移动根据访问次数选择。”
哦,所以它不会被删除。他们到处都是。



@marcocalignano




:+1 :: - 1 ::微笑::田田:: thinking_face ::心脏:
参与者此用户以前曾承诺过leela-zero存储库。
marcocalignano评论4小时前

当我们讨论让弱小的网络让自己玩游戏的时候,尝试着没有评估的方法被放弃了。现在一切都变了,因为别人也这样做了?我想我们应该有一个计划。每当有人写一篇关于它的文章时,不要改变我们的策略。
@ gcp如果你的问题是测试开销,我们已经准备好进行更大规模的测试(10-15人)。每小时2654场比赛,我们在〜9分钟内可以得到400场比赛,所以开销很少。



@gcp




:+1 :: - 1 ::微笑::田田:: thinking_face ::心脏:
所有者此用户是leela-zero存储库的所有者。
gcp在4小时前发表评论


现在一切都变了,因为别人也这样做了?我想我们应该有一个计划。每当有人写一篇关于它的文章时,不要改变我们的策略。
我感兴趣的是什么工作。我之前放弃了,因为没有证据表明没有测试是一个好主意。现在有一些证明它可以工作。
但是我发现@ isty2e的说法很有说服力,也就是说,我们在这两个步骤之间没有紧密的锁定,而且对于我们的设置来说并不
明显。
jkiliani评论4小时前

无论评估结果如何,分布式测试设置对于项目来说都是非常有价值的,因为它提供了一个快速而简单的跟踪进度的解决方案。使用它来重新校准整个进程曲线,特别是那些与高度不确定性相关的步骤,这是一个比较简单的事情,因为当一个新的网络显着更好的时候,它们被提前终止了。
我在这里看到的一个潜在的问题是更新,而不是更新的情况下,似乎经常发生大致相同的力量的新网络。这会给培训数据增加更多的变化带来好处,因为同样强度网络的播放风格可能会有很大的不同。



@marcocalignano




:+1 :: - 1 ::微笑::田田:: thinking_face ::心脏:
参与者此用户以前曾承诺过leela-zero存储库。
marcocalignano评论4小时前

但这是我之前讨论的论点,只是因为得分最差并不意味着网络不能从这个网络上的自我玩游戏中学习。但我想我们需要一个证据来相信它;)



@ justinwong098




:+1 :: - 1 ::微笑::田田:: thinking_face ::心脏:

justinwong098评论3小时前•
编辑

@ justinwong098


如果我理解正确,@ isty2e提出的问题是在训练中所采取的步数与生成的自我游戏的数量之间获得正确的比例。我们不能只复制纸张中使用的比例吗? 2100万场比赛700,000步,也许有一些缩放来解释对称不被使用的事实?
例如由于缺乏8对称性,2100万/ 8 = 262.5万。
2,625,000 / 700,000 = 3.75次/步。
不断更新将是不切实际的,所以我们每隔一小时更新网络。
假设每小时有2000场比赛。
(2000次/小时)/(3.75次/次)= 533次/小时。
所以,使用一些粗略的数学,我们可以每小时执行533个步骤,然后更新网络。
gcp评论3小时前

每次迭代大概有3万个游戏,与“25000个游戏拷贝”非常匹配。



@ evanroberts85




:+1 :: - 1 ::微笑::田田:: thinking_face ::心脏:

evanroberts85评论3小时前•
编辑

@ evanroberts85


我一直认为在30次移动中按比例调整的突然切换是奇怪的,缓慢的淡入淡出对我来说似乎是最好的,但新的文件只是建议保持所有的游戏?
我想知道他们是否对MCTS做了任何改变,使其更有效率,让他们把播放次数减少到800次?我看不出如何,也许他们的网络政策部分的培训只是更好的,使搜索更有效率?在任何情况下,他们切换到较低数量的播放可能是由另一个变化引起的,而不是通常更好。如果我们打算盲目地遵循这一点,我们应该小心。
我对这篇论文并不感到惊讶,我认为自学还有更多的方法来优化自己,我说我认为在未来几年内我们应该能够在短短的一场比赛中训练一个职业水平的项目,我坚持这一点。




@ evanroberts85




:+1 :: - 1 ::微笑::田田:: thinking_face ::心脏:

evanroberts85一个小时前评论道

“每场比赛的学习率设定为0.2,在训练过程中分别下降了三次(分别为0.02,0.002和0.0002)。
这个信息是新的,还是和AlphaGo一样?



@gcp




:+1 :: - 1 ::微笑::田田:: thinking_face ::心脏:
所有者此用户是leela-zero存储库的所有者。
gcp在一小时前评论过

这比前一个高得多。 (一直以来,这个主题的人都在叫我们的问题是太高了)。
jkiliani评论19分钟之前
编辑

@jkiliani


我无法在文章中找到关于神经网络的确切配置的任何信息(即,具有x个滤波器和y个块的残差,以及分割的策略/值头),他们只讨论输入和输出特征的表示。 他们写

除非另有说明,否则训练和搜索算法和参数与AlphaGo Zero(29)相同。
这听起来对我来说很模糊。 你们是怎么做的?






欢迎光临 飞扬围棋 (http://bbs.flygo.net/Bbs/) Powered by Discuz! X3.2