Re: [心得] 围棋AI AlphaGo 之我见

楼主: kafai (猪仔包 PigSonBow)   2016-03-14 13:17:21
感谢f大的发文,我也是长知识了
我得再次承认我对NN的理解太肤浅,这是我做得不好的
一方面是因为我是做RFIC的,我没那个能力时间把 NN 和 MCTS 的结合写得精确
(我就只是在一月ASP-DAC做了 turorial 的 chair 听了一整天NN,和看了那份 Nature
写这篇也参考了那个台大资工教授的文章)
另一方面是由于我所写的出发点是在,我希望借助我有的围棋知识和我比较熟知的 MCS
还有一些对于 AyaBot 的经验,去推估 AlphaGo(AG) 的可能弱点
而不是要告诉人 NN 如何在 AG 发挥作用,所以引出你这篇好文啊 XD
只是我不能同意 NN 是 AG 强的关键,
因为 NN 和 MCTS 是一起配合的,只有一方的情况下,过去的经验会告诉你它会弱很多
只有 NN 的话可以想像有可能发生,在第一局第7手下出未见过的布局,
AG 下一手就开始不会下,然后脆败
我知道 NN 是协助 MCTS 更有效率地找出最佳解 (类似 MC 跟 MCMC 的分别)
用围棋的话来说,NN 相当于一个形势判断 + 一个不强的算路 (相当于棋手第一感)
MCTS 就是在 NN 的协助下加强算路的能力,其实跟棋手的思维模式是很接近的
那么我将 NN 的助益完全算进 MCTS 的 sims 数提高,去估算 AG 的算路深度是合理的
第四盘我看完围棋TV张东岳的讲法,
我会说如果 78手 是胜著,那么 35手 虎 就是败著,没有虎而是黏,后面就不会有78了
也就是我上篇估计的三四十手算路
当然由于它有 MCTS 的关系,它在没改 code 的情况下,遇到同样的 78手,
它有可能会平安运转
我的看法是 Google 太小看李世石,如果1000台 server 增到2000台,说不定就够了
有人可能说 distributed 版跟单机版的胜率才77%,
但从十番棋的角度3胜1败已经接近把对方打降级了)
从两个现象看来,你不能抹杀 MCTS 的作用
1. 第二局的那个五路肩冲,那大概不是 NN 提供的优先选择吧,非得 MCTS 扫出来
当然五路肩冲在职业谱也不会没有,
我记忆中武宫有五五肩冲星位的棋吧,那更是对两边来说都是五路肩冲,
最近的棋也好像有吧,不过没有在布局的那么早段下
而是其他很多地方都定型后再肩冲五路的场合下法
但样本数少到单用 NN 是不可能建议你去下这种棋的,
但那个小机率权重让它能在 MCTS 中脱颖而出
2. 昨天败定后,AG 下出很多到无礼程度的业余下法,那也是 MCTS 的“功劳”
它相当于下出很俗的打将式绝对先手,然后期望对方气合脱先,从而得益
这在机率上就说得通了,但在下得很业余这个点上,它就变成丢下 NN 的 AI 了
作者: AmibaGelos (Amiba Gelos)   2016-03-14 13:22:00
推!实际上去估一下cNN读取时间就会发现分析深度超级浅MCTS后段才是处理手筋的重点所在
作者: aaaba (小强)   2016-03-14 14:00:00
MC 跟 MCMC 的异同是什么?
作者: sck921 (The Fate)   2016-03-14 14:05:00
因为这领域真的满专业的吧
作者: mike0227 (我又小看了那复杂的世界)   2016-03-14 14:45:00
Alphago是强在MCTS+"三套"NN know-how也都在那三套的训练跟整合你要说是增加sims数目也不能说错 但是NN有机会给你相当于算到局末的价值 不是纯粹1000->5000这样倍率的进步而已
楼主: kafai (猪仔包 PigSonBow)   2016-03-14 14:57:00
回aaaba,相似点在“提高 MC 的效率”m大,那就相当于职业棋手的形势判断,至于准不准呢...它就是职业的加权平均水准
作者: fallcolor (秋天走了)   2016-03-14 15:01:00
我也觉得MCTS很重要 但既然不熟就不敢评论它的重要性至于NN 纯粹是认为你对NN求的最佳解理解为平均这概念是错的 所以才想介绍ML基础原理Kalman filter的话...恩...它跟NN复杂度差太多..不要这样推论比较好
楼主: kafai (猪仔包 PigSonBow)   2016-03-14 15:08:00
复杂是一回事 比较好是一回事,昨天神就丢颗骰子砸死AG了XD
作者: fool5566 (愚者56)   2016-03-14 15:12:00
比较同意f大的看法 NN应该是MCTS的前提 前提错了就跟只有MCTS一样 我觉得要如何下出让Value network估算错的棋才是问题
楼主: kafai (猪仔包 PigSonBow)   2016-03-14 15:13:00
而加权平均的假设在这几盘棋是没有实验数据的找个布局下得好的棋手下就不同了我没说NN不是前提,但只有NN没MCTS 实力就只有业余低段记者会上说AG是按胜率最大去下的,所以更像NN提供权重让MCTS去找,那找到错的,不一定是NN错,是进入了一个稀有事件,所以我会说神丢个骰子砸死了AG
作者: bbbtri (cycling)   2016-03-14 15:38:00
无礼还是无理?
作者: aaaba (小强)   2016-03-14 15:39:00
看论文就知道分支的分数是综合nn和rollout,nn低分不见得就会被忽略。例如第二局五路肩冲那手
楼主: kafai (猪仔包 PigSonBow)   2016-03-14 15:40:00
已经无理到无礼的地步了对啊,所以我说NN 低分,还是可能在MCTS 出来是条件机率的概念
作者: bbbtri (cycling)   2016-03-14 15:43:00
请问有办法估让AlphaGo跑自我训练 得到一组胜率的数据需要吃多少资源吗 @ @?
楼主: kafai (猪仔包 PigSonBow)   2016-03-14 15:44:00
因为自我训练相当于在平时做穷举,COMPUTER GO DIGEST上说自我训练在起始会有作用,但慢慢就会收歛
作者: birdy590 (Birdy)   2016-03-14 15:46:00
请先看一下 7779
楼主: kafai (猪仔包 PigSonBow)   2016-03-14 15:47:00
因为围棋复杂度是10^170次方,是没机会扫好扫满的bir大,我再说一次,我是在估 AG 的弱点,计算深度
作者: bbbtri (cycling)   2016-03-14 15:54:00
http://zhuanlan.zhihu.com/yuandong/206076847779是转贴这篇之前就有版友给的连结
楼主: kafai (猪仔包 PigSonBow)   2016-03-14 15:56:00
我知道 NN 可以提高MCTS效率,就反过来相当于节省了硬件我不是在描述 AG 的技术 details
作者: birdy590 (Birdy)   2016-03-14 15:59:00
这里的"自我训练"没那么神, 其实只是训练估值网络的过程
作者: bbbtri (cycling)   2016-03-14 15:59:00
自我训练的收歛是...不明显但仍然向上增长 还是会到瓶颈?
作者: birdy590 (Birdy)   2016-03-14 16:00:00
在这里面有很多名堂要注意, 并不是棋谱倒进去那么简单eg "每一盘棋只取一个样本来训练以避免过拟合"
作者: bbbtri (cycling)   2016-03-14 16:08:00
只取一个样本是什么意思呀?只计算一次?
作者: birdy590 (Birdy)   2016-03-14 16:13:00
看原文啊 有解释... 现在的做法好坏其实是未知 XD这一块应该算是还没开拓过的领域, 如果 DeepMind 不知道世界上也没人会知道, 只有花大量时间下去实验才会有结论(高级软件测试工程师 get)
作者: bbbtri (cycling)   2016-03-14 16:27:00
但到底要再投入多资源才能有效证明这个“假设”?
作者: aegis43210 (宇宙)   2016-03-14 16:34:00
大量的硬件资源和足够强的棋手呀,正在实验中
作者: bbbtri (cycling)   2016-03-14 16:36:00
......就当作是职业棋手的天劫吧= =
作者: fallcolor (秋天走了)   2016-03-14 17:01:00
那你就这样认为吧 以后你对ML懂更多就会改变想法了
作者: aaaba (小强)   2016-03-14 17:47:00
所以现在在争什么?
楼主: kafai (猪仔包 PigSonBow)   2016-03-14 17:56:00
f大认为NN可以到达training 样本(职棋)的最强水平甚至更强
作者: fallcolor (秋天走了)   2016-03-14 19:02:00
我没这么说 我是说平均这概念不对 请别脑补 谢谢
作者: ddavid (谎言接线生)   2016-03-14 19:16:00
严格来说NN是“feature”的多层加权平均(线性组合),但不会是“instances”的加权平均所以不会是职业(棋谱)的加权平均水准另外就算论feature,因为这边的“加权”可以为负值也可以为超大的正值,所以“平均”的概念也不是非常好
作者: aaaba (小强)   2016-03-14 19:43:00
楼上大致正确,但局限于非最后一层里的前半段也就是通过activation function以前
作者: ddavid (谎言接线生)   2016-03-14 19:58:00
对,你说的比较精确XD

Links booklink

Contact Us: admin [ a t ] ucptt.com