ACT-R
ACT-R（Adaptive Control of Thought--Rational、思考の適応制御--理性）とは、カーネギーメロン大学のジョン・R・アンダーソンを中心として開発された認知アーキテクチャである。他の認知アーキテクチャと同様、ACT-R は人間の精神を成り立たせる基本的な認識と知覚の操作を定義することを目指している。理論上、人間の行う行為は、そのような個々の操作の連鎖から成っているとされている。
ACT-R の根底にある仮定のほとんどは認知神経科学(cognitive neuroscience)の進歩に触発されたものでもあり、実際 ACT-R は脳内の個々の処理モジュールによって認識を生み出す過程を説明するものと言う事もできる。
他の多くの認知アーキテクチャと同様、ACT-R はアレン・ニューウェルの業績、特に彼のライフワークである認知の理論統一に触発されたものである。実際、ジョン・R・アンダーソンは理論を構築するにあたって最大の影響を受けた人物としてアレン・ニューウェルを挙げている。
他の有力な認知アーキテクチャ（Soar、、など）と同様、ACT-R 理論には専用言語のインタプリタという形態の計算可能な実装がある。インタプリタ自体はLISP言語で書かれており、一般的なLISP言語処理系で実行可能である。
従って、研究者が ACT-R のウェブサイトからコードをダウンロードして LISP 処理系上で実行すれば、ACT-R インタプリタの形式でその理論に触れることが可能である。
また、これによって ACT-R 言語のスクリプトという形式で人間の認知モデルを指定することも可能である。言語の基本構文とデータ型は認知に関する理論的前提を反映するよう設計されている。それらの前提は、認知心理学の実験や脳画像処理で得られた多くの知見に基づいている。
一般のプログラミング言語と同様、ACT-R はフレームワークである。タスク（例えば、ハノイの塔、テキストや単語の記憶、言語理解、コミュニケーション、航空機の制御など）毎に ACT-R 上で「モデル」（すなわち、プログラム）を作成する。これらのモデルは、ACT-R の持つ認知についての観点内でのモデル作成者の前提を反映している。作成されたモデルは実行される。
モデルを実行することは、認知の個々の操作（すなわち、記憶の処理と検索、視聴覚の処理、運動制御、精神像操作など）を指定する人間の行為の逐次的シミュレーションを行うことと等しい。各ステップには実行時間と正確度に関する量的予測が関連付けられている。実験で収集されたデータとモデルの実行結果を比較することで、そのモデルを評価することができる。
近年、ACT-R は fMRI によって得られるような脳内の活性化パターンの量的予測も行えるよう拡張された。特に ACT-R は、運動皮質の目と口に関する部分、左前頭前皮質、前帯状皮質、基底核などの脳内各部の正確な反応形態と反応時間を予測することに注力してきた。
ACT-R の最も重要な前提は、人間の知識が2つの根源的な種類に分けられる、ということである。その2つとは、「宣言的記憶」と「手続き的記憶」である。
ACT-R のコード内で、宣言的知識は「チャンク; chunks」という形態で表現される。これはすなわち、個人の属性のベクトル表現であり、それらに対して個別のラベルを付されたスロットからアクセス可能となっている。
チャンクは「バッファ」を通してアクセス可能である。バッファは「モジュール」のフロントエンドであり、モジュールとは脳内のほぼ独立した機能部分を意味する。
モジュールには、以下の2種類が存在する:全てのモジュールは対応するバッファを通してのみアクセス可能である。ある時点のバッファの内容は、その時点の ACT-R の状態を表している。手続き的記憶モジュールは例外で、ここには手続き的知識が格納され、それを適用する。従って、アクセス可能なバッファを持たず、他のモジュールの内容にアクセスするのに使われる。
手続き的知識は「プロダクション」の形式で表現される。「プロダクション」という用語は ACT-R が一種のプロダクションシステムであることにも由来しているが、実際プロダクションは主に皮質（バッファ）から基底核、基底核から皮質という情報の流れを形式的に表現するものと言える。
各瞬間に、バッファの現状と一致するプロダクションを検索するパターン照合器が動作する。ある瞬間には1つだけプロダクションが選択され実行される。プロダクションを実行するとバッファの内容が変更され、システムの状態が変化する。従って ACT-R における認知は、プロダクションの逐次的実行として展開される。
認知科学において、「記号主義」的アプローチと「コネクショニズム」的アプローチがあり、ACT-R は一般に「記号主義」的であると見なされている。その実体（チャンクとプロダクション）は離散的で、その操作は統語論的であり、その表現の内容を意味論的に参照せず、計算に必要な属性だけを参照する。そのことは、チャンクのスロットとバッファの属性がプロダクションと一致する際に標準記号変数として機能することからも明らかである。
しかし、ACT-R 開発者を中心とする人々は ACT-R を脳の構成とその上で如何にして精神と呼ばれるものが生み出されるかを示すための汎用フレームワークであるとしている。しかし認知への記号的アプローチは精神を説明することを目標としているので、これはACT-Rを記号システムに分類することへの反論にはなっていない。
ACT-Rは脳の機能を解明しようとしているので記号システムではないという誤解は、2つの点で不正確である。第一に精神は脳の機能であるので、記号的であれそれ以外であれ、認知の計算モデルは全て脳機能を何らかの観点で特徴付けなければならない。第二に重要な一般化を行えるのは認知レベルのみなので、コネクショニズムのアプローチも含めあらゆるそういったアプローチは神経レベルではなく認知レベルで精神を特徴づけようとする。
さらなる誤解が生まれる背景には、ACT-Rのある属性の持つ連想的性質があり、例えばチャンクが互いに活性化しあったり、チャンクとプロダクションがそれらの選択に関連する量的属性を持っている点がある。それら属性のユニット選択、さらには計算における役割が何であれ、記号的であることの基本的性質には反しない。
ACT-R 開発者は、理論と実装を区別する重要性を強調する。
実際、実装のほとんどは理論を反映していない。例えば、実装では計算の都合のためだけに存在するモジュールもあり、それらは脳内の何かを表現しているわけではない（例えば、ある計算モジュールには擬似乱数発生器があって、ノイズ的パラメータを生成するのに使われている。また、別のモジュールにはデータ構造を名前で参照できるように名前をつける機能がある）。
また、実際の実装は研究者が理論を修正できるよう設計されていて、標準パラメータを変更したり、新たなモジュールを追加したり、既存のモジュールの動作を修正したりできる。
アンダーソンのカーネギーメロン大学内の研究室が公式の ACT-R のコードをリリースしているが、それ以外の実装も存在する。そのような実装としては、"jACT-R"（ピッツバーグ大学の Anthony M. Harrison がJavaで作成）や "Python ACT-R"（カナダのカールトン大学の Terrence C. Stewart、Robert L. West がPythonで作成）がある。
同様に、1993年版の理論に基づく本格的実装として ACT-RN があった（現在、開発は継続していない）。これらはいずれも完全に機能し、モデルをこれらの上で作成して実行できる。
このような実装上の自由度があるため、LISPベースでオリジナルから変更されていない公式バージョンを「バニラ ACT-R; Vanilla ACT-R」と称する。
ACT-R モデルは700以上の科学的出版物で扱われ、他の数多くの論文や出版物で引用されてきた。
ACT-Rの宣言的記憶システムは、当初から人間の記憶のモデル化に使われてきた。長年、数多くの既知の現象をうまくモデル化するために採用されている。例えば、関連情報の干渉によるファン効果、リスト形式におけると、逐次的想起などがある。
ACT-Rはいくつかの認知パラダイムにおける注意と制御のプロセスのモデル化にも使われてきた。例えば、ストループ課題、、、マルチタスキングなどがある。
ACT-Rを自然言語の理解と生成のいくつかの観点のモデル化に使っている研究者もいる。例えば、構文解析のモデル、言語理解のモデル、言語獲得のモデル、隠喩理解のモデルなどがある。
ACT-Rは、ハノイの塔や方程式のような複雑な課題を人間が解く過程を捕らえることにも使われてきた。また、自動車や航空機の操縦における人間の挙動のモデル化にも使われてきた。
知覚運動機能の統合により、ACT-Rは人間工学やマンマシンインタフェースのモデリングツールとしてもよく使われるようになってきた。例えば、様々な状況での自動車運転をモデル化したり、コンピュータアプリケーションにおけるメニュー選択や視覚の動きをモデル化したり、ウェブページの誘導のモデル化をしたりといった使われ方がある。
さらに最近では、イメージを想起したときの脳の活性化パターンの予測にもACT-Rが使われている。この分野での成功例としては、記憶検索における前頭前野と頭頂葉の活動の予測、前帯状皮質の制御活動のモデル化、経験に伴う脳活動の変化のモデル化などがある。
ACT-Rは という学習システムの基盤としてもよく採用されてきた。それらシステムでは、ACT-Rを使って内部に（児童など）学習者個人のモデルを構築し、各課題をその学習者がどの程度難しいと感じるかを推定して課題やカリキュラムをパーソナライズし、適切な助言も提供する。
Cognitive Tutor は Pittsburgh Science of Learning Center での学習および認知のモデリングの研究にも使われている。最も成功した応用として、アメリカ合衆国内の数千の学校で利用されている数学用 Cognitive Tutor がある。
ACT-Rはジョン・R・アンダーソンによって開発された人間の認知に関する一連のモデルの最終的な後継である。
その起源は、1973年、ジョン・R・アンダーソンとが共同開発した人間の記憶に関する HAM モデルであり、共同執筆された論文 "Human Associative Memory" で述べられている。その後、オリジナルの HAM モデルを拡張した最初の ACT 理論が生まれた。その中で初めて、宣言的記憶システムに手続き的記憶が追加され、後に実際の脳にもそれに相当するものがあると証明された。その後も理論は ACT* モデルとして拡張されている。
1980年代終盤、アンダーソンは Rational Analysis と名づけた認知に関する数学的アプローチの研究と普及に専念した。Rational Analysis の基本となる前提は、認知が最適順応的であることであり、認知機能の正確な推測は環境の統計的属性を反映していることである。その後アンダーソンはACT理論の開発に戻り、Rational Analysis を基盤となる計算を統合するのに使った。その重要性を示すため、Rational Analysis から "R" を取って ACT-R と名称が変更された 。
1993年、アンダーソンはカスケード相関学習アルゴリズムで有名なコネクショニズムの研究者 Christian Lebiere と出会った。彼らの共同研究は ACT-R 4.0 として結実した。ライス大学の Mike Byrne の尽力により、4.0 にはアーキテクチャに影響された知覚運動機能が追加された。これにより応用の幅が大きく広がった。
ACT-R 4.0 をリリース後、アンダーソンは彼の理論と神経との関連に興味を持つようになり、脳画像処理技術を使って人間の精神の根底にある働きを理解することを目標とするようになった。
脳内の活動の局所性を説明するため、理論は大幅な修正を必要とした。2002年の ACT-R 5.0 ではモジュールの概念が導入され、手続き的表現と宣言的表現の組み合わせによって既知の脳の仕組みをマッピングするようになった。さらに手続き的知識と宣言的知識の相互作用は新たに導入されたバッファ（アクティブな情報を一時的に保持する特別な構造）で実現されている。バッファは皮質の活動に対応すると考えられ、その後の研究によって皮質での活動とバッファ上の計算がうまく対応していることがわかった。
その後、理論に重大な変更は加えられていないが、新たな完全に書き換えられたコードが 2005年に ACT-R 6.0 としてリリースされた。ACT-R の言語としての機能が大幅に改善されている。
ACT-R 理論の長い開発と並行して、関連プロジェクトがいくつか生まれた。
最も重要なものとして PUPS プロダクションシステムがある。これはアンダーソン理論の初期の実装だが、後に破棄された。また、ニューラルネットワーク的実装の ACT-RN は主に Christian Lebiere によって開発された。
カーネギーメロン大学の Lynne Reder は 1990年代初期にと呼ばれる宣言的記憶のモデルを開発した。これは ACT-R の宣言的記憶システムと（前提に一部違いはあるが）大部分の機能が同等である。