阿尔法go开发语言 阿尔法什么语言( 六 )


当然 , 只用走棋网络问题也很多,就我们在DarkForest上看到的来说,会不顾大小无谓争劫,会无谓脱先,不顾局部死活,对杀出错 , 等等 。
有点像高手不经认真思考的随手棋 。
因为走棋网络没有价值判断功能,只是凭“直觉”在下棋,只有在加了搜索之后,电脑才有价值判断的能力 。
2、快速走子那有了走棋网络 , 为什么还要做快速走子呢?有两个原因 , 首先走棋网络的运行速度是比较慢的,AlphaGo说是3毫秒,我们这里也差不多 , 而快速走子能做到几微秒级别,差了1000倍 。
所以在走棋网络没有返回的时候让CPU不闲着先搜索起来是很重要的 , 等到网络返回更好的着法后,再更新对应的着法信息 。
其次 , 快速走子可以用来评估盘面 。
由于天文数字般的可能局面数,围棋的搜索是毫无希望走到底的 , 搜索到一定程度就要对现有局面做个估分 。
在没有估值网络的时候 , 不像国象可以通过算棋子的分数来对盘面做比较精确的估值,围棋盘面的估计得要通过模拟走子来进行,从当前盘面一路走到底,不考虑岔路地算出胜负,然后把胜负值作为当前盘面价值的一个估计 。
这里有个需要权衡的地方:在同等时间下,模拟走子的质量高,单次估值精度高但走子速度慢;模拟走子速度快乃至使用随机走子,虽然单次估值精度低,但可以多模拟几次算平均值,效果未必不好 。
所以说 , 如果有一个质量高又速度快的走子策略,那对于棋力的提高是非常有帮助的 。
为了达到这个目标,神经网络的模型就显得太慢,还是要用传统的局部特征匹配(local pattern matching)加线性回归(logistic regression)的方法,这办法虽然不新但非常好使 , 几乎所有的广告推荐,竞价排名 , 新闻排序,都是用的它 。
与更为传统的基于规则的方案相比 , 它在吸纳了众多高手对局之后就具备了用梯度下降法自动调参的能力,所以性能提高起来会更快更省心 。
AlphaGo用这个办法达到了2微秒的走子速度和24.2%的走子准确率 。
24.2%的意思是说它的最好预测和围棋高手的下子有0.242的概率是重合的,相比之下,走棋网络在GPU上用2毫秒能达到57%的准确率 。
这里,我们就看到了走子速度和精度的权衡 。
和训练深度学习模型不同,快速走子用到了局部特征匹配 , 自然需要一些围棋的领域知识来选择局部特征 。
对此AlphaGo只提供了局部特征的数目(见Extended Table 4),而没有说明特征的具体细节 。
我最近也实验了他们的办法,达到了25.1%的准确率和4-5微秒的走子速度,然而全系统整合下来并没有复现他们的水平 。
我感觉上24.2%并不能完全概括他们快速走子的棋力,因为只要走错关键的一步,局面判断就完全错误了;而图2(b)更能体现他们快速走子对盘面形势估计的精确度,要能达到他们图2(b)这样的水准,比简单地匹配24.2%要做更多的工作,而他们并未在文章中强调这一点 。
在AlphaGo有了快速走子之后 , 不需要走棋网络和估值网络,不借助任何深度学习和GPU的帮助,不使用增强学习,在单机上就已经达到了3d的水平(见Extended Table 7倒数第二行),这是相当厉害的了 。
任何使用传统方法在单机上达...
转载请注明出处作文大全网 ? alphago是什么语言开发的
阿尔法狗人工智能机器人用什么软件开发的你是想问那种计算机语言吧?
其实你学会哪种都可以进行人工智能的开发工作,只不过得花很长时间去学计算机语言 。。

推荐阅读