在象棋和国际象棋中,电脑软件都非常厉害,只有围棋是唯一 “电脑下不过人类” 的项目。而今年1月份有个爆炸性新闻:谷歌 DeepMind 开发的人工智能围棋程序 AlphaGo 以 5:0 的压倒性优势击败了欧洲围棋冠军、专业二段棋手。那么3月份 AlphaGo 会和韩国九段、世界冠军李世石进行对弈。如果此役 AlphaGo 获胜,这意味着人工智能真正里程碑式的胜利。
这也引起了笔者好奇心,在春节期间,跟 Facebook 的田渊栋交流,他做的也是计算机围棋 AI--黑暗森林(熟悉三体的朋友知道怎么回事),今年1月 份他的文章被机器学习顶级会议 ICLR 2016 接受,
他聊天中谈到自从谷歌收购了 DeepMind,投入大量资源去做好人工智能项目,不为别的,就是要向世界证明谷歌智能的强大。发表在顶级期刊《Nature》的论文光看作者就 20 个,明显是下了血本,前两位都是计算机围棋界的大牛,一作 David Silver 是计算机围棋和强化学习的顶级专家,整个博士论文就是做的围棋; 二作 Aja Huang 以前写过多年围棋软件,自己又是 AGA 6D 的水平。
还是不多说废话,下面是 SpinPunch CTO 对 AlphaGo 的工作原理解读,原文见参考资料。
谷歌 DeepMind 宣布他们研发的神经网络围棋 AI,AlphaGo,战胜了人类职业选手。这篇论文由 David Silver 等完成。里面的技术是出于意料的简单却又强大。为了方便不熟悉技术的小白理解,这里是我对系统工作原理的解读。
深度学习
“深度学习” 是指多层的人工神经网络和训练它的方法。一层神经网络会把大量矩阵数字作为输入,通过非线性激活方法取权重,再产生另一个数据集合作为输出。这就像生物神经大脑的工作机理一样,通过合适的矩阵数量,多层组织链接一起,形成神经网络 “大脑” 进行精准复杂的处理,就像人们识别物体标注图片一样。
虽然神经网络在几十年前就有了,直到最近才形势明朗。这是因为他们需要大量的 “训练” 去发现矩阵中的数字价值。对早期研究者来说,想要获得不错效果的最小量训练都远远超过计算能力和能提供的数据的大校但最近几年,一些能获龋量资源的团队重现挖掘神经网络,就是通过 “大数据” 技术来高效训练。
两个大脑
AlphaGo 是通过两个不同神经网络 “大脑” 合作来改进下棋。这些大脑是多层神经网络跟那些 Google 图片搜索引擎识别图片在结构上是相似的。它们从多层启发式二维过滤器开始,去处理围棋棋盘的定位,就像图片分类器网络处理图片一样。经过过滤,13 个完全连接的神经网络层产生对它们看到的局面判断。这些层能够做分类和逻辑推理。
这些网络通过反复训练来检查结果,再去校对调整参数,去让下次执行更好。这个处理器有大量的随机性元素,所以我们是不可能精确知道网络是如何 “思考” 的,但更多的训练后能让它进化到更好。
第一大脑: 落子选择器 (Move Picker)
AlphaGo 的第一个神经网络大脑是 “监督学习的策略网络 (Policy Network)” ,观察棋盘布局企图找到最佳的下一步。事实上,它预测每一个合法下一步的最佳概率,那么最前面猜测的就是那个概率最高的。你可以理解成 “落子选择器”。