摘要:

  作为机器学习的一大关键领域,强化学习侧重如何基于环境而行动,其灵感来源于心理学中的行为主义理论,即有机体如何在环境给予的奖励或惩罚的刺激下,逐步形成对刺激的预期,产生能获得最大利益的习惯性行为。

  但是,这种算法思路有着明显的短板:许多成功案例都要通过精心设计、信息量大的奖励机制才能实现,当遇到很少给予反馈的复杂环境时,强化学习算法就很容易碰壁。因此,过往的 AI 难以解决探索困难(hard-exploration)的问题,这类问题通常伴随着奖励稀疏(sparse)且会有欺骗性(deceptive)的奖励存在。

  今天,一项发表在《自然》(Nature)杂志的研究提出了一类全新的增强学习算法,该算法在雅达利(Atari 2600)经典游戏中的得分超过了人类顶级玩家和以往的 AI 系统,在《蒙特祖马的复仇》(Montezuma’s Revenge)和《陷阱》(Pitfall!)等一系列探索类游戏中达到了目前最先进的水平。

  论文的主要作者来分别来自 OpenAI 和 Uber AI Labs,他们将这类算法统称为 Go-Explore,该类算法改善了对复杂环境的探索方式,或是 AI 向真正智能学习体进化迈出的重要一步。

  有两个主要问题阻碍了以前算法的探索能力。

  第一是 “分离”(detachment),算法过早地停止返回状态空间的某些区域,尽管有证据表明这些区域仍是有希望的。当有多个区域需要探索时,分离尤其可能发生,因为智能体可能会部分探索一个区域,切换到第二个区域,并且忘记如何访问第一个区域。

  第二个是 “脱轨”(derailment),算法的探索机制阻止智能体返回到以前访问过的状态,直接阻止探索或迫使将探索机制最小化,从而不会发生有效的探索。

  举个例子,当智能体处在两个迷宫入口之间,它先从左边的迷宫开始随机搜索,由于 IM 算法要求智能体随机尝试新行为以找到更多的内在奖励的机制,在搜索完左边迷宫的 50% 时,智能体可能会在任意时刻开始对右边的迷宫进行搜索。

  但是,深度学习自身有着 “灾难性遗忘”(Catastrophic Forgetting)的问题,这指的是利用神经网络学习一个新任务的时候,需要更新网络中的参数,但是上一个任务提取出来的知识也是储存在这些参数上的,于是每当学习新的任务时,智能体就会把学习旧任务得到的知识给遗忘掉,而不能像人类那样在学习中可以利用先前学习过的经验和知识,快速地进行相似技能的学习。

  所以,在完成右边的搜索后,智能体并不记得在左边迷宫中探索的事情,更糟糕的情况是,左边迷宫前期的一部分区域已经被探索过了,因而几乎没有可获得的内在奖励去刺激智能体深入探索。研究人员将这种状况总结为:算法从提供内在动机的状态范围分离开了。当智能体认为已经访问过这些区域了,深入探索行为可能就会停滞,因而错过那些仍未探索到的大片区域。

  为了避免分离,Go-Explore 建立了一个智能体在环境中访问过的不同状态的 “档案”,从而确保状态不会被遗忘。


  《人工智能大势》点评:

  终于,有人开窍了,发现了人工智能真正的问题所在……

  先来简单解释下这个研究成果究竟做了什么,记得30多年前我刚开始接触电脑的时候,就看到过一个机器人走迷宫的程序,当时觉得很神奇,但其实那个程序很简单,其原理就是把所有的路径都走一遍,直到找出正确路径,计算机专业的术语就叫“遍历”。

  遍历这种方法虽然有效,但在很多情况下却是不适用的,比如当需要搜索的空间非常大时,就好像探索围棋下一步的可能走法,就不可能采用这种方法,因为可能的走法是天文数字。而走法相对较少的象棋就可以采用遍历的方法,比如战胜国际象棋冠军卡斯帕罗夫的IBM深蓝计算机就是采用的这一方法。

  当不能使用遍历的时候,就需要在对一些区域进行了一定探索后,根据一定的原则或随机放弃某些区域的完全探索,转而去探索其它区域,专业的术语叫“剪枝”算法,即将搜索树的某些分枝给剪掉,不再对其进行搜索。就像我们人找东西一样,打开一个抽屉大致翻一翻,感觉不会在这里,于是关上这个抽屉,又去另一个抽屉中找……。这的确也是很不错的方法,它帮助AlphaGo在围棋上打败了人类。

  但是,你也一定有过这种经历,当把所有可能的地方都找过后还是没有找到,你很可能会回过头去,把之前没有仔细找过的地方再找一遍,有时甚至还会找上三、四遍。这篇论文的研究就是模仿我们人类的这种行为,而以前的算法都不能做到这一点,一个分枝剪掉了,就不会再去搜索,如文中上图所示:

  图1:需要搜索的左、右两个区域,从中间开始搜索,绿色表示未搜索的区域;

  图2:先搜索左边区域,紫色为正在搜索的区域;

  图3:左边搜索到一半时,放弃后边的区域,掉头去搜索右边,白色为搜索过的区域;

  图4:右边搜索后完,回过来准备再搜索左边,发现左边已经搜索过了,于是停止搜索,导致左边没有搜索完全。

  之所以被世界顶级科学期刊《Nature》作为重磅,就在于这一研究成果“或是 AI 向真正智能学习体进化迈出的重要一步”。我们一直强调现在的人工智能还不够智能的最主要原因,就在于它们没有认知能力,由于深度学习灾难性遗忘的本质缺陷,导致其无法将学习到的东西作为知识存储起来,以便以后使用。而这一研究成果就是让强化学习,也是深度学习的一种,用文档把学习到的东西存储起来,让我们似乎看到了解决机器认知能力的希望,也就等于看到了达到真正人类智能的希望。

  可能也有懂编写程序的朋友说,不就是把一个区域还没有搜索完这件事用文档记录下来,以便以后还可以再搜索吗?这好像没有什么了不起呀,《Nature》是不是有点小题大做呀?我很同意这种说法,确实有点小题大做。其原因就在于深度学习的灾难性遗忘,导致其要做到这么简单的事情是很难的。这就好像你用一把钝刀切菜很难切得好,于是你刻苦练习,费了九牛二虎之力,你终于能用钝刀把菜切好了,而其他人都做不到,于是大家纷纷称赞你了不起。

  但其实,你完全可以换一把刀,一把锋利的刀,不用费劲去做那无用功。具体到这个研究,就是想把“重新搜索未搜完区域”这一能力融入到强化学习的奖励机制中去,实在有些勉为其难。更重要的是,如果要做更困难的事,这把钝刀还是没有办法做好。这个研究目前看来可以做到此类简单的事情,在一些简单游戏上取得不错的成绩,也可以说是迈出了重要的一步,启示我们需要将学习获得的知识存储记忆,但是看文章所述,要真正让机器具有认知能力,可以将五花八门、完全不同的知识记忆住,且能灵活应用,实现类人的通用人工智能,在深度学习的局限下恐怕仍然是一个不可能完成的任务。

  是的,人工智能到了需要换掉深度学习这把钝刀的时候了,业界需要去找一把更锋利的刀,从而能举重若轻地真正做到知识存储和认知智能。