给人类支三招对付AlphaGo

来源:互联网 发布:随机化算法 编辑:程序博客网 时间:2024/05/17 23:10

以下是根据鄙人对阿法狗的工作原理理解,想出的可以对付AlphaGo的三招,从可行性最低到最高排序。

第一招:制造征子,并引征

首先,我知道AlphaGo是有专门算法来处理征子的,但我还是认为在征子方面,人类可能有一些技巧可以利用。因为征子在围棋里是一种很特殊的形状。通常一个字落在某点,它的作用力是随着距离而递减的。但是一旦出现征子,那么一个棋盘上距离离征子很远的一个子就可以对征子的结果产生决定性影响。

而AlphaGo的两个大脑之一的策略网络是使用卷积神经网络技术来学习的,这种技术通常用在图像识别领域,所以AlphaGo在局部棋形的感觉特别好,它能飞快判断局部某个棋形的要点。但是“引征”这一手的重要性是需要与棋盘很远远处的形状结合判断的,所以它的策略网络很可能忽略到这一手,或者说对引征的子价值判断较低。

另一方面,AlphaGo的第二个大脑,价值网络又是使用蒙特卡洛算法工作的,我不太清楚AlphaGo如何判断征子的发生。不过可以考虑这种情况,假设一个局部定式会导致征子发生,并且征子结果决定了这个局部的好坏,那么蒙特卡洛算法算法在这个局部定式刚开始时是很难判断清楚这个定式的结果的,因为你很难随机性的正好走出征子,又能在征子出现后,随机的产生正确的征子吃子步骤。这就可能导致价值网络漏算某些带征子的结果。

所以,人可以采取的一个办法就是制造征子,然后来一部美妙的“引征”。我看到有人跟我持类似观点:http://forum.sports.sina.com.cn/thread-2301040-1-1.html

第二招 模仿棋

跟电脑下,模仿棋是个好东西啊。首先,我时间节省,让你AlphaGo去算吧,你算的结果我来用:)其次,因为盘面对称,所以价值网络判断的结果,每次都会有几手显得价值都很接近,所以AlphaGo会难以取舍,迫使价值网络运行更多计算。

另外,人类棋手知道,破解模仿棋的关键在于谁先下在天元附近,并且要使这手棋成为好棋。下在天元附近,一般就会迫使模仿者停止模仿了。对AlphaGo来说,它也许打过一些模仿棋的棋谱,但是很难说AlphaGo知道自己打了一份模仿棋的棋谱,它只是机械的学习每一步,并且使自己的策略网络能够调整到“局部这个形状,接下来就可以下那里”的这种状态。所以,AlphaGo不会知道自己需要设法把局面引向中央,迫使对手停止模仿。

模仿棋是一种简单易行的方法,值得一试。

第三招 骗招

所谓骗招,就是每一步都走的符合棋理,堂堂正正,最后却掉入对手布置的陷阱中。职业棋手对局中基本没有骗招,因为知道骗不了,所以AlphaGo就很难从打谱中学习对付骗招的方法。而骗招每一步棋形又是堂堂正正的,所以,AlphaGo的策略网络肯定能将被骗的下法列入优先的可能下法。这之后就要看AlphaGo的价值网络能否正确的排除被骗的下法了。这就要看蒙特卡洛算法了,但这是一种看运气的算法。

从AlohaGo与李世石第四局的棋谱中,AlphaGo明显漏算了李世石第78手挖,也可以说李世石的从AlphaGo下了第71手时,就看出挖这个好手,就开始着手酝酿,到78 下出挖,一下子把AlphaGo打蒙了。这也看出,AlphaGo在对付骗招上可能有弱点。

这第三招我认为是对付AlphaGo最有效的一招,但也是最难实施的,因为勉强去走骗招肯定是受损的,只有一步步巧妙的引诱对手走入陷阱才行,有时这是可遇不可求的局面。

总结

对付AlphaGo其实就两个要点,分别攻击它的两个大脑:

  • 制造一种牵涉全局的局面,也就是下一步需要从全局形状来判断。这就是攻击策略网络。
  • 制造一种需要非常深度且精确计算的局部局面。比如征子和骗招,也就是每一步必须在特定位置下才能得到局面正确的结果,这就是攻击价值网络。

希望下一位跟AlphaGo下棋的人类棋手能看到本文,期待下一次人机大战!

0 0
原创粉丝点击