实现“人工智能”的工作是大量计算机研究、设计和应用的中心。这个领域正处于初始的短暂阶段,特点是有许多不同和独立的研究成果。Marvin Minsky被要求将这些工作整合成一个连贯的总结,用适当的解释或理论以非计算机信息补充它,并介绍他对现状技术的评估。这篇论文强调了一类活动,在这些活动中,一个拥有基本程序库的通用计算机被进一步编程来执行操作,从而实现更高层次的信息处理功能,如学习和解决问题。这篇内容丰富的文章将引起的普通读者和计算机专家的兴趣。——《客座编辑》
摘要
启发式编程的问题(让计算机解决真正困难的问题)分为五个主要领域:搜索、模式识别、学习、规划和归纳。
从某种意义上说,计算机只能做它被告知要做的事情。但是,即使我们不知道如何解决某个问题,我们也可能会对机器进行编程,让机器在大量的解决方案尝试中进行搜索。不幸的是,当我们为这样的搜索编写一个简单的程序时,我们通常会发现结果过程非常低效。使用模式识别,可以将机器限制在适合的范围内探索来大大提高效率;通过学习,根据早期经验指导搜索,进一步提高了效率。通过实际分析情况,使用我们所说的计划方法,机器可以通过用更小范围,更合适的探索算法来取代最初给出的搜索来获得根本性的改进。
无论如何,这个讨论是由大量的文献引用和对一些迄今为止最成功的启发式(解决问题)程序的描述来支持的。
引言
如果外星人造访地球,他可能会对计算机在我们的技术中所扮演的角色感到困惑。一方面,他会读到和听到所有关于奇妙的“机械大脑”的故事,它们以惊人的智力表现让创造者感到困惑。他会被警告说,这些机器必须加以约束,以免它们用强大的力量、说服,甚至揭示出令人难以忍受的可怕真相来压倒我们。另一方面,他会发现,机器会因为它们奴性的服从、缺乏想象力、缺乏创新或主动性而受到各方的谴责。简而言之,一切都是因为他们无人性化的迟钝。
如果我们的地球人真的要去发现这些机器,并亲自判断的话,他可能会感到困惑。因为他只会发现少数几台机器(大多数是通用计算机)它们被编程为按照某种规范运行的计算机),它们所做一些事情可能称得上是真正的智力状态。有些人会证明一些性质相当普通的数学定理;一些机器可能会玩某些游戏,偶尔打败它们的设计师。有些人可能会区分手工印刷的字母。这是否足以证明如此多的关注是合理的,更不用说深切的担忧了?我相信是的,我们正处在一个时代的开端,这个时代将受到智能解决问题机器的强烈影响,而且很可能是主导。但我们的目的不是猜测未来可能会带来什么,它只是试图描述和解释现在看来是我们构建“人工智能”的第一步。
随着通用计算机的发展,在过去的几年里,人们越来越重视问题解决过程的发现和机械化。现在已经出现了相当多的论文,描述了与游戏、定理证明、模式识别和其他似乎需要一些智能的领域有关的理论或实际的计算机程序,文献不包括任何关于这一领域突出问题的一般性讨论。
在本文中,将尝试分离,分析和找到其中一些问题之间的关系。分析得到文献中足够多的例子的支持,以服务于综述文章的介绍,但这里仍然有很多相关工作没有描述。这篇文章是高度压缩的,因此无法在有限的篇幅内讨论所有这些问题。
当然,没有普遍接受的“智能”理论,这是我们自己的分析,可能会引起争议。遗憾的是,我们无法在此给出完整的个人致谢,只说我们几乎与每一位被引用的作者都讨论过这些问题就够了。
本文将问题分为五个主要领域:搜索,模式,识别学习,规划和归纳,这些构成了论文的主要部分,让我们非常简短地总结一下整个论点:
从某种意义上说,计算机只能做它被告知要做的事情。但是,即使我们不知道如何解决某个问题,我们也可能会对机器进行编程,让机器在大量的解决方案尝试中进行搜索。不幸的是,当我们为这样的搜索编写一个简单的程序时,我们通常会发现结果过程非常低效。使用模式识别技术,可以通过限制机器仅在适合的尝试类型上使用其方法来大大提高效率。通过学习,通过根据早期经验指导搜索,进一步提高了效率。通过实际分析情况,使用我们所说的计划方法,机器可以通过用更小,更合适的探索来取代最初给出的搜索来获得根本性的改进。最后,在归纳法部分,我们考虑了一些关于如何获得智能机器行为更全局的概念。
一、搜索问题
概要——对于给定的问题,如果我们有办法检查提出的解决方案,那么我们可以通过测试所有可能的答案来解决问题。但是这总是需要很长时间才能产生实际意义,但任何可以减少这种搜索的方法都可能有价值。如果我们能够检测到相对的改进,那么“爬山算法”(l-B部分)可能是可行的,但其使用需要一些搜索空间的结构知识,除非这种结构满足某些条件,否则爬山可能弊大于利。
当我们在下面谈论解决问题时,我们通常会假设所有要解决的问题最初都是明确定义的。我们的意思是,对于每个问题,我们都有一些系统的方式来决定何时可以接受所提出的解决方案。这里讨论的大多数实验工作都涉及在定理证明或具有精确游戏和得分规则的游戏中遇到的明确定义的问题。
从某种意义上说,所有这些问题都是微不足道的。因为如果存在这样的问题的解决方案,那么最终可以通过搜索所有可能性的任何盲目穷举过程找到该解决方案,机械化或编程这样的搜索通常并不困难。
但是,对于任何名副其实的问题,通过所有可能性进行搜索对于实际使用来说效率太低了。另一方面,像国际象棋或数学的不平凡部分这样的系统太复杂了,无法进行完整的分析。没有完整的分析,就必须始终保留一些搜索的核心,即“试错”。因此,我们需要找到一些技术,通过这些技术,不完整分析的结果可以用来使搜索更有效率。这样做的必要性简直是压倒性的。通过跳棋游戏搜索所有路径涉及大约10*40个移动选择,在国际象棋中,大约10*120个。如果我们把银河系中的所有粒子组织成某种以宇宙射线的频率运行的并行计算机,那么后一种计算仍然需要很长时间。我们不能指望仅仅改进“硬件”来解决我们所有的问题。当然,我们必须使用我们事先知道的任何东西来指导试验生成器。我们还必须能够利用在此过程中取得的成果。
A. 相对改进、爬山算法和启发式连接
如果我们没有关于问题的任何信息背景,我们就很难对问题感兴趣。我们通常有一些基础,无论多么薄弱,都可以来检测改进有些试验将被认为比其他试验更成功。例如,假设我们有一个比较者,它会从任意一对试验结果中,选出更好的一个。现在,比较本身不能很好地界定一个问题,因为未定义目标。但是,如果比较者定义的试验之间的关系是“可传递的”(即,如果A优于B,而B优于C意味着A优于C),那么我们至少可以定义“进展”,并要求我们的机器在给定的时间限制下做到最好。
但必须指出,比较者本身无论多么精明,都不能单独比详尽的搜索做出任何改进。可以肯定的是,比较为我们提供了有关部分成功的信息。但是,我们还需要一些方法来利用这些信息将搜索模式引向有希望的方向。选择新的试验点,这些点在某种意义上“相似”或“方向相同”,与那些给出了最好的先前结果。为此,我们需要在搜索空间上添加一些额外的结构。这种结构不需要与普通的方向空间概念或距离概念有太大的相似之处,但它必须以某种方式将启发式相关的点联系在一起。
我们将这种结构称为启发式连接。我们只在非正式场合介绍这个术语——这就是为什么我们的定义本身如此不正式的原因。但我们需要它,为了这个目的,许多出版物误用了精确的数学术语,例如:度量和拓扑。“联系”这个词,在字典中有各种各样的含义,似乎只是用来表示一种关系,而不涉及这种关系的确切性质。一个重要而简单的启发式联系是,当空间有坐标(或参数)时,还定义了一个数值“成功函数”E,这是一个相当平滑的坐标函数。这里我们可以使用局部优化或爬山方法。
B. 爬山算法
假设我们有一个黑箱机器,输入x1,…xn和输出E(x1,…xn)我们希望通过调整输入值来最大化E,但是我们没有给出函数E的任何数学描述,因此,我们不能使用微分或相关的方法。最明显的方法是在一个点附近局部探索,找到最陡上升的方向。一个人向那个方向移动一定的距离,重复这个过程,直到改进停止。如果山丘是平滑的,这可以通过分别估计每个坐标的梯度分量dE/dxi来近似地完成。还有更复杂的方法——可以对每个变量添加噪声,并将输出与每个输入关联起来(见下文),但这只是总体思路。它是一种基本的技术,我们总是在更复杂的系统的后台看到它。启发式地说,它的巨大优点是:抽样工作(用于确定梯度方向)在某种意义上只与参数的数量线性增长。因此,如果我们可以用这种方法解决某一类涉及许多参数的问题,那么增加更多同类型的参数应该不会导致难度的过度增加。我们特别感兴趣的是可以扩展到更多困难问题的解决方法。大多数有趣的系统,通常涉及组合操作,随着我们添加变量,难度会呈指数增长。

(多个优化器同时搜索某个函数E (x1,…xn)的一个(局部)最大值。每个单元Ui独立地“抖动”它的参数x,可能是随机的,通过在电流平均值mi上添加di(t)的变化。xi和E的变化是相关的,并将其结果用于缓慢改变mi。滤波器用于去除直流分量。这种技术是一种相干检测的形式,通常比单独和依次处理每个参数的方法有优势。参见Wiener , p133ff中关于“信息反馈”的讨论。各种各样的爬坡系统被称为“自适应”或“自优化”进行了研究。 )
C. 爬山算法的麻烦
显然,跟随坡度的登山者如果到达的局部山峰不是真正的或令人满意的最佳位置,就会被困住。然后,它必须被迫尝试更大的步伐或改变。通常认为这种假峰问题是机器学习的主要障碍。这当然会很麻烦。但对于真正困难的问题,在我们看来,通常更根本的问题在于找到任何显著的峰值。不幸的是,已知的困难问题的E函数经常表现出我们称之为“Mesa现象”,在这种现象中,一个参数的小变化通常导致性能不改变或性能的大变化。因此,空间主要由平坦的区域或“台地”组成。试验生成器的任何小步倾向都会导致漫无目的的游荡,而不会补偿信息增益。在这样的空间里进行有利可图的搜索,需要的步数如此之大,以至于爬山基本上是不可能的。解决问题的人必须找到其他方法,通过不同的启发式连接,爬山可能仍然可行。
当然,在人类的智力行为中,我们很少通过稳步迈向成功来解决棘手的问题。我怀疑任何一种简单的机制,例如爬山,将提供建立一个有效和通用的解决问题的机器的手段。智能机器可能需要各种不同的机制。这些将被安排在层次结构中,甚至在更复杂的,可能是递归的结构中。也许在某一层面上相当于直接爬山的行为有时会(在较低的层面上)出现“顿悟”的突然跳跃。
二、模式识别的问题
概要——为了不尝试所有的可能性,机智的机器必须根据机器不同方法的有效性将问题情况分类。这些模式识别方法必须提取问题对象的启发式显著特征,最简单的方法只是将对象与标准或原型进行匹配。更强大的“属性列表”方法使每个对象接受一系列测试,每个测试检测一些启发式重要的属性。在常见的变形形式下,这些性质必须是不变的。这里出现了两个重要的问题:发明新的有用性质和将许多性质结合起来形成一个识别系统。对于复杂的问题,这类方法必须增加用于细分复杂对象和描述其各部分之间复杂关系的工具。
任何强大的启发式程序必然包含各种不同的方法和技术。在解决问题过程的每一步,机器都必须决定处理问题的哪个方面,然后使用哪种方法。我们必须做出选择,因为我们通常无法尝试所有的可能性。
为了处理一个目标或一个问题,也就是选择一个合适的方法,我们必须认清它是一个什么样的东西。因此,在动作中进行选择的需要迫使我们为机器提供分类技术,或进化它们的方法。机器具有现实的分类技术至关重要。但是“现实”只能根据机器要遇到的环境以及可用的方法来定义。不能被利用的区别是不值得承认的。如果没有可以帮助确定何时适用的分类方案,方法通常毫无价值。
A. 分类的目的论要求
有用的分类是与机器的目标和方法相匹配的分类。在分类中组合在一起的对象应该具有一些共同的启发式价值;它们在有用的意义上应该是“相似的”;它们应取决于相关或基本特征。因此,我们不应该对发现自己使用逆向或目的论表达式来定义类感到惊讶。我们确实想要掌握“可以转换为形式 Y 的结果的对象类别”,即满足某个目标的对象类别。人们应该警惕在科学中使用目的论语言的熟悉禁令。虽然确实在某些情况下谈论目标可能会使我们倾向于某些万物有灵论的解释,但这在解决问题领域不一定是坏事。很难看出一个人如何在没有目的的情况下解决问题。目的论定义的真正困难是技术上的,而不是哲学上的,当它们必须被使用而不是仅仅被提及时就会出现。如果一个人需要准确的分类来决定是否尝试该方法,那么一个人显然不能使用实际上需要等待某个远程结果的方法进行分类。因此,在实践中,理想的目的论定义通常必须用实际的近似值来代替,通常会有一些错误的风险;也就是说,必须做出定义 如果一个人需要准确的分类来决定是否尝试该方法,那么一个人显然不能使用实际上需要等待某个远程结果的方法进行分类。因此,在实践中,理想的目的论定义通常必须用实际的近似值来代替,通常会有一些错误的风险;也就是说,必须做出定义,如果一个人需要准确地分类来决定是否尝试该方法,那么显然不能使用一种实际上需要等待某个远程结果的方法来进行分类。因此,在实践中,理想的目的论定义通常必须用实际的近似值来代替,通常会有一些错误的风险;也就是说,必须做出定义启发式有效,或经济上可用。这是非常重要的。(我们可以将“启发式有效性”与普通的“有效性”数学概念形成对比,后者区分了那些完全可以通过机器实现的定义,而不管效率如何。)
B. 模式和描述
通常有必要为符号表达式指定名称,名称的结构将对机器的心理世界产生至关重要的影响,因为它决定了可以方便地思考什么样的事物。有多种分配名称的方法,最简单的方案使用我们将称为常规(或专有)名称的名称;在这里,任意符号被分配给一类。但我们也希望使用复杂的描述或计算的名称;这些是由依赖于种类定义的进程为类构建的。为了有用,这些应该反映它们指定的事物的一些结构,以与问题领域相关的方式抽象出来。描述的概念平滑地融合到更复杂的模型概念中;在我们看来,模型是一种主动描述。它是一种事物,其形式反映了所代表事物的某些结构,但也具有工作机器的某些特征。
在第三节中,我们将考虑“学习”系统。这些系统的行为可以根据过去发生的事情以合理的方式改变。但就其本身而言,简单的学习系统仅在反复出现的情况下才有用。他们无法应对任何重大的新奇事物。只有当学习系统辅以具有某种归纳能力的分类或模式识别方法时,才能获得非凡的性能。因为在不平凡的搜索中遇到的对象种类如此之多,以至于我们不能依赖递归,而仅仅积累过去的经验记录只能发挥有限的价值。模式识别通过提供一种将新旧事物联系起来的启发式连接,可以使学习变得广泛有用。
什么是“模式”?我们经常使用这个术语来表示一组对象,这些对象可以以某种(有用的)方式被同等对待。对于每个问题领域,我们必须问:“对于处理此类问题的机器,哪些模式有用?”
视觉模式识别的问题近年来受到了很多关注,我们的大部分例子都来自这个领域。
C. 原型派生模式
阅读印刷字符的问题是分类最终基于一组固定的“原型”的情况的一个明确实例——例如,制作字体的模具。打印页面上的各个标记可能会显示许多失真的结果。有些扭曲是相当系统的——例如大小、位置和方向的变化。其他失真具有噪声的性质:模糊、颗粒、低对比度等。
如果噪声不是太严重,我们也许可以通过我们所谓的归一化和模板匹配过程来管理识别。我们首先消除与大小和位置相关的差异——也就是说,我们对输入图形进行归一化 。可以这样做,例如,通过构造一个内接在某个固定三角形中的类似图形(见下文),或者可以转换该图形以获得某个固定重心和单位秒中心矩。

(一种简单的规范化技术,如果一个对象在不旋转的情况下均匀地扩展,直到它接触到三角形的所有三条边,则生成的图形将是唯一的,因此模式识别可以在不考虑相对大小和位置的情况下进行。)
旋转等效还有一个额外的问题,即不容易避免所有歧义。人们不想把“6”和“9”等同起来。就此而言,人们不想将(0,o)或(X,x)或xo中的0等同起来,因此可能涉及上下文依赖性。归一化后,可以将未知数字与原型的模板进行比较,并通过某种匹配措施选择最合适的模板。每个“匹配标准”都会对特定形式的噪声和失真敏感,每个归一化过程也是如此。刻字或装箱方法可能对小斑点敏感,而矩法对涂抹特别敏感,至少对于细线图形等。匹配标准的选择必须取决于通常遇到的噪声和转换的种类。尽管如此,对于许多问题,我们可以通过使用简单的相关方法获得可接受的结果。
当等价变换的类别很大时,例如,当存在局部拉伸和变形时,将难以找到统一的归一化方法。相反,人们可能不得不考虑在本地进行调整以最适合模板的过程。(在测量匹配时,可以在局部“抖动”图形;如果发现改进,可以使用稍微不同的变化重复该过程等等。)通常没有实际的可能性将所有允许的变换应用于图形,并识别拓扑如下所示的对的等价性可能超出任何实际类型的迭代局部改进或爬山匹配程序。(不过,这种识别可以通过遵循线条、检测顶点并以顶点连接表的形式建立描述的方法进行机械化。)

图 A、A' 和 B、B' 是拓扑等价对。长度以任意方式被扭曲,但对应点之间的连接关系被保留。在 Sherman 和 Haller 中,我们发现了可以处理此类等价的计算机程序。
具有规范化和直接比较和匹配标准的模板匹配方案在概念上过于有限,无法在更困难的问题中大量使用。如果变换集很大,归一化或“拟合”可能是不切实际的,尤其是在变换空间上没有足够的启发式连接的情况下。此外,对于每个定义的模式,系统必须提供一个原型。但是,如果一个人想到

最低0.47元/天 解锁文章
954

被折叠的 条评论
为什么被折叠?



