---
schema_version: "library-reader-v1"
source_type: "original_book"
title: "人工智能哲学"
author: null
edition: null
publisher: null
year: null
isbn: "7532740544"
library_document_id: "7f418071-0fdc-4a5a-a4c5-82dd1979d9c2"
source_sha256: "1a81e5f3981b3c472c59c41e3051e038e997d095f1ab9e963fbb8a043c2cba34"
pdf_physical_page_count: 501
pdf_physical_page_index_base: 0
range_start: 280
range_count: 10
html_url: "https://workshop.closeclaw.top/api/ai/read/7f418071-0fdc-4a5a-a4c5-82dd1979d9c2?start=280&limit=10"
markdown_url: "https://workshop.closeclaw.top/api/ai/read/7f418071-0fdc-4a5a-a4c5-82dd1979d9c2.md?start=280&limit=10"
previous_url: "https://workshop.closeclaw.top/api/ai/read/7f418071-0fdc-4a5a-a4c5-82dd1979d9c2.md?start=270&limit=10"
next_url: "https://workshop.closeclaw.top/api/ai/read/7f418071-0fdc-4a5a-a4c5-82dd1979d9c2.md?start=290&limit=10"
---

# 人工智能哲学

> 页码规则：PDF_PHYSICAL_PAGE_INDEX 是从 0 开始的权威文件物理页索引；PRINTED_PAGE 是页面中识别出的印刷页码，可能为空，二者不得混用。

## PDF_PHYSICAL_PAGE_INDEX=280 | PRINTED_PAGE=272

相似和概括

当一个新的条目存入时，对联结强度的调整不允许清除已存在的条目，这可以通过对大量加权值的稍稍调整来实现。如果这些调整都趋于对已存储的模式有利，那么就会出现一个同向作用的结果：预期模式的总增益将是所有分散的小调整的总和。然而，这对于不相关的模式几乎不起什么作用，因为一部分调整是有益的，而一部分调整是有碍的，它们大都抵消了，所有小调整共同作用的情况是不存在的。这种统计推理成为大多数分布式记忆模型所依托的基础，但是这种基本思想也有很多衍变形式(有几个例子见 Hinton and Anderson 1981)。

将正交活动模式用于各种要存储的条目，有可能完全阻止干扰的产生(第1章中给出了这种情况的基本例子)。然而，这样做就消除了分布式表述的最有趣的特性之一：自动产生概括。如果这一任务仅仅是准确记忆一组无关的条目，那么这种概括效果是有害的，我们称之为干扰。但是在正常情况下，概括是一个有用的现象。它使我们可以有效地处理那些与以前经历过的相似而并不等同的情况。

人们善于对新获得的知识作出概括。如果你获悉有关一个对象的新事实，你对其他类似对象的期望就会发生改变。例如，如果你得知黑猩猩喜欢洋葱，你对大猩猩喜欢洋葱的概率的估计值就会提高。在使用分布式表述的网络里，这种概括是自动完成的。将关于黑猩猩的新知识包容进来，靠的是调整某些联结强度，使得表述黑猩猩的分布式活动模式的因果作用有所变化。这种调整自动地改变了所有与之相似的活动模式的因果作用。所以如果大猩猩的表述对同一组单元而言是一种相似活动模式，那么它的因果作用将以相似的方式发生变化。

人工智能哲学

[1] 这种模式的内部结构也可能改变。为了使不同输出的联结变得有相关性，是改变输出联结的加权值，还是改变模式本身，在这两者之间始终存在着选择。模式本身的变化改变了它与别的模式的相似性，从而改变了将来怎样进行概括的问题。一般情况下，描绘出如何改变表述一个条目的模式，比描绘出如何改变输出联结，以便一个特定模式在网络的另一部分具有所想望的结果，要困难得多。

272

## PDF_PHYSICAL_PAGE_INDEX=281 | PRINTED_PAGE=273

这个最简分布式方案用的完全是同一组单元上的备选活动模式来表述洋葱概念和黑猩猩概念的。因而难以同时表述黑猩猩和洋葱。要解决这个问题，可以把各别的模件用于一个条目在一个较大结构内的每一个可能的角色。例如，黑猩猩是意中的“执行者”，那么表述黑猩猩的模式就占据了“执行者”模件，而表述洋葱的模式则占据了“承受者”模件(见图11-1)。每个模件都可以具有多个用于所有各种条目的备选模式，所以这种方案与条目的定位表述无关。由定位得到的就是这个角色。

如果你随后又得知长臂猿和猩猩不喜欢洋葱，那么你对大猩猩喜欢洋葱的概率的估计值就会下降，不过也许仍然比最初要高一些。显然，各种事实的组合表明，喜欢洋葱只是黑猩猩的一个特殊的怪癖。一个使用分布式表述的系统会自动地得出这种结论，只要表述各种不同猿猴的备选模式是以特定方式相互关联的，这种方式比起仅仅相互相似来显得有点更特殊：每一完整的模式必须有一个部分对所有各种猿猴来说是等同的。换句话说，用于分布式表述的这组单元必须分成两个小组，在第一小组中，所有各种猿猴必然由相同模式表述，而在第二小组中，则由不同模式表述。第一小组上的活动模式表述这一条目的类型，而第二小组上的模式表述将区分开属于这一类型的每一例子与其他例子的附加微特征。注意，微特征的任一子集可以看作是定义一个类型的。一个子集可能对所有猿猴来说是共同的，而一个与之不同(但是有交叠处)的子集则可能对所有宠物来说是共同的。因此一个条目可以同时作为许多不同类型的例子。

11 分布式表述

273

## PDF_PHYSICAL_PAGE_INDEX=282 | PRINTED_PAGE=274

当这个系统获悉有关黑猩猩的一个新事实时，它通常无法知道究竟这一事实对所有猿猴都成立，或者仅仅是黑猩猩的一种特性。因此显而易见的策略就是调整来自所有活动单元的联结强度，使得新知识部分地成为猿猴的一种普遍特性，部分地成为把黑猩猩与其他猿猴区分开的那些特征的特性。如果接着又获悉其他猿猴不喜欢洋葱，那么就要对调整作出修正，使得有关洋葱的信息不再与所有猿猴的共同子模式相联系。于是这一关于洋葱的知识，将被限制于那个把黑猩猩与其他猿猴区分开的子模式。如果发现长臂猿和猩猩也喜欢洋葱，那么互相得到加强的就是对来自表述猿猴子模式的加权值所作的调整，这种知识就会变得与所有猿猴的共同子模式相联系，而不是与把不同猿猴彼此区别开的模式相联系。

这种概括理论的一个非常简单的形式已在一个计算机模拟中实现(Hinton1981)。对这种特性所作的几种应用见本书的第Ⅳ部分。

显然可以概括出如下的思想：一个条目的表述是由两部分组成的，一部分表述类型，而另一部分则表述这个特定例子区别于同一类型的其他例子的方式。所有类型本身几乎都是更一般的类型中的例子，通过把表述这一类型的模式分成两个子模式就可以实现这一点，在这两个子模式中，一个代表更一般的类型，上述特定类型只是它的一个例子，另一个代表把这一特定类型与同一个一般类型的其他例子区分开来的特征。因而一个类型与一个例子之间的关系就可以由一组单元和包含着它的一个更大的组之间的关系来实现。注意，类型越一般，用来对它编码的单元组就越小。当内涵描述中的术语数减少时，相应的外延集就增大。

人工智能哲学

274

## PDF_PHYSICAL_PAGE_INDEX=283 | PRINTED_PAGE=275

在使用定位表述的传统语义学网络中，概括不是这种表述的直接结果。已知黑猩猩喜欢洋葱，表现这个新知识的显而易见的方法是改变属于黑猩猩单元的联结强度。但这并没有自动地改变属于大猩猩单元的联结。所以为了在定位式方案中实现概括，必须求助于额外的过程。一个通用方法是，使激活从定位单元扩展到表述相似概念的其他单元中去(Collins and Loftus 1975；Quillian 1968)。于是当一个概念单元被激活时，它就会部分地激活它的相邻单元，因此存储于来自这些相邻单元联结中的任何知识就会部分地发挥作用。这一基本思想有许多种不同的形式(Fahlman 1979;Levin 1976;McClelland 1981)。

我们很难明确地将使用带有扩展激活的定位表述的系统与使用分布式表述的系统区分开来。在这两种系统中，激活一个概念的结果都是有许多不同的硬件单元被激活了。在某些模型中，它们的区别几乎完全消失了，比如麦克莱兰(McClelland1981)的概括模型，其中概念的特性是由特征单元上的一个激活模式来表述的，而这一激活模式是由用作这一概念的例子的潜在地非常多的单元的相互作用所决定的。其主要区别是，在一种情况下，存在着一个独立的特殊硬件单元，它的作用有如“手柄”，使得像概念名称那样的纯常规特性容易接近，同时构造这个网络的理论家也较容易了解网络各部分代表着什么。

如果我们是用人工规定网络中单元之间的联结的方法来构造网络，定位表述方案就有一些明显的优点。首先，比较容易认为，如果我们自己已经为网络提供了所有“知识”，即所有联结，我们就理解网络的行为。但是，如果完成这一工作的是网络内各个单元之间相互作用影响的整个分布式模式，那么这种理解就常常是虚妄的。其次，人们也许直觉地感到：把任意一个名称加到一个分布式模式上，显然比把它加到一个单个的单元上更加困难。然而，直观上更困难的事，不见得更有效。我们将看到，人们居然能够通过运用分布式表述实现与更少些单元的任意联系。不过在转向这些考虑之前，我们还是先来探讨一下分布式表述的另一个优点：在不配置新硬件的情况下，它们使创造新概念成为可能。

11 分布式表述

275

## PDF_PHYSICAL_PAGE_INDEX=284 | PRINTED_PAGE=276

创造新概念

任何用来表述知识的可取的方案都必须具备学习新概念的能力，这些概念在网络开始连线时是无法预先知道的。一个使用定位表述的方案，首先必须独立地决定应在何时形成一个新概念，然后它必须找寻一个备用硬件单元，该单元具有实现这一概念所需的恰当联结。如果我们假定，经过一段时间的早期发展，新的知识是由改变现存联结的强度，而不是由生长出新的联结来实现的，那么也许很难找到这样一个单元。如果每个单元只同其他单元中的一小部分相联结，很可能根本就没有什么单元会同恰好实现新概念的另一些单元相联结。例如，在由一百万个单元构成的集合体中，每一个单元随机地同另外一万个单元相联结，这时，任一单元同包含另外六个单元的特定组相联结的机会只有百万分之一。

为了解脱定位表述的这种困境，几个构思巧妙的方案被提出来了，它们使用的是两类单元。对应于概念的单元不是直接相互联结的，而是由几层中间单元中的间接通道来实现这些联结(Fahlman 1980;Feld-man1982)。这种方案之所以有效，是因为中间层中潜在通道的数目远远超过物理联结的总数。如果存在k层单元，其中每一层对于下一层中随机选择的单元具有n个联结分支，那么就存在 $\boldsymbol { \mathbf { n } } ^ { \boldsymbol { \mathsf { k } } }$ 个潜在通道。几乎可以肯定，对任何两个概念单元都将存在一个联结通道，因此沿这一通道的几个中间单元就可以用来联结那两个概念单元。然而，这些方案最后不得不把若干中间单元分派给每个有效联结，而这种分派一旦发生，从每一中间单元发出的多个实际联结中，除了一个以外，其余全都作废了。使用若干中间单元来创造一个单一的有效联结，以此来切换所含元素的单元只有相对较少分支的网络也许是适合的，但是在使用类似大脑的硬件时，这一方法看来就无效了。

人工智能哲学

276

## PDF_PHYSICAL_PAGE_INDEX=285 | PRINTED_PAGE=277

找到一个代表新概念的单元，并恰当地给它连线，这种问题在使用分布式表述时是不会发生的。我们要做的只不过是调整单元间的相互作用，以创造一个新的稳定的活动模式。如果是通过对大量联结作非常轻微的调整来做到这一点的，新模式的创造就不一定破坏现存的表述。困难的问题是选择一个适合于新概念的模式。新表述对系统其他部分中的表述产生的作用是由活动单元确定的，因此，关键是使用一批大致具有正确作用的活动单元。通过稍稍改变新模式中活动单元的作用，就可以完成对新模式作用的微调，但为新概念选择一个随机模式，将是不明智的，因为这时还需要对加权值作一些重大的改变，这样就会破坏别的知识。在理想的情况下，为新概念选择的分布式表述应当是这样的：为了使新模式稳定，并使它对其他表述产生符合要求的作用，只需对加权值作出最小的调整。

自然，创造一个新的稳定模式，没有必要一步到位。这一模式的出现可能是在许多各别场合进行调整的结果。这使定位表述中出现的那个棘手问题有所缓和：定位表述系统必须就何时创造一个新概念的问题作出独立的全或无判断。如果我们把概念看作稳定模式，它们的独立性就小得多。例如，通过稍稍调整某些加权值，就有可能将一个稳定模式分化成为两个紧密相关的、但却有所区别的变体。如果不容许我们去克隆硬件单元(以及它们的所有联结)，而是用定位表述来完成这种渐进的、概念上的分化，就会困难得多。

分布式表述理论发展中的一个中心问题是，要对学习分布式表述的确切过程作出详细说明。所有这些过程都牵涉到按照第2章概述的那种类型的“学习规则”对联结强度进行的调整。不是所有这些问题都已解决，但是在这些问题上正在取得重要的进展。

11 分布式表述

277

## PDF_PHYSICAL_PAGE_INDEX=286 | PRINTED_PAGE=一 / 278

2. 行之有效的分布式表述

这一节里，我们考察有关实现分布式表述的一些技术细节。首先，我们指出，某些分布式表述方案可能无法提供区别不同概念的充分根据，并指出，要避免这一局限性需要做些什么。然后，我们介绍了一种方法，可使用分布式表述从联结单元的一个简单网络得到最多的可能存在的信息。其主要结果令人感到惊奇：如果想要用尽可能少的单元对一些特征作出精确编码，使用一些以十分粗略方式调节的单元比较经济，这样，每一特征激活许多不同的单元，而每一单元又由很多不同的特征激活。于是一个特定特征的编码就是由许多单元中的活动模式、而不是由单个活动单元来完成的，所以粗糙编码是一种分布式表述的形式。

为了使分析简明扼要，我们假定这些单元只具有两种值，开和关。我们还将略去系统的动态特性，因为从当前来看，我们所关心的问题是，以给定的精度对特征编码，需要多少单元。我们先来考虑这样一种特征：通过给定一个类型(如线段、角、点)，以及把这特征与同一类型的其他特征(如位置、方向、大小)区分开来的某些连续参数的值，可以完整地说明这一特征。对于每一特征类型，都存在着一个由可能的例子组成的空间。每个连续参数定义该特征空间的一个维度，而每个特定的特征对应于该空间中的一个点。对于像平面中的点这样的特征，可能特征的空间是二维的。对于像三维空间中有端点、有方向的有界线段这样的特征，特征空间是六维的。我们以考察二维特征空间作为开始，然后推广到更高的维数。

一

人工智能哲学

[1]类似的论据也适用于多值活动水平，但重要的是，不允许多个活动水平具有任意的精度，因为这有可能造成用单一活动水平表述无穷多信息的情况。当一些单元传递一个独立脉冲的概率的变动是单元的活动性的函数时，这些单元看来近似于神经回路中可能存在的那种精确性(见第20)和21章)。

278

## PDF_PHYSICAL_PAGE_INDEX=287 | PRINTED_PAGE=279

假定我们想要表述平面中单个点的位置，同时又希望用较少的单元达到高精度水平。一个编码方案的精度可定义为当这个点在空间中移动一个标准距离时所生成的不同编码个数。一种编码方案是把这些单元分成X组和Y组，并指定每一单元对一个特定的X或Y的区间进行编码，如图2所示。这样，一个给定点的编码将从分别来自两个组的两个单元的活动性中得出，而精度是与所用单元的个数成比例的。遗憾的是，这里存在两个问题。第一，如果两个点必须同时编码，这种方法就无效了。这两个点将激活每一组中的两个单元，而从这些活动单元无法断定这些点究竟是在 $( \mathbf { x } _ { 1 } , \mathbf { y } _ { 1 } )$ 和 $( \mathbf { x } _ { 2 } , \mathbf { y } _ { 2 } )$ ，还是在 $( \mathbf { x } _ { 1 } , \mathbf { y } _ { 2 } )$ 和 ${ \bf \left( x _ { 2 } \right. }$

${ \bf y } _ { 1 } )$ 。这问题称做结合问题。它的产生是因为这种表述没有说明什么与什么在一起。

即使每次只有一个点要表述，第二个问题仍然会出现。假定我们想使某些表述而不是别的表述与一个明显的响应相联系：我们要$( \mathbf { x } _ { 1 } , \mathbf { y } _ { 1 } )$ 和 $( \mathbf { x } _ { 2 } , \mathbf { y } _ { 2 } )$ 而不是 $( \mathbf { x } _ { 1 } , \mathbf { y } _ { 2 } )$ 或 $( \mathbf { x } _ { 2 } , \mathbf { y } _ { 1 } )$ 与一个响应相联系。我们无法利用从分别代表两个维度的值的单元到响应单元的标准加权联结实现这种联系。因为用于 $\mathbf { x } _ { \mathrm { l } }$ 的单元和用于$\mathbf { X } _ { 2 }$ 的单元都必须激活这响应，而用于 $\mathbf { y } _ { 1 }$ 的单元和 ${ \bf y } _ { 2 }$ 的单元也都必须激活这响应。当用于$\mathbf { X } _ { 1 }$ 的单元和用于 ${ \bf y } _ { 2 }$ 的单元都被激活时，是无法阻止这一响应被激活的。这又是因为这种表述无法说明什么必须与什么在一起而造成的结合问题的另一个方面。

在常规计算机中，结合问题是容易解决的。我们只要在计算机的存储器里造两个记录。每个记录包含一对坐标，它们像一个点的坐标一样连在一起，而结合信息则根据两个坐标值处在同一记录中这一事实(通常是指它们处于相邻的存储器位置上)来编码。在并行网络中，解决结合问题就困难得多了。

11 分布式表述

279

## PDF_PHYSICAL_PAGE_INDEX=288 | PRINTED_PAGE=280

联合编码

一种方法是预先为X和Y值的每一可能组合拨出一个单元。这相当于用大量小的、不交叠的区域覆盖这一平面，每个区域使用一个单元。于是一个点就用单个单元中的活动性来表示，所以这是定位表述。对每一可区分的特征，使用一个单元，由于有一些单元代表两个维度中每一个纬度上的值的联合，结合问题就得到解决。一般情况下，若允许在特定的特征组合与某种输出或其他激活模式之间形成任意的联系，那么都可能需要某种联合表述。

然而，这种定位编码的代价很大。比起前面的方案来，它的效率要低得多，因为对平面中一个点的准确描述的精度只与单元数的平方根成正比。一般情况下，对一个k维特征空间来说，这种定位编码产生的精度与单元数的k次根成正比。在不涉及结合问题的情况下，这样得到高精度的代价是很大的。

如果在每一情况中，都有数量非常之大的特征出现，那么对每一个可区分特征使用一个单元，也许是一种合理的编码，这样，这些单元之中有一大部分是活动的。但是，如果同时出现的只是可能特征之中一个很小的部分，这种编码的效率就非常之低。如果这种单元只在一半时间里是活动的，由一个二进制单元的状态传递的平均信息量就是一个比特，而如果这个单元只偶尔是活动的，平均信息量就小得多了。1因此，使用一种在任何时刻活动单元都占较大部分的编码，将会是较有效的。如果我们放弃由单个单元的活动性来表述每个可区分特征的思想，这一点就能够实现。

人工智能哲学

[1] 开通的概念是 p的一个单元传递的信息量，是- p log p -(1 - p)log(1- p)。

280

## PDF_PHYSICAL_PAGE_INDEX=289 | PRINTED_PAGE=281

粗糙编码

假定我们把空间分成较大的、交叠的区域，并且给每个区域分配一个单元。为简单起见，我们假定这些区域是圆形的，它们的圆心均匀地随机分布于整个空间，并且给定的编码方案所使用的所有区域都具有相同的半径。我们关心的问题是，一个特征以何种精度被编码为这些区域的半径的函数。如果有给定数目的单元供我们使用，那么是用大区域，使得每个特征点落人多个区域里较好呢，还是用小区域，使得每个特征由个数较少的、但调节较细微的单元中的活动性来表述较好呢？

精度是与当我们使一个特征点从空间的这一边到另一边沿直线移动时生成的不同编码的个数成正比的。这条直线与区域边界每交叉一次，特征点的编码就发生变化，因为对应于这一区域的单元的活动性改变了。所以沿这条直线的可区分特征的个数，刚好两倍于这条线穿过的区域个数。1]这条线穿过的每一个区域的圆心都位于线两旁的半径范围以内(见图11-3)。这个数目是与区域半径r成正比的，它也与区域的数目n成正比。因而精度a与区域数和区域半径的关系如下：a∝nr。

一般来说，在k维空间中，其中心处于通过空间的一条直线的半径范围以内的区域的个数是与半径为r的一个k维超柱体的体积成正比的。该体积等于这个柱体的长度(是确定的)乘以它的(k一1)维横断面积，该面积与r-成正比。因此，精度由下式给出： $\mathbf { a } \propto \mathbf { n } \mathbf { r } ^ { \mathbf { k } - 1 }$

这样，例如当区域半径增加一倍时，表述一个像有端点、有方向的三维棱那样的六维特征的线性精度就会增大到32倍。较大区域导致较粗率的表述的直觉看法是完全错误的，因为分布式表述对信息的掌握比定位表述要有效得多。即使每个活动单元的意义欠明确，活动单元的组合的意义却明确得多。还需注意的是，使用粗糙编码时，精度是与

11 分布式表述

[1]如果你进入并离开一个区域，这期间没有穿越其他区域的边界的话，会出现一些问题，因为你回复到了以前的同一编码，但是如果这些区域足够密集，因而存在着许多区域，包含了空间中每一个点，那么这种影响就可忽略。

281

下一段：[继续读取](https://workshop.closeclaw.top/api/ai/read/7f418071-0fdc-4a5a-a4c5-82dd1979d9c2.md?start=290&limit=10)
