很多伟大的发明一开始都是好奇心驱使的。
苹果砸到牛顿头上,他开始思考为什么苹果会从树上掉下来,于是得出了万有引力定律。
瓦特对烧水壶冒出的蒸汽十分好奇,最后改良了蒸汽机。因为好奇,成就了「昆虫界的荷马」法布尔。因为好奇,德莱斯发明了自行车。 数千年来,好奇心打开了人类的智慧大门。
在好奇心的驱使下,人们探索世界并从经验中学到了新技能。相比之下,把计算机放到新的环境中,有时就会出现故障。
将「好奇心」编码到算法中
为了能让计算机更好地适应新环境,工程师们尝试将好奇心编码到算法中,希望在好奇心推动下智能体能够去更有效地探索,了解他所处的环境。
就和小孩学习新事物一样,智能体要首先从捡东西,操纵使用物体,投掷东西学起,实现了这些基本操作,学习其他事物的能力也会随之加快。
工程师已发现了许多方法,能够将好奇探索机制编码到机器学习算法中。一直以来,研究人员也通过计算机来搜索新的算法。最近,麻省理工学院的一个研究小组在思考计算机在算法设计方面是否比人有优势。
近年来,深度神经网络的设计(通过调整参数来搜索解决方案的算法)已通过Google的AutoML和Python中的auto-sklearn等软件实现了自动化。这使那些非专业人士也能轻易地开发AI应用程序。
但是,尽管深度神经网络擅长做特定任务,但它们在新的环境中适用性不高。相比之下,用高级编程语言编出的算法能在不同任务和环境中迁移知识。
利用AI自动设计算法
研究的合著者,麻省理工学院电气工程与计算机科学系,以及计算机科学与人工智能实验室(CSAIL)的研究生Ferran Alet说:「人为设计的算法非常普通。我们受到启发,使用AI来发现具有好奇心且能适应各种不同环境的算法。」
同时,作者表示,「 我们从人和其他动物的好奇行为中汲取了灵感。假设好奇心是进化过程中探索发现的一种机制,该机制促使智能体在生命早期进行有意义的探索。这项探索使它能够在其一生学习中,不断获取经验赢得高额回报。我们将产生好奇行为的问题作为一种元学习。」
研究人员创建了一种「元学习」算法,该算法生成了52,000个探索算法。他们发现最上面的两个是全新的算法,从人为角度看,似乎太明显,违反直觉了。这两种算法都产生了探索行为,从根本上改善了一系列模拟任务中的学习过程,从二维网格图像导航到机器人蚂蚁行走。由于元学习过程会输出高级计算机代码,因此可以分解这两种算法,以了解其内部决策过程。
该论文的高级作者是麻省理工学院计算机科学和电气工程学教授Lesile Kaelbling和Tomas Lozano-Perez。这项工作将在2020ICLR大会上进行具体介绍。
该论文获得了许多没有参与其中的研究人员的称赞。
Google的首席科学家Quoc Le表示,「使用程序检索来发现更好的内在奖励机制是非常有创意的,它帮助开拓了计算机辅助深度学习模型的设计。我非常喜欢这个idea,在于它的程序是可以解读的」
研究人员将自动化的算法设计过程,比作是用有限的单词来写句子的过程。他们首先选择了一组基本构建模块来定义其探索算法。在研究了其他好奇心算法以获得灵感之后,他们挑选了30多种高级操作,包括基本程序和深度学习模型,来引导智能体做一些事情,比如记住以前的输入,比较当前和过去的输入,并使用学习方法来改变自己的模块。然后,计算机一次最多可以组合7种不同操作,生成描述52,000种算法的计算图。
即使用一台快速的计算机,对所有的算法进行测试都要花费数十年的时间。因此,研究人员首先排除了那些从代码结构就预测出其性能较差的算法,来缩小范围。
然后,他们在一项基本的网格坐标导航任务上测试了那些最看好的算法,网格导航任务需要大量的探索行为,但计算量最少。如果某项算法表现良好,那么它的表现就成为新的基准,从而淘汰更多候选人。
研究人员用四台计算机搜索了10多个小时,以找到最佳算法。
结果发现,超过99%都是垃圾算法,但大约有一百种是优胜的高性能算法。
值得注意的是,前16名优胜的算法既新颖又好用,在其他虚拟任务(从登上月球车,到举起机械臂,再到移动类似蚂蚁的机器人)的性能上,都比人类设计的算法要好,至少实力相当。
所有16种算法都产生了两个基本的探索功能。
智能体会在两种情况下受到奖励:
第一种,智能体会因为访问新的地方而获得奖励,因为在那里他们有更大的机会采取新的行动。
第二种,智能体也会因为访问新地方而获得奖励,但以一种更细微的方式: 其中一个神经网络预测未来的状态,而另一个回忆过去,然后试图通过在未来回忆过去来预测现在。如果这个预测结果是错误的,那么它会奖励自己,因为这是一个信号,表明它发现了以前不知道的东西。第二种算法是如此违反直觉,以至于研究人员花了很长时间才弄明白。
「我们的偏见常常使我们无法尝试非常创新的想法,」Alet说。「但是计算机不会。他们会多多尝试,看看怎么样,有时反而会得到意想不到的出色结果。」
越来越多的研究人员转向机器学习,来设计更好的机器学习算法,这其中就包括AutoML。Google的Le和他的同事们最近推出了一款新的算法发现工具,名为Auto-ML Zero。 (它的名字是谷歌的 AutoML 软件和谷歌 DeepMind 的 Alpha Zero的结合,前者为给定的应用程序定制深层网络架构,后者可以通过自己玩数百万个游戏,来学习玩不同的棋盘游戏。)
他们的方法是在大量的算法当中搜索原始运算更简单的算法。但是,他们的目标不是发现探索策略,而是发现能够对图像进行分类的算法。两项研究都表明,人类有能力使用机器学习方法来创建新颖的,高性能的机器学习算法。
「生成的算法可以被人类读取和解读,但是要真正理解这些代码,我们必须对每个变量和操作进行推理,以及它们如何随着时间演变,」研究合著者,麻省理工学院研究生Martin Schneider说。「设计算法和工作流程,利用计算机来评估大量算法,是一个有趣的挑战。同时我们也要来解释和改进这些想法,」
参考链接:
https://www.csail.mit.edu/news/automating-search-entirely-new-curiosity-algorithms