AlphaGo出bug了吗?
编者按:在昨日的人机围棋大战中,AlphaGo的表现可以说让所有人都大跌眼镜。其在优势的情况下,连出昏招,将大好局面拱手相让。问题来了,AlphaGo是出bug了吗?本文作者戴文渊,第四范式创始人兼CEO。文章源自第四范式公众号(ID:nextparadigm),36氪经授权转载。
如果说前三盘的结果令各路专家们大跌眼镜的话,第四盘可能是让所有人都大跌眼镜了。AlphaGo在优势的情况下,连出昏招,将大好局面拱手相让。
很多人问,是不是AlphaGo出bug了?事实上,深度学习是一个容错性非常好的系统,即便出了bug,对结果的影响也不大。那么,问题到底在哪?
DeepMind团队说,这是一个系统问题。我们来看看这个系统到底哪有问题?
一、AlphaGo如何养成
DeepMind团队曾对外介绍过,AlphaGo的养成分以下四个步骤:
整理过去人类对弈的80多万盘棋局;
拿1的棋谱,训练一只狗狗,能够预测人类下一步会下在哪里;
拿2得到的狗狗,每天自己和自己下100万盘棋;
拿1和3的棋谱,训练一只狗狗,这就是AlphaGo。
可以看出来,AlphaGo是基于1亿+盘机器棋局和80万人类棋局训练出来的狗狗。
二、问题出在哪?
今天的问题,其实出在了“教学方法”上。
我们看到,训练AlphaGo所用的棋谱,只有80万是人类棋局。总数上亿的棋局是机器对弈。它下的每一步,都是将局面导向历史上(80万盘人类棋局和1亿自己对弈的棋局)胜率最大的局面(或相似局面)。
问题恰恰出在这里,80万和1亿,相差100多倍,那么AlphaGo选择的所谓胜率最大,一定是“赢自己概率”最大,而非“赢人类”概率最大。
这样的标准在顺风棋下尚且不容易出问题,一旦遇到逆风棋,它的选择标准就变成了,选择对手犯错概率最大的棋。而这个对手恰恰是它自己。
这就是为什么今天AlphaGo在逆境中下出一些匪夷所思的棋——作为“业余中国象棋棋手”的我都看出来的臭棋。
其实,AlphaGo并不认为它们是臭棋。他认为,下这些棋,对手犯错的概率最大。唯一的问题是,它基于的统计主要是和自己对弈的棋局(超过1亿盘)。所以,它在下自己犯错概率最大的棋,而非人类犯错概率最大的棋(只有80万盘人类棋,在统计数据里被淹没了)。
更进一步,它非但没有戳中李世石的要害,还向人类暴露了自己的弱点——AlphaGo在平时训练中就是这样打自己的——人类如果聪明的话,应该研究一下AlphaGo的怪招,AlphaGo的每一次出招其实都在打向AlphaGo自己……
三、Bug能修复吗?
AlphaGo今天所犯的错误,究其原因,是教学方法的问题。我们基于机器对弈的棋局训练出来的狗狗,要被拉去与人对打,即便这只狗狗已经足够强大,其实它是别扭的。
解决这个问题,最重要的是要纠正80万对1亿的样本选择偏差(sample selection bias)。在经济学领域,sample selection bias是2000年诺贝尔奖获奖成就。在人工智能领域,它指向了一个可能是AI的下一波浪潮——迁移学习(Transfer Learning)。迁移学习能够让AI拥有从一个领域学习知识,应用到另一个领域的能力。例如,人类学习数学,对学习物理是有帮助的。这一能力,是目前的深度学习所不具备的。
在迁移学习的框架下,我们可以基于机器对弈的棋局学习,从中去伪存真,把学到的知识应用到和人类的对弈中去。
无论如何,深度学习对我们的冲击已经如此之大了。那么,迁移学习呢?