AlphaGo是来自谷歌DeepMind公司的神经网络围棋AI,目前已经3:0拿下李世石,剩下两场(如果人类还要应战的话)仅仅关乎荣誉了。那么这个AlphaGo到底是怎么下棋的呢?事实上里面的技术是出于意料的简单却又强大。为了方便不熟悉技术的小白理解,这里是对系统工作原理的解读。
“深度学习”是指多层的人工神经网络和训练它的方法。一层神经网络把大量矩阵数据作为输入,通过非线性激活方法取权重,再产生另一个数据集合作为输出。这就像生物神经大脑的工作机理一样,通过合适的矩阵数量,多层组织链接一起,形成神经网络“大脑”进行精准复杂的处理,就像人们识别物体标注图片一样。
AlphaGo是通过两个不同神经网络“大脑”合作来改进下棋。这些大脑是多层神经网络跟那些Google图片搜索引擎识别图片在结构上是相似的。它们从多层启发式二维过滤器开始,去处理围棋棋盘的定位,就像图片分类器网络处理图片一样。经过过滤,13个完全连接的神经网络层产生对它们看到的局面判断。这些层能够做分类和逻辑推理。
AlphaGo的第一个神经网络大脑是“监督学习的策略网络(Policy Network)”,观察棋盘布局企图找到最佳的下一步。事实上,它预测每一个合法下一步的最佳概率,那么最前面猜测的就是那个概率最高的。你可以理解成“落子选择器”。
AlphaGo系统其实需要两个额外落子选择器“大脑”。一个是“强化学习的策略网络(Policy Network)”,通过百万级别模拟对局来完成。姑且称之为更强的选择器。对比基本的训练,那只是教网络去模仿单一的人类落子,高级训练会与每一个模拟棋局下到底,教网络最可能赢的下一手。
AlphaGo的第二个大脑相对于落子选择器是回答另一个问题。不是去猜测具体下一步,它预测每一个棋手赢棋的可能,在给定棋子位置情况下。这“局面评估器”就是论文中提到的“价值网络(Value Network)”,通过整体局面判断来辅助落子选择器。这个判断仅仅是大概的,但对于阅读速度提高很有帮助。
AlphaGo对于需要很深入阅读才能解决的大势判断上,还是麻烦重重的,比如说大龙生死劫。AlphaGo对一些故意看起来正常的局也会失去判断,天元开盘或者少见的定式,因为很多训练是基于人类的棋局库。我还是很期待看到AlphaGo和李世石9段的对决!我预测是:如果李使用定式,就像跟其他职业棋手的对决,他可能会输,但如果他让AlphaGo陷入到不熟悉情形下,他可能就赢。