乍看之下,一个没有设定目标的计算机算法,似乎是一个自相矛盾的存在。
算法这个词,会直接让人联想到一些有既定方向的机械化的东西。并且算法通常被视为解决某些特定问题的良方。
人们已经设计出各种不同的目标驱动型算法,机械性的完成,诸如求解微分方程,对大型列表进行排序和数据加密等任务。但本质上,算法是一种宽泛的概念。作为一种明确的描述,一个过程的方式,算法是一个不存在任何模糊性的解决问题的方法。从而确保计算机可以精确地遵循其指令。
因此,虽然大多数算法都有目标,但他们也可以被用于描述没有目标的过程。比如寻找新奇的东西,由于算法被具体的编写成可被分析和研究的计算机程序。它就可以帮助我们检测科学假设是否成立。
编写未设定具体目标的算法有一大优点,即我们可以说到做到,将资金花在刀刃上。如果仅靠寻找新奇的事物就能有效地帮助人们发现有用的东西,那我们我们就应该真正的将这个过程以算法的形式呈现出来。
在算法设计出来之后,他就可以被人测试,这种通过构建算法来来测试理论的概念在人工智能领域与心理学领域不同,已被普遍接受。
事实上在人工智能研究中,关于任何事物的解释只有被构建成一个计算机程序。并在计算机上运行和测试之后才会得到普遍认可。
这样一来,人工智能领域成功的门槛就变得相当苛刻。因为人工智能的研究人员不能只是简单的提供文字解释,而是必须真正建立起一项理论的原型。并通过测试证明它是有效的。因此在这种情况下,我们可以借用人工智能领域的这一准则,并将其应用于非目标发现的理论和论证让我们看看。当我们给计算机编程给他只搜索新奇的东西,而没有设定特定的目标会发生什么?
我们编写的新算法,被称为新奇性搜索麒麟盖来源于用户在图片孵化器网站上的操作。我们发现这个网站用户获得的最佳发展成果,往往并不是他们领先设定的目标。这些成功玩出新花样的用户,在选择图片时采用的标准并非某个特定目标。而是凭借本人去寻找有趣且新奇的东西。
这个发现就激发了笔者尝试通过编程让电脑来干同样的事情的灵感,而将一个想法编写成算法的一个好处是它能破除。
我们去搞清楚其真正的含义,换句话说,当机器在运行测试时,我们的意图就不可能隐藏在某些含糊不清的文字表述背后,因此要编制一个算法,我们需要首先解决计算机究竟应该如何搜索新的东西。
测试这样一个程序的第一步,确定什么叫领域。换句话说,计算机只会在一个特定的类别中搜索新奇的东西。如新奇的艺术,兴起的音乐或新奇的计算,机器人行为等等。
之所以要明确领域,是因为每个领域可能需要以不同的方式进行编程,但更重要的是领域领域决定的算法即将探索的空间和范围。
为了让大家更容易理解这个概念,我们以行为空间为例。因为大多数关于新奇事物搜索的计算机实验都集中在这个空间。通常在新奇性搜索中行为一词指的是,真实或者模拟的机器人做出的一系列举动,更简单的说机器人的行为。是指他在特定情况下做出的举动。
回顾一下我们这本书第一章中用来使所有可能性的图像具象化的看不到边的大房间。我们可以想象一个类似的包含了无数机器人行为的大厅,其中一个角落里的机器人可能阻挠不停的旋转,什么都不做,而另一个角度的机器人可能正在地板上临摹蒙娜丽莎的轮廓,我们可以轻而易举的发现,这个大厅里的一些机器人行为与其他的行为有很大不同。
例如,一个四处撞墙的机器人和一个在走廊上根据导航前行,然后走出走进一扇门的机器人有很大不同。一旦我们有办法了解到是什么,区分了不同的行为,就有可能会问什么是新奇的行为。
试图发现新奇事物的行为可以帮助说明,即使没有特定的目标,寻找新奇事物的行为也会产生有趣的结果。
想象一下这个场景,一个机器人被放在走廊的一端,另一端的门是开着的。这类实验在机器学习领域很常见。即使图上让计算机具备着实验中学习的能力,在实验中机器人会通过越来越熟练的探索走廊来学习如何接近走廊另一端的门口。
例如在一系列实验中,机器人总是被放回其起始位置,它可能会具备更强的穿越整个走廊的能力,并越来越接近敞开的门,这就是目标。
在这种目标驱动的方法中,无论哪种行为会使机器人最接近敞开的大门,它都会成为尝试新行为的踏脚石。这种将进步视为一系列逐渐接近目标的渐进式改进的观点,也反映了我们在文化中追求成就的常见方式。
但我们也可以用一种基于新奇性探索的截然不同的方式来处理这个任务。
例如,机器人可以无需尝试走进走廊的另一端,只是纯粹的尝试做一些与以往不同的事情,机器人可能会先撞上一堵墙。因为他一开始并不具备探索和穿越走廊的经验。
然而与追求特定目标即抵达敞开的大门时不同,在新奇的探索中,机器人撞墙的行为被认为是好事,因为我们以前从未见过他这样做,换句话说,撞墙的行为是新奇的,而这正是我们探索新奇时想要看到的东西,但是如果撞墙被视为好事,那么机器人接下来的可能会做什么呢?
答案是,他可能会撞上另一堵墙,但只要第二次撞墙与第一次撞墙不同,也会被认为是好事,即使第二次撞墙比第一次离目的地更远,这仍然被认为是新急性探索的一个好的痕迹迹象。
因此这一次与以往不同,与你所如你所见这种欣赏新奇情况而不加评判的态度就已经是辛急性探索有别于目标驱动型探索了。
测试中的机器人撞上各种墙壁,听起来可能并不那么点能兴奋,但接下来发生的事情堪称神奇,凸显了新奇性探索的力量到了某个时刻,在撞上了足够多的墙之后,就没有新的墙可撞了,在那一刻,急性探索已经穷尽了所有的撞墙选择,然后一个值得注意的事情开始发挥作用。
现在的机器人要做一些新鲜的事物,而唯一可行的办法就是不再撞墙,这个进步很有意思。因为学习避开墙壁从未被表述为一个目标,即使它不是目标,只追求新奇行为的机器人,最终也必须学会避开墙壁,才有望继续产生新的行为。
事实上,寻求新奇行为的机器人,最终甚至不得不进入另一段的大门,因为它将再次囚禁在同一走廊内所有信息行为的可能性。这个新奇行为的结果令人费解。
一个只被告知需要寻求新奇行为的机器人,却学会了如何避开墙壁在走廊比自如的穿梭,最终走向敞开的大门。而且这种行为都没法当成指令奖励这样的目标。
按照这个逻辑,追求新奇性的过程中所产生的行为的复杂性似乎比预期更多。
同时,这种显而易见的成功,似乎只是穷尽一切可能性后出现的结果。计算机科学家称之为穷举法。
如果你真的有时间去尝试世界上每一种可能性的行为,最终也可能变成一些聪明事。但你也可能花上几乎一辈子的时间才能得到这个结果。这个方法听起来有点愚蠢。但事实证明心急性的探索中发现比简单的常识每一个让你能够想到的行为都更深入。
新奇探索比穷尽可能性更有趣的原因是,它倾向于以某种特定的顺序来产生行为,顺序是探索和发现一个关键因素。
事实上我们对任何一种搜索都充满信心的主要原因是,我们希望他能知道人们以某种合理的顺序发现某种成功的踏脚石。在目标驱动型的搜索中,我们经常期望坏的行为出现,好的行为之前,换句话说,我们期望探索行为的质量在探索过程中不断的提升。这样一来,目标将带来一个一连串发现一系列结论的似乎就更合乎逻辑了。