2011年以来,以深度学习为代表的机器学习技术突飞猛进,发展速度超出了很多人的想象。下面来看几个有趣的例子。
人工智能的一个经典问题是:如图1-7所示,在一个房间内有一只猴子、一个箱子和一束香蕉。香蕉挂在天花板下方,但猴子的高度不足以碰到它。那么这只猴子怎样才能摘到香蕉呢?传统符号方法会定义若干命题及推理规则,这些命题和规则代表猴子能进行的所有操作(如朝前后左右移动、搬动箱子、爬上箱子等),以及每个操作在特定状态下产生的结果(如搬动箱子后可以爬上箱子)。通过启发式搜索算法,如果可以找到一条从“猴子刚进屋”到“猴子吃到香蕉”的路径,即可找到让猴子吃到香蕉所需要的动作序列。
图1-7 猴子摘香蕉:人工智能经典问题
上述符号方法的缺点很明显:当场景稍微改变一些,原有系统就需要作非常复杂的重新设计。如香蕉晃动、多挂几串、地板上有个坑、猴子左手使不上力、多了几只猴子等,这些复杂性使得传统符号方法很难实现。为此,研究者考虑利用现代机器学习方法来解决这一问题:不是试图建立所有规则,而是让猴子不断尝试各种方法去获得香蕉,每向正确的方向前进一步都给猴子一定鼓励,这样猴子就可以摆脱人为规则的束缚,在尝试中学会在各种场合下摘到香蕉的技能。
一个典型的例子是DeepMind基于深度神经网络和强化学习教会机器打电子游戏 。这一任务和摘香蕉类似,游戏中每作出一个正确动作就给机器一定奖励。经过大量尝试以后,机器从对游戏一无所知成长为游戏高手,甚至超过了绝大多数人类玩家。图1-8是机器人操作游戏杆玩外星入侵者游戏的视频截图。
如果把摘香蕉的猴子看作机器人,处理摘香蕉这个任务的过程就是观察—计划—执行,这显然和人类处理问题的方式有所不同。我们一般会在执行过程中依据当前的行为结果不断进行重新规划,直到任务完成。比如将猴子摘香蕉变成让猴子穿针,针在风的吹动下不断摆动,这个复杂的任务别说猴子,连人都无法在任务初期就形成一个完整的行动计划。因此,我们首先会确定一个近期目标,如走近悬针的位置,再调整目标,将线接近针孔,最后将目标调整为将线送入针孔中。在这一过程中,所有近期目标的达成都会面临很多的不确定性(如风把针吹走),当不确定事件发生时,我们会即时调整策略,确保最终目标能够实现。
图1-8 机器人操作游戏杆玩太空入侵者游戏
注:图片来自DeepMind视频。
近年来,研究者试图让机器具有类似的能力,并取得了突破性进展。首先,研究者发现利用复杂的神经网络可以有效提取环境信息,包括视觉、听觉、触觉、红外、超声等 ;其次,利用强化学习方法(见第5章),机器可以在不断尝试中学会完成复杂任务的技巧,极大地提高了应对复杂场景的能力 ;最后,群体学习方法使得多台机器可以共享学习成果,一台机器学会了,其他机器马上得到同样的知识 。这些技术为人工智能领域带来了深刻的变革。首先,复杂神经网络相当于给机器装上了灵敏的感觉器官,可从原始感知信号中抽取有价值的信息;第二,不必为机器设计复杂的推理系统,只需给它提供足够的经验数据,机器就可以自己学习如何完成任务的技能;第三,当机器可以群体学习的时候,学习速度将大幅提高,远远超过人类的进化速度。这意味着在不远的将来,很多复杂的任务在机器面前可能变得不再困难。
图1-9是谷歌公司发布的一个机器人群体学习系统,其中一群机器人正在努力学习从盘中抓取物体的本领。每个机器人的手臂类似一个钳子,可以放下和收紧。这群机器人开始对如何完成抓取任务一无所知,有的只是一个摄像头和抓住物体后的奖励信号。谷歌的研究者们在两个月的时间里用14台机器收集了80万次随机抓举尝试,并用这些数据训练深度神经网络。经过训练后,这些机器人学会了如何在盘子中找到物体并将它抓起来的技巧,而且一旦某一个机器人学会了一种抓取方法,它立即通过网络通知其他机器人,使得学习速度成倍提高。
图1-9 机器人群体学习
注:若干机器人协同学习,从随机状态开始,经过多次尝试后可通过学习得到抓取物体的能力 。
机器学习另一个有趣的例子是如何理解一幅图片的内容,并用自然语言描述出来。传统图像处理方法需要对图片中的物体进行检测和识别,提取出图片中包含的主要对象。进而,考虑各个对象的属性、不同对象之间的位置关系、对象组合之后形成的整体效果,通过一些确定好的模板即可生成对这些对象的描述。但是,图片内容检测和对象识别本身就是很困难的事,即便完成了这一检测和识别,将这些对象所描述的事实用自然语言表达出来也是件非常困难的事。
2015年,科学家们提出了一种基于神经网络的端对端学习方法 。这一方法的思路是以互联网上大量带标签或评语的图片为训练数据,学习图片和这些标签、评语之间的对应关系。系统一开始对这些对应关系一无所知,但经过大量学习,机器即可找出图片内容和单词之间的内在联系,并将这些单词连贯成自然语句,表现出来的效果就如同“理解”了这幅图片。图1-10给出了两个例子,其中,上面一幅图被机器理解成“一个女人正在公园里扔飞盘”,下面一幅图被机器理解成“一个小女孩抱着只泰迪熊坐在床上”。
图1-10 基于神经网络模型的图片理解
注:左边两幅图是原图;右边两幅图表示带下划线的单词(frisbee和girl)所对应的图片内容 。
2016年人工智能界发生了一件令人瞩目的大事:DeepMind的AlphaGo围棋机器人战胜了韩国棋手李世石九段。这距离它战胜欧洲围棋冠军华裔法籍棋士樊麾二段仅过去半年时间。
机器在人机对弈中战胜人类已经不是新闻,最典型的莫过于IBM的深蓝于1997年战胜当时的世界国际象棋冠军卡斯帕罗夫,成为首个在标准比赛时限内击败国际象棋世界冠军的计算机系统。那次胜利被认为是人工智能领域的重要成就。依靠强大的计算能力和内存资源,深蓝可以搜索估计12步之后的棋局,而一名人类象棋高手最多可估计约10步。深蓝的基本算法是启发式搜索。
比起国际象棋,围棋的搜索空间要大得多,启发式搜索很难奏效,因此对围棋的处理要复杂得多。对于人类棋手,人们往往将处理这种复杂性的能力归结为一种灵性。围棋经典著作《棋经十三篇》中称之为“势”。围棋高手们往往把对“势”的把握看作棋力的象征。通过“势”与“利”的高超运用,顶尖高手们谋划、布局、引诱、潜伏、外攻、内陷、假弃、长取,纵横捭阖、经天纬地。正因为如此,围棋经常被神秘化,与攻伐、理政、怡情、处世等高级智慧联系起来。因此,在AlphaGo之前,很多围棋界人士都断言机器永远不可能战胜人类顶尖棋手。
然而事实却有趣得多:当DeepMind的研究者利用神经网络将棋局映射到一个连续的状态空间后,他们发现在这个空间里判断盘面的价值会非常容易。这一连续空间就如同人类棋手脑海里的感觉空间——看到一个盘面,在这个空间里自然形成了优劣强弱的判断,只不过人类是通过长期训练得到的一种直觉,而机器是纯粹计算出来的。基于这一感觉空间,机器学会了人类的灵性,并借此击败了人类。在后续的改进版本AlphaGo-Zero中,机器甚至抛开了对人类的学习,仅通过自我对弈即学习到了强大的棋力。这说明机器不但可以学习人类的灵性,而且可以创造自己的灵性,从而摆脱人类固有经验的束缚,实现独立的机器智能。
2016年以来,人工智能成为公众关注的热点,特别是AlphaGo以压倒性优势战胜人类以后,很多人(包括一些业界领袖)都在思考一个问题:机器未来会超过人吗?这是个见仁见智的问题。我们认为,机器学习技术虽然在近年取得了长足进步,但距离成熟还有相当长的路要走。另一方面,机器在众多任务上一项一项超过人类并不奇怪,人类的历史就是一部被机器超越的历史,从汽车到飞机,从计算器到GPU。当前以机器学习为代表的人工智能技术飞速发展,人们用大量真实数据、更强大的计算资源去训练更复杂的模型,完成以前无法想象的任务;人们研究迁移学习、协同学习和群体学习等各种知识继承方法,让机器具有类人的适应能力;人们甚至开始研究如何让机器具有自主创造力、目标驱动力、情感和艺术 。如果考虑到快速增长的数据量、强大的分布式计算资源、开放的知识共享模式,可以预期机器将获得越来越强大的能力。基于此,有理由相信未来总会有一天机器会在绝大多数任务上超过人类,至少是绝大部分人类。然而,像所有工具一样,再强大的机器也是为人类服务的,只要保证机器的控制权握在理性人手中,并提前预知风险,机器就不会成为人类的敌人。