关于AlphaGo,我们知道这是迄今为止,人类史上最伟大的人工智能之一,对于围棋他的知名度要超过很多职业棋手。所有版本的AlphaGo对弈人类的战绩为67胜1败(其中4-1战胜李世石,野狐围棋ID:master 60-0 战胜人类众高手,浙江乌镇3-0战胜当时世界第一人柯洁)。
李世石与AlphaGo人机大战
那么为什么人类研究了几千年的围棋却弈不过一个没有自主思想并且是由人类研发出来的机器人。借由这个问题,就让小编带领大家简单领略一下到底AlphaGo为什么这么厉害,他是如何通过自我学习来战胜这一票人类高手的?
第一手,是上帝帮忙来选择的!我们把棋盘上所有落子得分值设为1,训练时AlphaGo随机往棋盘上扔了一个棋子,之后他把对手也想象成和自己一样的二,也往棋盘扔了一个棋子,如此循环。最后双方分出了胜负,我们把胜负设为X,胜利为X=1,失败为X=0。这样AlphaGo在心里下了一盘完整的棋。
我刚才模拟赢了一次,X=1,那么我要提高水平,新分数X=2,除了第一步,后面几步运气也不错,那我把这些随机出的局面所对应落子方法的分数都设为2吧。然后开始做第二次模拟,这次扔骰子的时候AlphaGo对围棋已经不是一无所知了,但也知道的不是太多,所以这次的分值是2,其他落子方法的分数还是1。再次选择落子的概率要比其他方法高一点点。同样,假象的对手也同样更新了自己的分数。
以此类推,AlphaGo下完它想象的几十万盘棋局后,选择他推演过次数最多赢得最多的那个方案落子,而这时,AlphaGo才真正下了一步棋。不仅是第一步,AlphaGo在行棋过程中的每一步,都是如此推演的。
不行,这太慢了,运行量太大。设计并写出AlphaGo的黄士杰黄博士认为需要更高效的扔棋子,例如第一手扔到棋盘A1(围棋棋盘上的一个角)这种地方是不可能赢的,同样官子时把棋下到对面的活棋区域内也是无意义的。在这些无用位置的计算是完全可以规避的。所以,黄博士对AlphaGo进行了改进,并不是随机性的扔棋子,而是更有效率的扔棋子。同样,在对弈的过程中,AlphaGo对自己下的每一步棋都做了概率评价,当走到某一步可以直接判定自己的败局或胜局时,就不继续模拟后续的落子,直接省略的了后续的模拟,优化了算法。
最后应用到的,也是AlphaGo的核心科技,deepmind。这也是当时AlphaGo所有权的公司的英文名,中文译为“深度学习”。
那么到底AlphaGo是如何深度学习的呢?首先让程序AlphaGo-A1和AlphaGo-B1进行1万盘对弈,之后把经验加入到训练集之后进化成AlphaGo-A2和AlphaGo-B2,再让A2和B2对弈1万盘,得出A3和B3,以此类推,直到训练出AX和BX,我们可以从这里看出AlphaGo-A和AlphaGo-B的棋理和棋技是呈几何倍数的增长。这就好像某个二人对抗运动项目一样,从成万上亿的人中的人选万分之一进行训练,再从这万分之一里面再挑万分之一,以此类推,直到找到那个最强的选手。
当然你要知道,AlphaGo在这里训练的每盘棋每一步,根据我们之前所说,他在心里已经模拟了上万种下法,再让两个相同水平的AlphaGo不停的对弈,直到盘出围棋的奥妙,选定那个最强的AlphaGo作为代表,参加战斗。这,就叫深度学习。
AlphaGo自我对弈一天可以训练3000万盘,利用超过170个GPU,粗略估算超过800万核并行计算。小编只是把AlphaGo里面的极其深奥的算法写成最浅显的文字表达出来,当然,这只是很概念化的东西,更多专业性的东西我们不去深究。
领取专属 10元无门槛券
私享最新 技术干货