柯洁 alphago
近日,AlphaGo继战胜李世石九段后,又与柯洁展开了一场大战。结局不难预料,AlphaGo必然取胜。写这篇文章的时候,AlphaGo已经两局都战胜了柯洁。第三局AlphaGo取胜也几乎是必然的。那么,为什么AlphaGo这么厉害,它是如何连连战胜人类围棋高手的?
今天,我给大家简单介绍一下AlphaGo如何诞生、训练,又如何成为围棋界的上帝的。技术问题另文叙述,今天先科普一下。
如果要训练一个人工智能的机器人,让它成为围棋界的上帝,AlphaGo经过了下面的步骤:
第一步,首先要有一个机器学习的算法。注意,是学习的算法,而不是下棋的算法。开发一个下棋的算法去和棋手下棋是传统的计算机程序,而不是人工智能,我们小时候常玩的电脑上的下棋软件就是这种传统的模式。在人工智能时代,工程师设计的是学习的程序,然后由机器自己进行学习,学习的结果才是与棋手对战的系统。这个过程就特别像我们人类一样,我们先进行围棋的学习,学会之后再去和其他人比赛。
2012年,Google以5亿美元收购了只有100人左右的小公司DeepMind。这家公司的核心技术就是研究通用的机器学习算法,而AlphaGo就是DeepMind团队为了证明他们的机器学习算法有效性而开发的一款智能程序。
第二步,就是开始进行深度学习。Google为了对AlphaGo进行训练,动用了上万台服务器,学习了人类高手对弈的上千万盘棋局。在学习过程中,它会自动观察棋局中的每个局面,然后通过深度学习算法(AlphaGo使用的是一种深度神经网络算法,算法的具体细节另文阐述),不断地对自己进行训练。经过上千万次训练后,它就建立了人类高手的“棋感”,对于棋面的认识已经远超人类高手了。
2015 年 11 月 9 日,Google公司开源了它的第二代深度学习系统TensorFlow,也就是AlphaGo的基础程序。今天,我们都可以自己搭建或者使用云服务来使用这个深度学习的程序。
第三步,就是真正的比赛。在实际下棋时,AlphaGo大约使用的计算机不过几十台,它会通过视觉系统识别当前的棋局,所有的布点在它看来无非是图像的像素罢了。识别之后,它会根据自己学习的成果判断出一些高质量的候选点供走子,这也是人工智能时代程序和以前程序的根本不同。例如,国际象棋的搜索空间仅仅为2*10^50,因此,机器可以无限接近找到最优解。而围棋的搜索空间为2*10^171,目前的运算能力无法完成穷尽的搜索,这个时候,机器会像人类一样,根据经验和感觉选择某些点,然后再计算、比较那个点更好。
选择好候选落子后,机器会使用一种蒙特卡洛搜索算法进行计算,看哪个点胜出的概率更高。机器会根据每个点的情况往后推演,在瞬间完成数百万次黑白棋的交替走子,然后选择一个胜率更高的点进行走子。
因此,在下棋时,AlphaGo下棋没有连贯的思路,只有输赢,没有赢多少一说。
这里面涉及到很多技术细节,包括深度学习、包括搜索算法等等,改天我们再深入研讨。