之前本港台直播们说了MCTS回避了局面估值的问题,但是人类下围棋显然不是这样的,所以真正要下好围棋,如此从模仿人类的角度来说,这个问题是绕不过去的。人类是怎么学习出不同局面的细微区别的呢?当然不能由人来提取特征或者需要人来编写估值函数,否则还是回到之前的老路上了。本港台直播们的机器能自动学习而不需要领域的专家手工编写特征或者规则来实现估值函数呢? 眼下最火热的深度学习也许可以给本港台直播们一条路径(当然可能还有其它路径,但深度学习目前看起来解决feature的自动学习是最promising的方法之一)。 深度学习和CNN简介在机器学习流行之前,都是基于规则的系统,因此做语音的需要了解语音学,做NLP的需要很多语言学知识,做深蓝需要很多国际象棋大师。 而到后来统计方法成为主流之后,领域知识就不再那么重要,但是本港台直播们还是需要一些领域知识或者经验来提取合适的feature,feature的好坏往往决定了机器学习算法的成败。对于NLP来说,feature还相对比较好提取,因为语言本身就是高度的抽象;而对于Speech或者Image来说,本港台直播们人类自己也很难描述本港台直播们是怎么提取feature的。比如本港台直播们识别一只猫,本港台直播们隐隐约约觉得猫有两个眼睛一个鼻子有个长尾巴,而且它们之间有一定的空间约束关系,比如两种眼睛到鼻子的距离可能差不多。但怎么用像素来定义”眼睛“呢?如果仔细想一下就会发现很难。当然本港台直播们有很多特征提取的方法,比如提取边缘轮廓等等。 但是人类学习似乎不需要这么复杂,本港台直播们只要给几张猫的照片给人看,开奖直播就能学习到什么是猫。人似乎能自动”学习“出feature来,你给开奖直播看了几张猫的照片,然后问题猫有什么特征,开奖直播可能会隐隐预约的告诉你猫有什么特征,甚至是猫特有的特征,这些特征豹子或者老虎没有。 深度学习为什么最近这么火,其中一个重要的原因就是不需要(太多)提取feature。 从机器学习的使用者来说,本港台直播们以前做的大部分事情是feature engineering,然后调一些参数,一般是为了防止过拟合。而有了深度学习之后,如果本港台直播们不需要实现一个CNN或者LSTM,那么本港台直播们似乎什么也不用干。 的一个无偏估计。 最后这个Value Network使用了50个GPU训练了一周,使用的mini-batch大小是32。 Policy/Value Network使用的Features其实和前面Tian的差不太多,多了两个征子相关的feature,另外增加了一个常量1和常量0的plane。 最后一个feature 是value network用的,因为判断局面得分时要知道是谁走的,这个很关键。 神经网络结构Policy Network13层从CNN,输入时19*19*48,第一个hidden层把输入用零把输入padding成23*23,然后用k个5*5的filter,stride是1。 2到12层首先用零把输入padding成21*21,然后使用k个5*5的filter,stride依然是1。 最后一层用一个1*1的filter,然后用一个softmax。 比赛用的k=192,文章也做了一些实验对比k=128,256,384的情况。 Value Network14层的CNN,前面12层和Policy Network一样,第13层是一个filter的卷积层,第14层是全连接的Relu激活,然后输出层是全连接的tanh单元。 不同分布式版本的水平比较,使用的是Elo rating标准。 总结从上面的细节来看,神经网络的训练其实用的时间和机器不多,真正非资源的还是在搜索阶段。 最强的AlphaGo使用了64个搜索线程,1920个CPU的集群和280个GPU的机器(其实也就二十多台机器) (责任编辑:本港台直播) |