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 的核心陳述性系統有著許多共同之處。

## 注釋

## 參考文獻

* Anderson， J. R. （2007）. _How can the human mind occur in the physical universe?_ New York， NY: Oxford University Press. ISBN 0-19-532425-0ISBN 0-19-532425-0.
* Anderson， J. R.， Bothell， D.， Byrne， M. D.， Douglass， S.， Lebiere， C.， & Qin， Y . （2004）. An integrated theory of the mind. _Psychological Review_， 1036–1060.

## 外部連結

* ACT-R 官方網站（頁面存檔備份，存於網際網路檔案館）  – 包含大量線上資料，包括原始碼，出版物列表和教程
* JACT-R（頁面存檔備份，存於網際網路檔案館）  – Java 重寫 ACT-R
* ACT-R：Java 仿真和開發環境  – ACT-R 的另一個開源 Java 重新實現
* PythonACT-R（頁面存檔備份，存於網際網路檔案館）  – ACT-R 的 Python 實現
* pyactr（頁面存檔備份，存於網際網路檔案館）  – ACT-R 的另一個 Python 實現