ACT-R

ACT-R （发音为/ˌæktˈɑr /，Adaptive Control of Thought—Rational，意为“思想的适应性控制-理性”）是一种认知架构，主要由卡内基·梅隆大学的约翰·罗伯特·安德森和克里斯蒂安·勒比尔（Christian Lebiere）开发。如同其它认知架构，ACT-R旨在定义基础且不可简化的认知及知觉操作，进而实现人的心智。从理论上讲，人类所能完成的每项任务都应该要由这一系列的离散操作组成。

大多数ACT-R的基本假设也受到认知神经科学进展的启发，而ACT-R还可以被看作是一种明确规定大脑如何组织的方法，使得每个单独的处理模块能够产生认知。

## 启发

ACT-R的灵感源自于艾伦·纽厄尔的工作，尤其是源自于他毕生倡导的统一理论，纽厄尔认为这是真正揭示认知规律的唯一途径。实际上，约翰·安德森也认为ACT-R理论主要受到艾伦·纽厄尔影响。

## ACT-R特点

与其他有影响力的认知架构相同（包括Soar、CLARION和EPIC），ACT-R理论也有计算实作，即作为特殊程式语言的直译器。直译器本身是用Common Lisp编写，并且可以加载到任何Common Lisp语言发行版中。

这意味着任何研究人员都可以从ACT-R网站下载ACT-R代码，将其加载到Common Lisp发行版中，并以ACT-R直译器的形式完全存取该理论。

而且，这使研究人员能够以ACT-R语言的脚本形式来具体说明人类认知模型。语言基元及数据类型的设计反映了人类认知理论的假设。而这些假设是根据从认知心理学和脑成像实验中所得出的大量事实。

如同程式语言，ACT-R是一个框架：可用于处理不同的任务（例如河内塔、用于文本或单词列表的记忆、语言理解、信息交流和飞机控制），研究人员会在ACT-R中创建“模型”（也就是程式）。这些模型反映了建模人员以ACT-R的认知观点对任务所做的假设。

在模型运作之后，模型会自动循序模拟人类的行为，具体规定各个认知操作（记忆编码和提取、视觉和听觉编码、运动编程和执行、心理意象操纵）。每个步骤都与延迟和准确性的定量预测相关。借由将模型结果与行为实验收集的数据比较，可以对该模型进行检验。

近年来，由于功能磁共振成像实验，ACT-R也已扩展到对大脑激发模式的定量预测。尤其是将ACT-R加强后，用以预测几个大脑区域的BOLD响应的形态和时程，包括运动皮质、左前侧额叶皮质、前扣带回皮质和基底神经节。

### 简要概述

ACT-R最重要的假设是，人类知识可分为两种不可简化的表征：陈述性和程序性。

在ACT-R代码中，陈述性知识以“意元”（chunks）的形式表示，也就是各个属性的矢量表征，而每个属性都可以从标记的插槽存取。

“模块”是专门的大脑结构，很大程度上独立，模块的前端是缓冲区，意元即透过“缓冲区”来保持和存取。

模块有两种类型：

- 知觉运动模块，负责与现实世界的界面（即模拟真实世界）。ACT-R中开发最完善的知觉运动模块是视觉模块和人工模块。
- 记忆模块。ACT-R中有两种记忆模块：
- 陈述性记忆，由诸如“华盛顿特区是美国首都”、“法国是欧洲国家”或“2 + 3 = 5”等事实组成。
- 程序性记忆，由产出组成。产出代表着我们如何做事的知识。例如：如何在键盘上键入字母“Q”、如何驾驶、如何执行加法。

所有模块只能透过其缓冲区来存取。在给定的时刻，缓冲区的内容表示ACT-R在该时刻的状态。这个规则的唯一例外是程序模块。程序模块负责储存及应用程序性知识，但没有可存取的缓冲区，实际上，这个模块是用来存取其他模块的内容。

程序性知识以“产出”（productions）的形式表示。术语“产出”反映了ACT-R作为产出系统的实现情形，但是实际上，产出主要是形式化的表示法，用于指定从皮质区域（即缓冲区）到基底神经节再回到皮质的信息流。

每一时刻，内部模式匹配器都会搜索与缓冲区当前状态匹配的产出。在给定的时刻，只能执行一次产出。该产出在执行时可以修改缓冲区，从而更改系统状态。因此，在ACT-R中，认知会随着一系列的产出而触发。

### 符号与联结主义的辩论

在认知科学中，通常会将不同的理论归类为认知的“符号方法”或“联结主义方法”。ACT-R显然属于“符号”领域，在标准教科书和文献中也是如此归类。ACT-R的实体（意元和产出）是离散的，且操作在语法上，也就是说，ACT-R并不是指表征的语义内容，而是代表它们所适合参与计算的属性。在意元插槽中以及与产出匹配的缓冲区属性中都可以清楚地看到这一点，这两者皆为标准符号变量。

ACT-R社群的成员，包括其开发人员，更喜欢将ACT-R视为一个通用框架，该框架明确说明了大脑是如何组织，以及大脑的组织是如何产生被感知的心智（同时也是认知心理学研究重点。）这框架超越了传统的符号/联结主义之争。当然，这些说法都不反对将ACT-R划分为符号系统，因为所有认知的符号方法都是为了描述心智，作为大脑功能的产物，使用特定的实体和系统来达成这个目标。

一个常见的误解认为“ACT-R可能不是符号系统，因为它试图描述脑功能。” 从两个方面来看，这是不正确的：首先，因为心智就是大脑的功能，所以无论是符号的还是其他类型，所有认知的计算模型都必须在某种程度上描述大脑的功能。其次，所有这些方法，包括联结主义方法，都是试图在认知层面来描述大脑，而不是在神经层面，因为只有在认知层面上，重要的一般性质才能被保留。

由于ACT-R在某些方面有着“联结特性”，还会产生进一步的误解。例如，“意元”会互相传播激发，或“意元和产出”的定量属性与其选择相关，然而，无论这些属性在单元选择的作用，以及最终在计算中的作用如何，皆未与符号实体的基本性质相悖。

### 理论与实现以及Vanilla ACT-R

ACT-R开发人员通常会强调区分理论本身及其实作的重要性。

实际上，许多实作并没有反映理论。例如，实际的实作方式会使用到额外的“模块”，而这些“模块”纯粹是为了计算而存在，不在大脑中反映任何内容（例如，有的模块包含了用于产生噪声参数的伪乱数生成器，有的拥有命名常式，用于生成可透过变量名存取的资料结构。）

同时，实际实作的目的是使研究人员能够修改理论，例如透过修改标准参数，创建新的模块，或部分修改现有模块的行为。

最终，卡内基·梅隆大学的安德森实验室维护并发布了官方版本的ACT-R程式码，而该理论也有其他替代实作方式，包括jACT-R （美国海军研究实验室的Anthony M. Harrison用Java编写）和Python ACT-R （由加拿大卡尔顿大学Terrence C. Stewart和Robert L. West用Python编写）。

同样地，ACT-RN（现已停止）是1993年版理论的一个成熟的神经实作。所有这些版本均具有完整的功能，而这些版本的模型均已完成并运行。

由于具有这些实作上的自由度，因此，当采用其原始形式且未经修改的情况下，ACT-R团体通常将该理论以Lisp为基础所实作的“官方”版本称为“Vanilla ACT-R”。

## 应用领域

多年来，ACT-R模型已在700多种不同的科学刊物中使用，在文献中则引用更多。

### 记忆力、注意力和执行控制

自从ACT-R陈述性记忆系统建立以来，就被用来模拟人类记忆。多年来，已经成功对大量已知的效应建模。包括相关信息干扰的粉丝效应列表记忆的首因效应和近因效应，和序列回忆。

在许多认知范式中，ACT-R被用来模拟注意力和控制历程。这些包括斯特鲁普效应、任务切换、心理反应回复期、和多重任务处理。

### 自然语言

研究人员已经使用ACT-R来模拟在自然语言理解和产出中的多个环节。包括语法分析模型、语言理解模型、语言习得和隐喻理解模型。

### 复杂的任务

ACT-R已被用于理解人类是如何解决河内塔之类的复杂问题，或是如何解决代数方程式。它也已被用来模拟人类驾驶汽车和飞机的行为。

随着知觉运动能力的整合，ACT-R作为人机交互的建模工具越来越受欢迎。在此领域中，已采用它来模拟不同条件下的驾驶行为、计算机应用中的选单选择和可视化搜索以及网站导航。

### 认知神经科学

最近，ACT-R已被用于预测成像实验中大脑的激发模式。在该领域，ACT-R模型已成功用于预测在记忆提取过程中前额叶和顶叶的活动，控制操作的前扣带回活动，以及与实践相关的大脑活动变化。

### 教育

ACT-R通常被用作认知引导的基础。这些系统使用内部的ACT-R模型来模仿学生行为，并使说明和课程变得个性化，以及试图“猜测”学生可能遇到的困难并提供重点协助。

这种“认知导师”被用作匹兹堡学习科学中心的学习研究和认知建模的平台。如“数学认知导师”这样的成功应用，正在美国的数千所学校中使用。

## 历史简介

### 早期：1973–1990年

由约翰·罗伯特·安德森开发，这一系列愈益精确的人类认知模型中，ACT-R是当中的最终继承者。

它的根源可以追溯到最初的HAM（Human Associative Memory，人类联想记忆）记忆模型，由约翰·安德森和戈登·鲍尔在1973年描述。HAM模型后来被扩充为ACT理论的初代版本。这是首次将程序性记忆添加到原本的陈述性记忆系统中，引入了一种后来被证明可以在人脑中使用的计算机的二分法。然后，该理论进一步扩展到人类认知的ACT *模型中。

### 与理性分析整合：1990–1998年

八十年代后期，安德森致力于探索和概述一种认知的数学方法，他将其命名为理性分析。理性分析的基本假设是认知具有最佳适应性，且认知有精确估计的功能，可反映环境的统计特性。后来，他回到了ACT理论的发展阶段，将理性分析作为基础计算的统一框架。为了强调新方法在架构设计中的重要性，将其名称更改为ACT-R，“ R”代表“ Rational”

1993年，安德森遇到了联结主义模型研究人员克里斯蒂安·勒比耶尔（Christian Lebiere），该模型因与斯科特·法尔曼（Scott Fahlman）合作开发出串级关连式学习算法而闻名。在他们共同努力之下，最终发布了ACT-R 4.0。因为Mike Byrne的贡献，4.0版还包括可供选择的知觉和运动功能，这主要是受到EPIC架构的启发，极大地扩展了该理论的可能应用。

### 脑成像和模块化结构：1998-2015年

ACT-R 4.0发布后，约翰·安德森对他这个终生奉献的理论的潜在神经合理性越来越感兴趣，并开始使用大脑成像技术来追求自身的目标，也就是理解人类思维的计算基础。

解释大脑定位的必要性推动了对该理论的重大修改。ACT-R 5.0引入了模块的概念，专门化了多组可以映射到已知大脑系统的程序性表征及陈述性表征。此外，程序性知识和陈述性知识之间的交互作用是由新引入的缓冲区（用于保存临时活动信息的特殊结构）来调节（请参见上文）。人们认为缓冲区能反映皮质的激发，随后的一系列研究证实，皮质区域的激发可能与缓冲区的计算操作有关。

完全重写的新版本代码于2005年发布，名为ACT-R 6.0。它还包括对ACT-R程式语言的重大改进。这包括ACT-R产出规范中的一种称为动态模式匹配的新机制。从前的版本要求对于缓冲区中的资讯，与产出匹配的模式要包含特定插槽。与之不同，新版本的动态模式匹配则允许缓冲区内容来指定匹配的插槽。安德森在2007年的论文中，给出了ACT-R 6.0的描述和动机。

### ACT-R 7.0：2015年至今

在2015年的研讨会上，有人认为，这次软件改版需要将模型编号增加到ACT-R 7.0。其中一个主要的软件变更是取消了“必须根据预定义意元类型来指定意元”的要求。意元类型机制并未移除，而是从架构的必要构造，变更为软件中的弹性语法机制。这为需要学习新资讯的建模任务提供了更大的知识表征灵活性，并扩展了透过动态模式匹配（现在允许模型创建新的意元“类型”）提供的功能性。由于所有动作现在都具有相同的句法形式，因此这也简化了在产出中指定动作所需的语法。ACT-R软件也随后进行了更新，以包括基于JSON RPC 1.0的远程界面。添加了该界面，可以更轻松地从Lisp以外的语言创建模型任务和使用ACT-R，且软件随附的教学已更新，可以为所有教学模型所执行的范例任务提供Python的实作。

### 分拆

ACT-R理论的长期发展催生了相当数目的平行相关计划。

最重要的是PUPS产出系统，它是安德森理论的最初实作，后来被放弃了。另外还有ACT-RN，是由Christian Lebiere所开发的神经网络实作。

卡内基·梅隆大学的林恩·雷德也在90年代初开发了激发混淆源模型（Source of activation confusion model，SAC），这是一种记忆在概念和知觉方面的模型，尽管在某些假设上有所不同，它与ACT-R的核心陈述性系统有着许多共同之处。

## 外部链接

- ACT-R官方网站 – 包含大量在线资料，包括源代码，出版物列表和教程
- JACT-R – Java重写ACT-R
- ACT-R：Java仿真和开发环境 – ACT-R的另一个开源Java重新实现
- PythonACT-R – ACT-R的Python实现
- pyactr – ACT-R的另一个Python实现

## 基本资料

- 作者：约翰·罗伯特·安德森
- 编程语言：Common Lisp
- 类型：认知架构
- 许可协议：GNU LGPL v2.1