unit 5: activation and context 5.1 (spreading activation)matumuro/web/tutorial/unit5.pdf5=$ 5+’ 4*...

52
Unit 5: 活性化と⽂脈 Activation and Context このユニットの⽬標は,宣⾔的記憶の想起の⽂脈を反映する活性化の式の要素を紹 介することです. 5.1 活性化拡散 (Spreading Activation) 最初に考慮する⽂脈要素は活性化拡散 (spreading activation) と呼ばれます.バッフ ァーのチャンクは想起を実⾏する⽂脈を提供します.それらのチャンクは,スロット の内容に基づき宣⾔的記憶のチャンクへ活性化を拡散します.これらのスロットの内 容は,我々が関連の強さ (strength of association) と呼ぶ,他のチャンクとの関係に基 づき⼀定量の活性化を拡散します.これは原則的に現在の⽂脈に関連するチャンクの 活性化を増加させます. 活性化拡散を含むチャンク i の活性化 Ai の式はこのように定義されます: " = " + && () )" ) + ( 過去の学習の指標, Bi: 前のユニットで⽰した実⾏の時間的近さと頻度を反映するベ ースレベルの活性化. 全てのバッファー: 総和の要素 k は,活性化の拡散が設定されているバッファーです. 活性化のソース: 総和の要素 j は,バッファーk にあるチャンクのスロットに含まれ るチャンクです. 重み付け: Wkj は,ソース j からバッファーk への活性化の量です. 関連の強さ: Sji は,ソース j からチャンク i への関連の強さです. ε: 前のユニットで⽰したノイズの値です. 活性化拡散の重み付け (Wki) は,バッファーの各スロットからの均等な分配がデフ ォルトとなっています.バッファーのソースの活性化の総量は Wk と呼ばれ,各バッ ファーで設定できます.Wkj の値は,nk をバッファーk のチャンクにおける,チャン クを保持しているスロットの数とする,Wk/nk となります. もし,チャンク j がチャンク i のスロットの値で,i が同じチャンクでないならば, 2 つのチャンク j i の間の関連の強さ Sji 0 です.セットには次の式が使われます: )" = − ln/ ) 3 S: 最⼤の関連の強さ (:mas パラメータで設定) fanj: j がスロットの値である宣⾔的記憶におけるチャンクの数に,それ⾃体への関連 としてチャンク j の分の 1 を⾜した数.[このユニットのモデルがそうであるように, いずれのチャンク i でも,チャンク j 1 つのスロットでしか出現していない単純な 場合を前提とします.より全般的な記述については,マニュアルかこのユニットのモ

Upload: others

Post on 08-Feb-2021

2 views

Category:

Documents


0 download

TRANSCRIPT

  • Unit 5: 活性化と⽂脈 Activation and Context このユニットの⽬標は,宣⾔的記憶の想起の⽂脈を反映する活性化の式の要素を紹介することです. 5.1 活性化拡散 (Spreading Activation) 最初に考慮する⽂脈要素は活性化拡散 (spreading activation) と呼ばれます.バッファーのチャンクは想起を実⾏する⽂脈を提供します.それらのチャンクは,スロットの内容に基づき宣⾔的記憶のチャンクへ活性化を拡散します.これらのスロットの内容は,我々が関連の強さ (strength of association) と呼ぶ,他のチャンクとの関係に基づき⼀定量の活性化を拡散します.これは原則的に現在の⽂脈に関連するチャンクの活性化を増加させます. 活性化拡散を含むチャンク iの活性化 Aiの式はこのように定義されます:

    𝐴" = 𝐵" +&&𝑊()𝑆)")

    + 𝜀(

    過去の学習の指標, Bi: 前のユニットで⽰した実⾏の時間的近さと頻度を反映するベースレベルの活性化. 全てのバッファー: 総和の要素 kは,活性化の拡散が設定されているバッファーです. 活性化のソース: 総和の要素 j は,バッファーk にあるチャンクのスロットに含まれるチャンクです. 重み付け: Wkjは,ソース jからバッファーkへの活性化の量です. 関連の強さ: Sjiは,ソース jからチャンク iへの関連の強さです. ε: 前のユニットで⽰したノイズの値です. 活性化拡散の重み付け (Wki) は,バッファーの各スロットからの均等な分配がデフォルトとなっています.バッファーのソースの活性化の総量はWkと呼ばれ,各バッファーで設定できます.Wkjの値は,nkをバッファーk のチャンクにおける,チャンクを保持しているスロットの数とする,Wk/nkとなります. もし,チャンク jがチャンク iのスロットの値で,iが同じチャンクでないならば,

    2つのチャンク jと iの間の関連の強さ Sjiは 0です.セットには次の式が使われます:

    𝑆)" = 𝑆 − ln/𝑓𝑎𝑛)3 S: 最⼤の関連の強さ (:masパラメータで設定) fanj: jがスロットの値である宣⾔的記憶におけるチャンクの数に,それ⾃体への関連としてチャンク jの分の 1を⾜した数.[このユニットのモデルがそうであるように,いずれのチャンク iでも,チャンク jが 1つのスロットでしか出現していない単純な場合を前提とします.より全般的な記述については,マニュアルかこのユニットのモ

  • デリングのテキストを⾒てください.] これはどのバッファーでも適⽤される活性化拡散の式ですが,デフォルトでは,イマジナルバッファーのみが活性化のソースとされています.Wimaginalの値は 1がデフォルトです (:imaginal-activation パラメータで設定します).他の全てのバッファー (Wbuffer) では 0がデフォルトですが,各バッファーの活性化拡散パラメータで 0ではない値に設定できます.ゴールバッファーではパラメータは:ga で,他の全てのバッファーでは:-activation (には実際のバッファーの名前を⼊れる.例えば,視覚バッファーなら:visual-activation) となります.デフォルトの場合では,活性化の式はこのように簡略化できます:

    𝐴" = 𝐵" +&𝑊)𝑆)")

    + 𝜀

    :imaginal-activation パラメータの値を反映する W を使って,Wj は n を現在のイマジナルバッファーのチャンクのスロットのチャンク数とした,W/nとなります. 以下は理解を助けるために,活性化拡散の働きを視覚的に表現した図です.想起がリクエストされた時,イマジナルチャンクがそのスロットに 2 つのチャンクを持っていて,宣⾔的記憶に,想起リクエストにあう,活性化が決定される必要のある 3つのチャンクがあるとします.

    それぞれのチャンクは,Biで記述されるベースレベルの活性化を持っています.そのため,3つのチャンクの活性化は次の通りです: 𝐴4 = 𝐵4 +𝑊4𝑆44 + 𝑊5𝑆54

  • 𝐴5 = 𝐵5 +𝑊4𝑆45 +𝑊5𝑆55 𝐴6 = 𝐵6 +𝑊4𝑆46 +𝑊5𝑆56 :imaginal-activationのデフォルトの値は 1.0なので,W1 = W2 = 1/2です. 活性化拡散を使う上で 2 つの注意があります.第⼀に,デフォルトでは,:mas パラメータが nilに設定されているため,活性化拡散は使えません.活性化拡散の計算を使えるようにするためには,:mas を正の値に設定する必要があります.もう 1 つは,推奨される:masの値はないということです.ただし,多くの場合で,Sjiが正の値となるように,:masは⼗分に⼤きな値にされます. 5.2 The Fan Effect

    Anderson (1974) は,参加者に次の 26のことを学習させる実験を⾏いました: 1. A hippie is in the park. 2. A hippie is in the church. 3. A hippie is in the bank. 4. A captain is in the park. 5. A captain is in the cave. 6. A debutante is in the bank. 7. A fireman is in the park. 8. A giant is in the beach. 9. A giant is in the dungeon. 10. A giant is in the castle. 11. A earl is in the castle. 12. A earl is in the forest. 13. A lawyer is in the store. ... これらのことを学習したのち,以下のようなことを⾒たかどうかを判断させました: A hippie is in the park. A hippie is in the cave. A lawyer is in the store. A lawyer is in the park. A debutante is in the bank. A debutante is in the cave. A captain is in the bank. 学習された⽂ (ターゲット target) と新しい⽂ (フォイル foil) を含みます. 学習する⽂での⼈物と場所は,1つ,2つ,または 3つの学習⽂で登場します.これは fanと呼ばれます.次の表は,実験におけるターゲットとフォイルの再認時間を,⼈物の fanと場所の fanごとに秒で⽰しています:

  • Targets Foils Location Person Fan Person Fan Fan 1 2 3 Mean 1 2 3 Mean 1 1.111 1.174 1.222 1.169 1.197 1.221 1.264 1.227 2 1.167 1.198 1.222 1.196 1.250 1.356 1.291 1.299 3 1.153 1.233 1.357 1.248 1.262 1.471 1.465 1.399 Mean 1.144 1.202 1.357 1.20 1.236 1.349 1.340 1.308 データの傾向として,fanが増加すると反応時間が増加し,フォイル⽂の⽅がターゲットより反応に時間がかかっています.これらの影響が,活性化拡散を使ってモデル化されるかを⽰していきます. 5.3 Fan Effect Model このユニットには,fan効果のための 2つのモデルがあります.ここでは,ユニット 5 の素材の fan-model.lisp ファイルに書かれたモデルを使います.対応する実験のコードファイルは,実験のテストフェーズを提⽰する fan.lisp と fan.py です (課題の学習の部分は単純化のために含まれていません.モデルは,すでに宣⾔的記憶に学習された⽂をエンコードしたチャンクを持っています).課題のこのバージョンは,アイテムを読み反応をするために,これまでチュートリアルで⾒てきた多くの課題のように,視覚とモーターモジュールを使っています.もう⼀⽅のバージョンのモデルと課題は違ったはたらきをしますが,同じ結果を算出します.どのようにしているかは,このユニットのコードドキュメントに記されています. このモデルを実⾏すると,テストフェーズを 1試⾏実⾏します.ターゲット⽂ “The

    lawyer is in the store” の 1試⾏を実⾏したモデルのトレースです: 0.000 VISION SET-BUFFER-CHUNK VISUAL-LOCATION VISUAL-LOCATION0 NIL 0.000 VISION visicon-update 0.000 PROCEDURAL CONFLICT-RESOLUTION 0.050 PROCEDURAL PRODUCTION-FIRED FIND-PERSON 0.050 PROCEDURAL CLEAR-BUFFER IMAGINAL 0.050 PROCEDURAL CLEAR-BUFFER VISUAL-LOCATION 0.050 VISION Find-location 0.050 VISION SET-BUFFER-CHUNK VISUAL-LOCATION VISUAL-LOCATION0 0.050 PROCEDURAL CONFLICT-RESOLUTION 0.100 PROCEDURAL PRODUCTION-FIRED ATTEND-VISUAL-LOCATION 0.100 PROCEDURAL CLEAR-BUFFER VISUAL-LOCATION 0.100 PROCEDURAL CLEAR-BUFFER VISUAL 0.100 PROCEDURAL CONFLICT-RESOLUTION 0.185 VISION Encoding-complete VISUAL-LOCATION0-1 NIL 0.185 VISION SET-BUFFER-CHUNK VISUAL TEXT0 0.185 PROCEDURAL CONFLICT-RESOLUTION 0.235 PROCEDURAL PRODUCTION-FIRED RETRIEVE-MEANING 0.235 PROCEDURAL CLEAR-BUFFER VISUAL

  • 0.235 PROCEDURAL CLEAR-BUFFER RETRIEVAL 0.235 DECLARATIVE start-retrieval 0.235 DECLARATIVE RETRIEVED-CHUNK LAWYER 0.235 DECLARATIVE SET-BUFFER-CHUNK RETRIEVAL LAWYER 0.235 PROCEDURAL CONFLICT-RESOLUTION 0.250 IMAGINAL SET-BUFFER-CHUNK IMAGINAL CHUNK0 0.250 PROCEDURAL CONFLICT-RESOLUTION 0.300 PROCEDURAL PRODUCTION-FIRED ENCODE-PERSON 0.300 PROCEDURAL CLEAR-BUFFER RETRIEVAL 0.300 PROCEDURAL CLEAR-BUFFER VISUAL-LOCATION 0.300 VISION Find-location 0.300 VISION SET-BUFFER-CHUNK VISUAL-LOCATION VISUAL-LOCATION1 0.300 PROCEDURAL CONFLICT-RESOLUTION 0.350 PROCEDURAL PRODUCTION-FIRED ATTEND-VISUAL-LOCATION 0.350 PROCEDURAL CLEAR-BUFFER VISUAL-LOCATION 0.350 PROCEDURAL CLEAR-BUFFER VISUAL 0.350 PROCEDURAL CONFLICT-RESOLUTION 0.435 VISION Encoding-complete VISUAL-LOCATION1-0 NIL 0.435 VISION SET-BUFFER-CHUNK VISUAL TEXT1 0.435 PROCEDURAL CONFLICT-RESOLUTION 0.485 PROCEDURAL PRODUCTION-FIRED RETRIEVE-MEANING 0.485 PROCEDURAL CLEAR-BUFFER VISUAL 0.485 PROCEDURAL CLEAR-BUFFER RETRIEVAL 0.485 DECLARATIVE start-retrieval 0.485 DECLARATIVE RETRIEVED-CHUNK STORE 0.485 DECLARATIVE SET-BUFFER-CHUNK RETRIEVAL STORE 0.485 PROCEDURAL CONFLICT-RESOLUTION 0.535 PROCEDURAL PRODUCTION-FIRED ENCODE-LOCATION 0.535 PROCEDURAL CLEAR-BUFFER RETRIEVAL 0.535 PROCEDURAL CONFLICT-RESOLUTION 0.585 PROCEDURAL PRODUCTION-FIRED RETRIEVE-FROM-LOCATION 0.585 PROCEDURAL CLEAR-BUFFER RETRIEVAL 0.585 DECLARATIVE start-retrieval 0.585 PROCEDURAL CONFLICT-RESOLUTION 0.839 DECLARATIVE RETRIEVED-CHUNK P13 0.839 DECLARATIVE SET-BUFFER-CHUNK RETRIEVAL P13 0.839 PROCEDURAL CONFLICT-RESOLUTION 0.889 PROCEDURAL PRODUCTION-FIRED YES 0.889 PROCEDURAL CLEAR-BUFFER IMAGINAL 0.889 PROCEDURAL CLEAR-BUFFER RETRIEVAL 0.889 PROCEDURAL CLEAR-BUFFER MANUAL 0.889 MOTOR PRESS-KEY KEY k 0.889 PROCEDURAL CONFLICT-RESOLUTION 1.039 PROCEDURAL CONFLICT-RESOLUTION 1.089 PROCEDURAL CONFLICT-RESOLUTION 1.099 PROCEDURAL CONFLICT-RESOLUTION 1.189 PROCEDURAL CONFLICT-RESOLUTION

  • 1.189 ------ Stopped because no events left to process モデルをテストフェーズの 1 試⾏実⾏するためには,Lisp バージョンでは fan-

    sentence関数,Pythonバージョンでは fanモジュールの sentence関数が使えます.4つのパラメータをとります.1つ⽬は,プローブ⽂の⼈物の⽂字列です.2つ⽬は,プローブ⽂の場所の⽂字列です.3 つ⽬は,正しい答えが true か false か (Lisp ではt/nil,Pythonでは True/False) です.最後の 1つは,⼈か場所のどちらの想起プロダクションが使⽤されるか (Lisp ではシンボル,Python では⽂字列) の選択です (詳細は後ほど).上記のトレースを算出する例です: ? (fan-sentence “lawyer” “store” t ‘person) >>> fan.sentence(‘lawyer’,’store’,True,’person’) データのフィットを⾏うために,Lispの fan-experiment関数か Pythonの fanモジュールの experiment 関数を使い,モデルを全条件にわたり実⾏することができます.これらの関数はパラメータをとらず,反応時間と回答が正しかったかどうかの表とともにデータへのフィットを出⼒します.[注: 実験全体の実⾏前に,トレースをオフにして実⾏を早くするために,モデルの:vパラメータを nilにして,再読み込みをしましょう]: CORRELATION: 0.864 MEAN DEVIATION: 0.053 TARGETS: Person fan Location 1 2 3 fan 1 1.099 (T ) 1.157 (T ) 1.205 (T ) 2 1.157 (T ) 1.227 (T ) 1.286 (T ) 3 1.205 (T ) 1.286 (T ) 1.354 (T ) FOILS: 1 1.245 (T ) 1.290 (T ) 1.328 (T ) 2 1.290 (T ) 1.335 (T ) 1.373 (T ) 3 1.328 (T ) 1.373 (T ) 1.411 (T )

    2つの ACT-Rのパラメータがデータにフィットさせるために推定されています.前のユニットの想起時間の式の F に当たる遅延要因 (:lf) が.63 に,上記の Sjiの式のパラメータ S に当たる最⼤の関連の強さ (:mas) が 1.6 に設定されています.イマジナルバッファーにおける拡散する活性化の値はデフォルトの 1.0 に設定されています.このモデルが課題をどのように実⾏するか,活性化拡散がデータにどのように影響を及ぼすかを⾒ていきます. 5.3.1 モデルの表象 (Model Representations)

  • 学習⽂は,このようにチャンクにエンコードされ,モデルの宣⾔的記憶に格納されています: (add-dm (p1 ISA comprehend-sentence relation in arg1 hippie arg2 park) (p2 ISA comprehend-sentence relation in arg1 hippie arg2 church) (p3 ISA comprehend-sentence relation in arg1 hippie arg2 bank) (p4 ISA comprehend-sentence relation in arg1 captain arg2 park) (p5 ISA comprehend-sentence relation in arg1 captain arg2 cave) (p6 ISA comprehend-sentence relation in arg1 debutante arg2 bank) (p7 ISA comprehend-sentence relation in arg1 fireman arg2 park) (p8 ISA comprehend-sentence relation in arg1 giant arg2 beach) (p9 ISA comprehend-sentence relation in arg1 giant arg2 castle) (p10 ISA comprehend-sentence relation in arg1 giant arg2 dungeon) (p11 ISA comprehend-sentence relation in arg1 earl arg2 castle) (p12 ISA comprehend-sentence relation in arg1 earl arg2 forest) (p13 ISA comprehend-sentence relation in arg1 lawyer arg2 store) ...) これらは,実験の学習部分のアイテムを概念間の関係という形で表しています.例えば,p13は⽂ “The lawyer is in the store” がエンコードされています. ディスプレイから読み取られた⽂字と概念を結びつける意味チャンクもあります.例えば,上記の p13チャンクに関連して:

    (lawyer ISA meaning word "lawyer") (store ISA meaning word "store") これらの意味チャンクのベースレベルの活性化は,よく使われていて想起に失敗しないということを反映して,10に設定されています.しかし,comprehend- sentenceチャンクの活性化は,実験の間に学習された⽐較的新しい知識であるということを反映し,デフォルトの 0のままです. 5.3.2 知覚的エンコード (Perceptual Encoding) このセクションでは,課題の知覚的な部分を実⾏するプロダクションについて軽く⽰します.これまでのモデルでなされたステップと類似しているので,馴染み深いです.⼀つの⼩さな違いは,このモデルは,ゴールに明⽰的に状況を保持する代わりに (ゴールバッファーにチャンクを格納することはありません),プロダクションが発⽕する順番の制約として,バッファーやモジュールの状態に頼るということです. モデルには,課題を実⾏するために⼈物と場所だけが提⽰されます.もし,モデルが⽂の全ての語を読んだならば,実験データに⼗分に会うほど素早く反応することは難しいでしょう.実際,アイトラッカーを使ってなされた fan効果の研究では,参加者は,テスト試⾏では⽂の中で⼈物と場所の 2 つの単語しか注視していないことが確かめられています.そのため,モデルを単純にするため,重要な語のみがディスプ

  • レイに⽰されます.語を読み,エンコードするために,モデルは 4ステップのプロセスをたどります. 最初に発⽕するプロダクションは,視覚−位置バッファーへ⼈物の語を⾒つけるようリクエストをし,イマジナルモジュールがスクリーンから読まれた⽂を保持する新しいチャンクを作るようにリクエストします.: (P find-person

    ?visual-location> buffer unrequested

    ?imaginal> state free

    ==> +imaginal> +visual-location>

    ISA visual-location screen-x lowest)

    このプロダクションの LHS における最初の問い合わせはこれまでのチュートリアルでは使われていません.視覚−位置バッファーがリクエストされたのではないチャンクを保持している確認は,新しい表⽰が提⽰されたことをテストする⽅法です.もし,スクリーンが変化したときに,バッファーが空であれば,バッファースタッフィングメカニズムがバッファーに⾃動的にチャンクを格納します.格納されたチャンクはリクエストの結果ではないため,unrequested のタグがつけられます.そのため,このプロダクションは,スクリーンが変化したとき,もし視覚−位置バッファーが空でイマジナルバッファーが busyでなければ,いつでも適合します. 次のプロダクションは,視覚−位置のハーベストをし,そこへ注意を写すリクエストをするために発⽕します: (P attend-visual-location

    =visual-location> ?visual-location>

    buffer requested ?visual>

    state free ==>

    +visual> cmd move-attention screen-pos =visual-location)

    それから,視覚バッファーのチャンクはハーベストされ,語の意味を表象するチャンクの想起リクエストがなされます: (P retrieve-meaning

    =visual>

  • ISA visual-object value =word

    ==> +retrieval>

    ISA meaning word =word)

    最後に,想起されたチャンクがハーベストされ,意味チャンクがイマジナルバッファーのチャンクのスロットに格納されます: (P encode-person

    =retrieval> =imaginal>

    ISA comprehend-sentence arg1 nil

    ==> =imaginal>

    arg1 =retrieval +visual-location>

    ISA visual-location screen-x highest)

    このプロダクションも,語の位置を探す視覚−位置リクエストを⾏い,encode-

    person の代わりに encode-location プロダクションの発⽕で終わる,位置に注意を向けエンコードをする同様のプロダクション発⽕の流れをたどります. 5.3.3 反応の決定 (Determining the Response) エンコードの後,⽂章 “The lawyer is in the store.” に対するイマジナルチャンクは以下のようになります: IMAGINAL: CHUNK0-0 CHUNK0-0

    ARG1 LAWYER ARG2 STORE

    この時点で,学習⽂を想起するために,これら 2つのプロダクションの 1つが選択され,発⽕します: (P retrieve-from-person

    =imaginal> ISA comprehend-sentence arg1 =person arg2 =location

    ?retrieval>

  • state free buffer empty

    ==> =imaginal> +retrieval>

    ISA comprehend-sentence arg1 =person)

    (P retrieve-from-location

    =imaginal> ISA comprehend-sentence arg1 =person arg2 =location

    ?retrieval> state free buffer empty

    ==> =imaginal> +retrieval>

    ISA comprehend-sentence arg2 =location)

    課題全体のモデルは,競合するこれら 2つのプロダクションを持ち,どちらか⼀⽅がランダムに選択されます.しかし,デモンストレーションとして単純化するため,この課題で実⾏される実験コードでは,各試⾏に対しそれぞれ⼀⽅が強制的に選択されます.データは,それぞれ retrieve-from-personと retrieve-from- location を使⽤した2 回の試⾏の実⾏で平均されます. これらのプロダクションが,プルーブの⽂章に含まれるうちの 1つのアイテムに基づき,学習されたチャンクの想起をリクエストしているという点は重要です.そうすることにより,フォイルイベントでも,失敗が起こる代わりに,学習⽂の 1つが確実に想起されます.もしモデルが想起の失敗をフォイルの検出として使うならば,失敗にかかる時間は想起の閾値にのみ依存するため,フォイルプルーブにおける反応時間の違いがなくなってしまいます.しかし,データは明らかにアイテムの fanが,ターゲットとフォイルの両⽅の反応時間に影響することを⽰しています. これらのプロダクションのうち 1つが発⽕したのち,学習試⾏を表象するチャンクが想起され,反応をするために次のプロダクションのいずれか 1つが発⽕します: (P yes

    =imaginal> ISA comprehend-sentence arg1 =person arg2 =location

    =retrieval> ISA comprehend-sentence arg1 =person

  • arg2 =location ?manual>

    state free ==>

    +manual> cmd press-key key "k")

    (P mismatch-person

    =imaginal> ISA comprehend-sentence arg1 =person arg2 =location

    =retrieval> ISA comprehend-sentence

    - arg1 =person ?manual>

    state free ==>

    +manual> ISA press-key key "d")

    (P mismatch-location

    =imaginal> ISA comprehend-sentence arg1 =person arg2 =location

    =retrieval> ISA comprehend-sentence

    - arg2 =location ?manual>

    state free ==>

    +manual> cmd press-key key "d")

    もし,想起された⽂章がプルーブと⼀致するならば,モデルは true 反応 “k” をします.もし,どちらかの要素が⼀致しなければ,モデルは “d” で反応をします. 5.4 Fan モデルにおける重要な学習チャンクの想起の分析 (Analyzing the Retrieval of the Critical Study Chunk in the Fan model) この課題のためにモデルが⾏う知覚とエンコードの⾏動には.585秒かかります.そして,comprehend-sentence チャンクを想起した後の反応には.260 秒かかります.こ

  • れらの時間は全試⾏で⼀定です.条件毎の違いは,学習された⽂章の想起にかかる時間の結果です.前のユニットに記した通り,チャンク iの想起にかかる時間はその活性化に基づき,次の式で決定されます:

    𝑇𝑖𝑚𝑒" = 𝐹𝑒 そのため,学習アイテムを表象するチャンクの活性化の違いが異なる試⾏への異なる反応時間を⽣み出します. 想起の時 (retrieve-from-person か retrieve-from-location が発⽕した後) のイマジナルバッファーのチャンクはこのようになっています: IMAGINAL: CHUNK0-0 CHUNK0-0

    ARG1 person ARG2 location

    personと locationは提⽰された特定のプローブの意味を表象するチャンクです. 想起リクエストは⼈物に関しては以下の通り:

    +retrieval>

    arg1 person 場所に関しては以下の通りです:

    +retrieval> arg2 location

    どちらのプロダクションが想起を実⾏するために選択されるかによります. バッファーの活性化のソースはどちらの想起リクエストに対しても同じであるため,活性化拡散は 2つの場合で違いがないことは重要です.では,なぜこの 2つのが必要なのでしょう?それは下の詳細な例で記されます. 5.4.1 バッファーのチャンクに関する覚書と:dcnn パラメータ (A note on chunks in buffers and the :dcnn parameter) これまで触れられていなかったこととして,バッファーはチャンクのコピーを保持しているということがあります.このチャンクの名前が使⽤されるとき (encode-person や encode-locationプロダクションの想起で使われます),元のチャンクの名前と⼀致しないという副作⽤があります.つまり,encode-person プロダクションが発⽕し,イマジナルバッファーで変更が加えられた後は,イマジナルバッファーのチャンクはこのようになります: CHUNK0-0

    ARG1 LAWYER-0

  • なぜなら,想起バッファーにある lawyer チャンクのコピーである lawyer-0 という名前のチャンクが arg1スロットに格納されるからです. 想起バッファーにある間は lawyer-0 チャンクがモデルに変更されることはありません.そして,想起バッファーはこのプロダクションによりクリアされます.そのため,クリアが起こると,lawyer-0チャンクは宣⾔的記憶に統合されます.この時,lawyerチャンクと完全に⼀致するため,これら 2つのチャンクは統合され,lawyer-0と lawyerという名前は同じチャンクを参照します.両⽅の名前が別のチャンクのスロットに現れてはいますが (イマジナルバッファーでは lawyer-0). 前のユニットで論じられていた通り,:ncnarパラメータを使って,システムにそのような参照の標準化をさせ,システムのデバッグを簡単にすることができます.もし,:ncnarが使われていれば (nilでない),:dcnn (dynamic chunk name normalizing) パラメータの設定が,いつこれらの名前が修正されるかを決めます.もし,:dcnn がデフォルトの値である tに設定されていれば,モデルが実⾏されている間,これらの変更はすぐになされます.このモデルは:ncarと:dcnnパラメータをデフォルトの値である tにしてあるため,lawyer-0 が(想起バッファーがクリアされて) lawyerチャンクと統合されると,イマジナルバッファーのチャンクはこのように変更されます: CHUNK0-0

    ARG1 LAWYER もし,:dcnnが nilに設定されていれば,モデルが実⾏を⽌めるまで,arg1スロットは値 lawyer-0 を保持し続けます.モデルが実⾏を⽌めた時,:ncnar パラメータが nil以外の設定であれば chunk0-0 が更新されます.どちらの名前がスロットに表⽰されているかに関わらず,これらのチャンクが統合されれば,特定のスロットの値が標準化されているかどうかに関わらず,同じチャンクが参照されるということは重要です. 多くの場合,:dcnn と:ncnar は,モデルのデバッグを簡単にするために t に設定されます.しかし,最終的には統合されるとしても,直接的にバッファーからチャンクの参照を辿ることができるため,動的な更新をしないことが役に⽴つ時もあります.このユニットでは,デモンストレーションのモデルは:dcnn と:ncnar をデフォルトのtに設定しています.そのため,モデルが実⾏されるとスロットの値は動的に変更されます. 5.4.2 ⼀回のターゲット試⾏ (A simple target trial) これから⾒ていく最初のケースは,ターゲット⽂ “The lawyer is in the store” です.実験ではこの⽂の⼈物と場所の両⽅が 1つの fanを持ち,学習⽂で⼀回ずつ出現します.

    (上で述べた) 重要な想起のタイミングでは,イマジナルバッファーのチャンクはこのようになっています:

  • CHUNK0-0 ARG1 LAWYER ARG2 STORE

    では,retrieve-from-personプロダクションの発⽕による想起の結果を⾒ていきましょう.活性化トレースパラメータ (:act) を tにセットすると,以下のトレースが得られます.想起が⾏われた時,トレースに追加の情報が表⽰されるようにします.照合がなされた全てのチャンクと,適合したそれぞれのチャンクの活性化計算の詳細を⽰しています.想起が起きた時のモデルのトレースです: 0.585 DECLARATIVE start-retrieval Chunk P13 matches Chunk P12 does not match Chunk P11 does not match Chunk P10 does not match Chunk P9 does not match Chunk P8 does not match Chunk P7 does not match Chunk P6 does not match Chunk P5 does not match Chunk P4 does not match Chunk P3 does not match Chunk P2 does not match Chunk P1 does not match Computing activation for chunk P13 Computing base-level Starting with blc: 0.0 Total base-level: 0.0 Computing activation spreading from buffers

    Spreading 1.0 from buffer IMAGINAL chunk CHUNK0-0 sources of activation are: (STORE LAWYER) Spreading activation 0.45342642 from source STORE level 0.5 times Sji 0.90685284 Spreading activation 0.45342642 from source LAWYER level 0.5 times Sji 0.90685284

    Total spreading activation: 0.90685284 Adding transient noise 0.0 Adding permanent noise 0.0 Chunk P13 has an activation of: 0.90685284 Chunk P13 has the current best activation 0.90685284 Chunk P13 with activation 0.90685284 is the best 0.585 PROCEDURAL CONFLICT-RESOLUTION 0.839 DECLARATIVE RETRIEVED-CHUNK P13 このケースでは,リクエストに適合するチャンクは chunk 13 だけです.これは,

    retrieve-from-location プロダクションが発⽕しても,同じチャンクのみがリクエストに適合し,さらに,発⽕するプロダクションにかかわらず活性化のソースも同じため,全く同じようになります.

  • パラメータ F を.63,パラメータ S を 1.6,comprehend-sentence チャンクのベースレベルの活性化を 0に設定していることを念頭においてください. このトレースを⾒ると,storeから p13,lawyerから p13への Sjiの値がともに約.907であることがわかります.これはこの式に基づきます:

    𝑆)" = 𝑆 − ln/𝑓𝑎𝑛)3

    Sの値はデータに合うように 1.6に⾒積もられました.スロットの値として p13チャンクのみで 1回出現し,それ⾃⾝の参照が 1⾜されるため,store, lawyerチャンクの fanはどちらも 2です (これは実験では 1であった fanと同じではありません).式に代⼊するとこうなります:

    𝑆(@ABCD)(F46) = 𝑆(GHIJDC)(F46) = 1.6 − ln(2) = 0.90685284 イマジナルバッファーの活性化のソースは 1.0に設定され,2つのソースチャンク

    があるため,値 Wj (活性化トレースではレベルと呼ばれています) は 0.5です.そのため,チャンク p13の活性化は以下の通りです:

    𝐴" = 𝐵" +&𝑊)𝑆)")

    𝐴F46 = 0 + (. 5 ∗ .907) + (. 5 ∗ .907) = .907 最後に,想起が完了するのにかかる時間 (start-retrievalから retrieved-chunkまでの時間) は.254 (.839-.585) 秒です.次のように計算されます:

    𝑇𝑖𝑚𝑒" = 𝐹𝑒 𝑇𝑖𝑚𝑒F46 = .63𝑒

  • Starting with blc: 0.0 Total base-level: 0.0 Computing activation spreading from buffers

    Spreading 1.0 from buffer IMAGINAL chunk CHUNK0-0 sources of activation are: (BANK HIPPIE) Spreading activation 0.25069386 from source BANK level 0.5 times Sji 0.5013877 Spreading activation 0.10685283 from source HIPPIE level 0.5 times Sji 0.21370566

    Total spreading activation: 0.3575467 Adding transient noise 0.0 Adding permanent noise 0.0 Chunk P3 has an activation of: 0.3575467 Chunk P3 has the current best activation 0.3575467 Computing activation for chunk P2 Computing base-level Starting with blc: 0.0 Total base-level: 0.0 Computing activation spreading from buffers

    Spreading 1.0 from buffer IMAGINAL chunk CHUNK0-0 sources of activation are: (BANK HIPPIE) Spreading activation 0.0 from source BANK level 0.5 times Sji 0.0 Spreading activation 0.10685283 from source HIPPIE level 0.5 times Sji 0.21370566

    Total spreading activation: 0.10685283 Adding transient noise 0.0 Adding permanent noise 0.0 Chunk P2 has an activation of: 0.10685283 Computing activation for chunk P1 Computing base-level Starting with blc: 0.0 Total base-level: 0.0 Computing activation spreading from buffers

    Spreading 1.0 from buffer IMAGINAL chunk CHUNK0-0 sources of activation are: (BANK HIPPIE) Spreading activation 0.0 from source BANK level 0.5 times Sji 0.0 Spreading activation 0.10685283 from source HIPPIE level 0.5 times Sji 0.21370566

    Total spreading activation: 0.10685283 Adding transient noise 0.0 Adding permanent noise 0.0 Chunk P1 has an activation of: 0.10685283 Chunk P3 with activation 0.3575467 is the best

    arg1 の値が hippie であるチャンクというリクエストにあう 3 つのチャンクがあります.それぞれが hippieから拡散される活性化を同じ量だけ受け取ります.hippieは3つのチャンクのメンバーであるため,チャンクの fanは 4で,S(hippie) の値はこうなります:

    𝑆(Z"FF"D) = 1.6 − ln(4) = 0.21370566

  • チャンク p3は,arg2にチャンク bankも含むので,そこからもソースの拡散を受け取ります. 同じプルーブ⽂で retrieve-from-locationが発⽕した場合も⾒てみましょう:

    Computing activation for chunk P6 Computing base-level Starting with blc: 0.0 Total base-level: 0.0 Computing activation spreading from buffers

    Spreading 1.0 from buffer IMAGINAL chunk CHUNK0-0 sources of activation are: (BANK HIPPIE) Spreading activation 0.25069386 from source BANK level 0.5 times Sji 0.5013877 Spreading activation 0.0 from source HIPPIE level 0.5 times Sji 0.0

    Total spreading activation: 0.25069386 Adding transient noise 0.0 Adding permanent noise 0.0 Chunk P6 has an activation of: 0.25069386 Chunk P6 has the current best activation 0.25069386 Computing activation for chunk P3 Computing base-level Starting with blc: 0.0 Total base-level: 0.0 Computing activation spreading from buffers

    Spreading 1.0 from buffer IMAGINAL chunk CHUNK0-0 sources of activation are: (BANK HIPPIE) Spreading activation 0.25069386 from source BANK level 0.5 times Sji 0.5013877 Spreading activation 0.10685283 from source HIPPIE level 0.5 times Sji 0.21370566

    Total spreading activation: 0.3575467 Adding transient noise 0.0 Adding permanent noise 0.0 Chunk P3 has an activation of: 0.3575467 Chunk P3 is now the current best with activation 0.3575467 Chunk P3 with activation 0.3575467 is the best この場合は,arg2の値に bankを持つというリクエストにあうチャンクは 2つしかありません. 想起のリクエストにどちらのプロダクションが発⽕したかに関わらず,両⽅のソース (hippie と bank) から活性化拡散を受け取るため,チャンク p3 が最も⾼い活性化を持ちます.そのため,retrieve-from-person や retrieve-from-location による想起リクエストにあう 2つ以上のチャンクがあったとしても,活性化が最⼤となるため,常に正しい学習⽂が想起され,どちらの場合でも活性化の値は同じです.

    p3へ拡散されるソースの活性化が少ないため,チャンク p3の活性化が前の例のチャンク p13の活性化より⼩さいことに気づくでしょう.これは,この場合のソースがより多くの fanを持つので Sjiが⼩さかったためです.活性化が⼩さいので,このよう

  • な事実の想起には時間がかかります.その結果,データにおいて fanにより異なる反応時間が得られます. 5.4.4 フォイル試⾏ (A foil trial) 続いて,フォイル試⾏を⾒ていきます.フォイルプルーブ “The giant is in the bank” は前のセクションで⾒たターゲットに似ています.⼈物は 3つの fanを持ち,場所は2 つの fan を持ちます.しかし,今回は⼀致する学習⽂はありません.retrieve-from-personが選択された時のトレースの重要な部分です: Computing activation for chunk P10 Computing base-level Starting with blc: 0.0 Total base-level: 0.0 Computing activation spreading from buffers

    Spreading 1.0 from buffer IMAGINAL chunk CHUNK0-0 sources of activation are: (BANK GIANT) Spreading activation 0.0 from source BANK level 0.5 times Sji 0.0 Spreading activation 0.10685283 from source GIANT level 0.5 times Sji 0.21370566

    Total spreading activation: 0.10685283 Adding transient noise 0.0 Adding permanent noise 0.0 Chunk P10 has an activation of: 0.10685283 Chunk P10 has the current best activation 0.10685283 Computing activation for chunk P9 Computing base-level Starting with blc: 0.0 Total base-level: 0.0 Computing activation spreading from buffers

    Spreading 1.0 from buffer IMAGINAL chunk CHUNK0-0 sources of activation are: (BANK GIANT) Spreading activation 0.0 from source BANK level 0.5 times Sji 0.0 Spreading activation 0.10685283 from source GIANT level 0.5 times Sji 0.21370566

    Total spreading activation: 0.10685283 Adding transient noise 0.0 Adding permanent noise 0.0 Chunk P9 has an activation of: 0.10685283 Chunk P9 matches the current best activation 0.10685283 Computing activation for chunk P8 Computing base-level Starting with blc: 0.0 Total base-level: 0.0 Computing activation spreading from buffers

    Spreading 1.0 from buffer IMAGINAL chunk CHUNK0-0 sources of activation are: (BANK GIANT) Spreading activation 0.0 from source BANK level 0.5 times Sji 0.0

  • Spreading activation 0.10685283 from source GIANT level 0.5 times Sji 0.21370566 Total spreading activation: 0.10685283 Adding transient noise 0.0 Adding permanent noise 0.0 Chunk P8 has an activation of: 0.10685283 Chunk P8 matches the current best activation 0.10685283 Chunk P10 chosen among the chunks with activation 0.10685283

    arg1の値が giantであるチャンクというリクエストに⼀致する 3つのチャンクがあり,それぞれ giantから拡散される活性化を同じ量だけ受け取ります.しかし,いずれも arg2の値は bankではありません.そのため,活性化拡散を 1つのソースからしか受け取らず,活性化の値は対応するターゲットの⽂章よりも⼩さくなります.活性化が⼩さいため,想起にかかる時間は⻑くなります.その結果フォイル試⾏はターゲット試⾏よりも時間がかかります. ただし,このセクションを終える前に,このフォイルで retrieve-from-locationが発⽕した時のトレースを⾒てみましょう: Computing activation for chunk P6 Computing base-level Starting with blc: 0.0 Total base-level: 0.0 Computing activation spreading from buffers

    Spreading 1.0 from buffer IMAGINAL chunk CHUNK0-0 sources of activation are: (BANK GIANT) Spreading activation 0.25069386 from source BANK level 0.5 times Sji 0.5013877 Spreading activation 0.0 from source GIANT level 0.5 times Sji 0.0

    Total spreading activation: 0.25069386 Adding transient noise 0.0 Adding permanent noise 0.0 Chunk P6 has an activation of: 0.25069386 Chunk P6 has the current best activation 0.25069386 Computing activation for chunk P3 Computing base-level Starting with blc: 0.0 Total base-level: 0.0 Computing activation spreading from buffers

    Spreading 1.0 from buffer IMAGINAL chunk CHUNK0-0 sources of activation are: (BANK GIANT) Spreading activation 0.25069386 from source BANK level 0.5 times Sji 0.5013877 Spreading activation 0.0 from source GIANT level 0.5 times Sji 0.0

    Total spreading activation: 0.25069386 Adding transient noise 0.0 Adding permanent noise 0.0 Chunk P3 has an activation of: 0.25069386 Chunk P3 matches the current best activation 0.25069386 Chunk P3 chosen among the chunks with activation 0.25069386

  • この場合,arg2の値が bankであるチャンクというリクエストに⼀致するチャンクは 2つしかありません.ここでも,想起されたチャンクの活性化は対応するターゲット試⾏より低いです.しかし,retrieve-from-personが発⽕した時と同じではありません.これが,なぜモデルがこれらのプロダクションのそれそれが,各プローブで発⽕するように実⾏し,平均した結果を⽰しているかの理由です.こうしなければ,フォイルのデータは,学習したチャンクを想起するために使われたアイテム (person かlocation) の fanの効果だけを⽰します. 5.5 部分的⼀致 (Partial Matching) ここまで,モデルは常に想起リクエストに⼀致したチャンクを想起するか,想起に失敗するかでした.ここで,再⽣のエラーのモデリングについてより詳細にみていきます.起こりうる 2種類のエラーがあります.1つは,間違ったアイテムが再⽣されるコミッション (commission) エラーです.これは間違ったチャンクの活性化が正しいチャンクの活性化より⼤きい時に起こります.2つ⽬は,何も再⽣されないオミッション (omission) エラーです.これは,どのチャンクの活性化も想起の閾値を超えなかった時に起こります. ここから fanモデルのプロダクションを続けてみていきます.特に,このプロダクションはチャンクの想起をリクエストしています: (P retrieve-from-person

    =imaginal> ISA comprehend-sentence arg1 =person arg2 =location

    ?retrieval> state free buffer empty

    ==> =imaginal> +retrieval>

    ISA comprehend-sentence arg1 =person)

    ここでは,学習された特定の⼈物 (=person に束縛された値) を持つチャンクを想起しようとしています.もし,=personがチャンク giantであれば,この想起リクエストは arg1スロットが giantのチャンクを探します.上で⽰したように,モデルには学習セットのうち,リクエストに⼀致する 3つのチャンクがあり,そのうちの 1つが想起されます. しかし,⼈物 giantを持つ学習⽂がないけれど,プルーブの giantの場所に⼈物 titanを持つ⽂章がある,つまり,学習⽂ “The titan is in the bank” があり,テスト⽂が “The giant is in the bank” である場合を考えてみましょう.この状況では,giantと titanと

  • いう語の類似性のため,ある⼈間の参加者はプルーブを間違って学習したと分類することが予測されるでしょう.しかし,現在のモデルはこのようなエラーを起こしません. このようなエラーを⽣み出すには,部分的な⼀致 (partial matching) のメカニズムが必要です.(:mpを数値に設定することにより) 部分的な⼀致が可能となっているとき,想起リクエストのチャンクと宣⾔的記憶のチャンクのスロットのチャンクの間の類似性が考慮されます.最も活性化の⾼いチャンクが想起されますが,部分的な⼀致を可能とすると,チャンクが想起リクエストで指定された通りの値をスロットに持っていなくても想起される可能性があります. 活性化の式に部分的な⼀致の要素を加えると,チャンク iの活性化 Aiは次のように定義されます:

    𝐴" = 𝐵" +&&𝑊()𝑆)")(

    +&𝑃𝑀G"G

    + 𝜀

    Bi, Wkj, Sji, そして εについてはすでに記しています.新しい項は部分的⼀致の要素です.

    指定要素 l (Specification elements l): 想起で指定されているスロットの値の全ての適合の累積が計算されます.

    適合スケール P (Match Scale, P): スロット lにおける類似性への重み付けの量を反映します.全てのスロットで⼀定で,:mpパラメータで設定します (しばしばミスマッチペナルティ (mismatch penalty) と⾔われます).

    適合類似度 Mli (Match Similarities, Mli): 想起の指定における値 lとチャンク iにおける対応するスロットの値の類似度です. 類似性の値Mliは,モデラーにより定義された尺度に合わせて設定されます.尺度の幅は最⼤類似 (パラメータ:ms を使って設定) と最⼤差異 (パラメータ:md を使って設定) で設定されます.デフォルトでは,:msは 0,:mdは-1.0です.対象とそれ⾃体との類似性は⾃動的に最⼤類似に設定されます.値の異なるペアの類似性はデフォルトで最⼤差異です.最⼤類似のデフォルトは 0なので,実際には類似性の値は負の値です.もし,スロットの値がリクエストと⼀致するなら,活性化へのペナルティはありませんが,⼀致しない場合に活性化が減少します.部分的⼀致が使われている例を⽰すために 2つのモデルを⾒ていきます. 5.6 Grouped Recall 最初のモデルは,ユニット 5 の素材の gropued-model.lisp に記されている groupedと呼ばれるモデルです.課題は各⾔語の groupedファイルに実装されています.これは,複雑な再⽣実験の⼤きなモデルに基づく grouped recall 課題の単純なモデル例で

  • す.fanモデルのように,学習項⽬はすでにモデルに実装されているため,項⽬の学習とエンコーデはモデル化されていません.さらに,このモデルの反応時間とエラーはデータにフィットされていません.このモデル例は,部分的⼀致のメカニズムとコミッション,オミッションエラーがどのように引き起こされるかを⽰すためにデザインされています.モデルはデータにフィットさせておらず,研究の対象となっているメカニズムは ACT-Rの知覚,モーターモジュールによるものではないため,それらを使⽤せず,ゴールバッファーのチャンクのみが,課題の状態と問題の表象を保持するために使われています.ACT-Rの認知システムのみを使うこのテクニックは,タイミングが重要ではない課題や,モデルの⽬的を達成するために “現実世界” とのインタラクションを考慮する必要がない他の状況をモデル化する際に役に⽴ちます.このユニットの実験の説明に,このモデルと知覚とモーターモジュールを使わない fanモデルの別バージョンのモデルがどのように課題を遂⾏するかの詳細が⽰されています. このモデルのパラメータの設定を確認すると,⼀時的なノイズのパラメータ s が

    0.15,想起の閾値が-0.5となっているのがわかるでしょう.また,デモを簡易化するため,:mas に値を与えないことにより,上記の活性化拡散が起こらないようにしてあります.このモデルは,3つの要素のグループとしてエンコードされる 9つの項⽬のリストを再⽣するようにしてあります.再⽣されるリストは(123) (456) (789)です.モデルを実⾏するためには,Lispでは grouped-recall 関数,Pythonでは groupモジュールの recall関数を呼び出します.課題を⾏なっているモデルのトレースが表⽰され,モデルの反応のリストが返されます.モデルの:seed パラメータが設定されているため,常に同じモデルの再⽣系列 1,2,3,4,6,5,7,8 という結果を得ます (もっと調べたい場合は,:seedの設定を削除して異なる結果を⽣成することもできます).リストの再⽣では 2つのエラーが起きています.5と 6の再⽣の順番を間違え,最後のアイテム9を再⽣するのを失敗しています.これらのエラーがどのように起こったかの詳細を⾒ていきます. 5.6.1 コミッションエラー (Error of Commission) このモデルで活性化のトレースをオンにすれば,起こっている活性化の計算の詳細を⾒ることができます.以下は,モデルが,2つめのグループの 2番⽬に,正しいアイテムの 5 に代わって 6 を再⽣する際の,コミッションエラーの活性化のトレースの⼀部です.本来想起されるべきアイテム 5 と代わりに想起されたアイテム 6 の⽐較が重要です: Computing activation for chunk ITEM5 Computing base-level Starting with blc: 0.0 Total base-level: 0.0 Computing partial matching component

    comparing slot GROUP Requested: = GROUP2 Chunk's slot value: GROUP2 similarity: 0.0

  • effective similarity value is 0.0 comparing slot POSITION Requested: = SECOND Chunk's slot value: SECOND similarity: 0.0

    effective similarity value is 0.0 Total similarity score 0.0 Adding transient noise -0.59634924 Adding permanent noise 0.0 Chunk ITEM5 has an activation of: -0.59634924 Chunk ITEM5 has the current best activation -0.59634924 Computing activation for chunk ITEM6 Computing base-level Starting with blc: 0.0 Total base-level: 0.0 Computing partial matching component

    comparing slot GROUP Requested: = GROUP2 Chunk's slot value: GROUP2 similarity: 0.0 effective similarity value is 0.0 comparing slot POSITION Requested: = SECOND Chunk's slot value: THIRD similarity: -0.5 effective similarity value is -0.5

    Total similarity score -0.5 Adding transient noise 0.11740411 Adding permanent noise 0.0 Chunk ITEM6 has an activation of: -0.3825959 Chunk ITEM6 is now the current best with activation -0.3825959 ... Chunk ITEM6 with activation -0.3825959 is the best これらの例では,ベースレベルの活性化 Biはデフォルトの値 0,適合スケール Pの値は 1です.ノイズは⼀時的な要素 sのみで 0.15です.そのため,計算は,適合類似度を⾜し合わせ,⼀時的なノイズを加えるだけです. モデルが項⽬を想起する全てのリクエストで,次のようにリクエストパラメータ:recently-retrievedが指定されていることに気をつけてください:

    +retrieval> isa item group =group position second :recently-retrieved nil

    そのため,宣⾔的 finst のマークがないチャンクだけがマッチングのテストを受けます.:recently- retrievedは,チャンクのスロットではないので,部分的⼀致の計算の影響を受けません.

  • 上のアイテム 5のマッチングを⾒ると,groupと positionスロットの両⽅で適合し,ベースレベルの活性化にミスマッチの結果として 0が⾜されているのがわかります.そして,約-0.569のノイズを受け取り,それが最終的な活性化の値となります. 続いてアイテム 6のマッチングです.groupスロットはリクエストされた値 group2に⼀致します.しかし,position スロットは⼀致しません.リクエストされた値はsecondですが,アイテム 6は値 thirdを持っています.secondと thirdの類似性は-0.5に設定されており,この値が活性化に加えられます.そして,⼀時的なノイズである.117が活性化に加えられ,活性化の合計は-0.383となります.この値は,アイテム5の活性化より⼤きいため,ランダムな変動によりアイテム 6が誤って想起されます. モデルにおける異なる position の類似性は,set-similarity コマンドを⽤いて決められています: (set-similarities (first second -0.5) (second third -0.5)) 類似性の値は対称性を持ちますので,(second first -0.5)を指定する必要はありません.チャンクとそのチャンク⾃体との類似性は,デフォルトでは最⼤類似の値を持ちます.そのため,全ての positionで (first first 0) などと指定する必要はありません.また,デフォルトでは,異なるチャンクは最⼤差異を取りますので,指定されていない firstと thirdの類似性は-1です. 5.6.2 オミッションエラー (Error of Omission)

    9番⽬のアイテムの再⽣の失敗に関わるトレースの詳細の⼀部です: Computing activation for chunk ITEM9 Computing base-level Starting with blc: 0.0 Total base-level: 0.0 Computing partial matching component

    comparing slot GROUP Requested: = GROUP3 Chunk's slot value: GROUP3 similarity: 0.0 effective similarity value is 0.0 comparing slot POSITION Requested: = THIRD Chunk's slot value: THIRD similarity: 0.0 effective similarity value is 0.0

    Total similarity score 0.0 Adding transient noise -0.5353896 Adding permanent noise 0.0 Chunk ITEM9 has an activation of: -0.5353896 Chunk ITEM9 has the current best activation -0.5353896 No chunk above the retrieval threshold: -0.5

  • リクエストと完全に⼀致し,ペナルティを受けないため,アイテム 9が活性化 0から始まっているのがわかります.しかし,⼀時的なノイズ-.535 が加えられ,活性化が想起の閾値以下になってしまい,想起されません.recently-retrieved のマークがされていない唯⼀のアイテムチャンクであるため,想起される可能性があるのはこのアイテムだけです.そのため,閾値を超えるチャンクはなく,想起の失敗が起こります. 5.7 Simple Addition このユニットで部分的⼀致を使⽤する他のモデル例は,実験データにフィットされています.課題は Siegler と Shrager により⾏われた,4 歳児による⾜し算問題への様々な反応の頻度の実験です.⼦どもは,単純な⾜し算の指を,使って数えたり,計算をしたりすることなく,答えを思い出すよう求められました.多くの⼦供はテストされたほとんどの問題の答えを知らないようでした.そのため,⾜し算の表の 1+1から 3+3までに焦点を当てます.以下がそのデータです:

    0 1 2 3 4 5 6 7 8 Other (includes no response) 1+1 - .05 .86 - .02 - .02 - - .06 1+2 - .04 .07 .75 .04 - .02 - - .09 1+3 - .02 - .20 .75 .05 .01 .03 - .06 2+2 .02 - .04 .05 .80 .04 - .05 - - 2+3 - - .07 .09 .25 .45 .08 .01 .01 .06 3+3 .04 - - .05 .21 .09 .48 - .02 .11

    siegler modelはこのユニットの siegler-model.lispファイルに,実験を実⾏するコードはコードディレクトリの sieglerファイルにあります.grouped課題でそうであったように,課題のために⽣成されるインタフェースはないため,⾃分⾃⾝で実験をやってみることはできません.しかし,これは⼤きな問題ではありません.もしこのような課題が提⽰されたら,あなたはほとんどエラーをしないでしょう.

    Lispでは siegler-experiment関数,Pythonでは sieglerモジュールの experiment関数を呼び出すことにより,この課題を通しでモデルの実⾏をできます.各問題を何回提⽰するかを⽰す 1 つのパラメータを必要とします.これらの試⾏の結果と⼦どものデータとの⽐較を⽰します.単純化のために実験に学習は含まれていないので,モデルは課題の各試⾏の前にリセットされます.⾜す数は聴覚的に提⽰され,数をしゃべることで反応を返します.以下がアウトプットの例です: CORRELATION: 0.966 MEAN DEVIATION: 0.054

    0 1 2 3 4 5 6 7 8 Other 1+1 0.01 0.12 0.74 0.11 0.01 0.00 0.00 0.00 0.00 0.02 1+2 0.00 0.00 0.14 0.70 0.12 0.00 0.00 0.00 0.00 0.03 1+3 0.00 0.00 0.00 0.00 0.76 0.04 0.00 0.00 0.00 0.04 2+2 0.00 0.00 0.01 0.01 0.79 0.03 0.00 0.00 0.00 0.04 2+3 0.00 0.00 0.00 0.00 0.25 0.51 0.07 0.01 0.00 0.14 3+3 0.00 0.00 0.00 0.00 0.01 0.09 0.64 0.07 0.00 0.18

  • fanモデルのように,このモデルは進捗を追跡するためにゴールバッファーを利⽤しません.モデルは問題表象をイマジナルバッファーに構築し,モジュールの状態とバッファーの内容により次に何をするべきかを決定します.このモデルのプロダクションにおける条件と⾏動のほとんどは,ここまでの他のチュートリアルのモデルで使⽤されていたものと類似しています.そのため,基本的なモデルの操作を理解し,追っていくことができます.ですので,ここで詳細には触れません.しかし,これまでのチュートリアルで使⽤されなかった⾏動をする 2つのプロダクションがあります.それらの新しい⾏動を記してから,データに⼀致させるために使⽤するパラメータの設定を決定について⾒ていきます. 5.7.1 変更リクエスト (A Modification Request)

    sieglerモデルのこのプロダクションは,今までのチュートリアルで記述されていなかったイマジナルバッファーのアクションを持っています (p harvest-arg2

    =retrieval> =imaginal>

    isa plus-fact addend2 nil

    ?imaginal> state free

    ==> *imaginal>

    addend2 =retrieval )

    *で始まるバッファーへのアクションは変更リクエスト (modification request) と呼ばれます.バッファーのモジュールに,モジュールごとに異なる何らかの⾏動を求める,+で指定されるリクエストと同じように働きます.変更リクエストは,リクエストの過程で,⾃動的にバッファーをクリアしないという点で通常のリクエストと異なります.全てのモジュールが変更リクエストを使えるわけではありませんが,ゴールモジュールとイマジナルモジュールはでは使⽤でき,同じように処理が⾏われます. ゴールバッファーやイマジナルバッファーへの変更リクエストは,=アクションでチャンクを変更するプロダクションと同じ⽅法で,モジュールへのバッファーにあるチャンクの変更をリクエストします.ゴールモジュールでの,=goalアクションと*goalアクションの間の違いは,どのモジュールにアクションがクレジットされるかだけです.ユニット 1の countモデルのこのプロダクションを考えてみましょう: (p start

    =goal> ISA count-from

  • start =num1 count nil

    ==> =goal>

    ISA count-from count =num1

    +retrieval> ISA count-order first =num1

    ) このプロダクションの=goalアクションはトレースに次のアウトプットを残します:

    0.050 PROCEDURAL MOD-BUFFER-CHUNK GOAL これは⼿続き的モジュールが,ゴールバッファーのチャンクを変更したことを⽰しています.もし,代わりに startプロダクションが*goalアクションを使うと,次のようになります: (p start

    =goal> ISA count-from start =num1 count nil

    ==> *goal>

    ISA count-from count =num1

    +retrieval> ISA count-order first =num1

    ) トレースはこのようになります:

    0.050 PROCEDURAL MODULE-MOD-REQUEST GOAL 0.050 GOAL MOD-BUFFER-CHUNK GOAL

    ⼿続き的モジュールがゴールバッファーに変更リクエストをし,ゴールモジュールが実際にバッファーのチャンクの変更を実⾏したことを⽰しています.重要な違いではないように⾒えるかもしれませんが,モデルの⾏動と⼈間の脳活動を⽐較しようとする時に,“どこで” ⾏動が起こったのかを知っておくことは重要です. イマジナルモジュールに関していえば,=imaginal アクションと*imaginal アクションの間には別の違いがあります.これまで⾒てきたように,イマジナルバッファーにおけるチャンクを作るリクエストには 200ms の時間がかかります.プロダクション

  • が即座に変更するのに対して,イマジナルモジュールによるイマジナルバッファーのチャンクの変更には同じコストが適⽤されます.そのため,もし,startプロダクションがイマジナルバッファーを使⽤しているとするとこうなります (ここで論じられているのはこのプロダクションによるイマジナルバッファーの変更だけなので,想起リクエストは削除されています): (p start

    =imaginal> ISA count-from start =num1 count nil

    ==> =imaginal>

    ISA count-from count =num1

    ) =imaginalアクションのトレースはこうなります:

    0.050 PROCEDURAL PRODUCTION-FIRED START 0.050 PROCEDURAL MOD-BUFFER-CHUNK IMAGINAL

    しかし,もしプロダクションが*imaginalアクションを使うと (全てのリクエストでなされているように,モジュールが busy ではないことを確認する問い合わせを含む必要があります): (p start

    =imaginal> ISA count-from start =num1 count nil

    ?imaginal> state free

    ==> *imaginal>

    ISA count-from count =num1

    ) トレースのイベント系列はこうなります:

    0.050 PROCEDURAL PRODUCTION-FIRED START 0.050 PROCEDURAL MODULE-MOD-REQUEST IMAGINAL 0.250 IMAGINAL MOD-BUFFER-CHUNK IMAGINAL

  • イマジナルモジュールがバッファーのチャンクを変更する前に 200ms のコストがかかっていることを⽰しています.

    *imaginal アクションは,イマジナルモジュールが変更を⾏うための時間のコストを含むため,イマジナルバッファーのチャンクを変化させるために推奨されている⽅法です.しかし,タイミングに関⼼がない,または,モデル化される課題にイマジナルのコストが重要でないならば,ここまでのチュートリアルでなされたように,簡略化のために=imaginalアクションも使⽤できます. 5.7.2 直接的でないリクエスト (An indirect request)

    sieglerモデルのこのプロダクションは,これまでのチュートリアルで論じられていんかった書き⽅の想起リクエストを持ちます: (P harvest-answer

    =retrieval> ISA plus-fact sum =number

    =imaginal> isa plus-fact

    ?imaginal> state free

    ==> *imaginal>

    sum =number +retrieval> =number)

    このプロダクションは想起バッファーのチャンクをハーベストし,そのチャンクの

    sum スロットの値を,イマジナルバッファーの sum スロットへコピーします.そして,そのスロットに含まれるチャンクを想起するために,想起バッファーへ⾮直接的なリクエスト (indirect request) と呼ばれるものを⾏います.そのチャンクの nameスロットの値を反応の発話に使うために,チャンクが想起されます.

    ⾮直接的なリクエストは,チャンクやチャンクに束縛された変数をリクエストの唯⼀の要素として指定することにより,どのバッファーでもできます.このような状況でモジュールへ送られる実際のリクエストは,そのチャンクの全てのスロットと値が指定されているかのように構成されます.そのため,もし,上記のプロダクションの=numberがモデルによりチャンク eightで拘束されていれば: (eight ISA number value 8 name "eight") 想起リクエストは以下と同じとなります:

    +retrieval> value 8

  • name "eight" 実際に,リクエストを受け取るモジュールはこれと全く同じように受け取ります.

    ⾮直接的なリクエストに使⽤されたチャンクの名前へのアクセスはありません.そのため,⾮直接的なリクエストは,モジュールにより普通のリクエストと同じように扱われます. この場合は想起リクエストのため,他の想起リクエストと同じように,活性化の計算がなされ,部分的⼀致の対象となります.そのため,想起バッファーへの⾮直接的なリクエストはバッファーにチャンクを格納するとは限りません.このモデルでは,全てのスロットが⼀致し,活性化にペナルティを受けないため,常に正しいチャンクが想起されます.⼀⽅で,他の数チャンクは,両スロットとも⼀致せず,モデルではvalue スロットで使われる数字や name スロットで使われる⽂字列の間に類似性が設定されていないため,最⼤差異のペナルティを活性化に 2回受けます. もし,プロダクションで特定のチャンクのコピーをバッファーに確実に格納しなければならないならば,そうする⽅法もありますが,その実⾏は推奨されていないため,チュートリアルでは網羅しません. 5.7.3 調整すべきパラメータ (Parameters to be adjusted) データをフィットさせるには,部分的⼀致を使い,モデルの plus-factチャンクのベースレベル活性化の調整をする必要があります.このデモンストレーションでは活性化拡散は使いません.しかし,もし,モデルへの効果を調べてみたいのであれば,課題の⽂脈情報を保持するイマジナルバッファーの活性化のソースを調整して,それを使えるようにしてみても構いません. このモデルで調整する必要のある特定のパラメータは,概して活性化に関連するもの (想起の閾値 :rtと活性化のノイズ :ans),部分的⼀致に関連するもの (plus-factsの加数として⽤いられる数チャンクの類似性と適合スケール :mp),そして,チャンクのベースレベル活性化の値です. モデルには調整可能な多くの⾃由なパラメータがあります.それらを使うことによって,報告されたデータへのとてもよいフィットを実現することが可能です.しかし,それをすることはあまり現実的ではなく,60のデータポイントに 60以上のパラメータを使ってフィットさせる能⼒以外の何かを⽰すモデルにはなりません. 次のセクションでは,特定のパラメータがモデルのパフォーマンスに与える効果と,モデルのパラメータセッティングのためにとられるアプローチのアウトラインを⽰します. 5.7.4 最初のモデル (Initial model) モデルにおいて初めにすることは,課題を遂⾏可能か確かめることです.この場合,数字を聞き,⾜し算の知識を想起し,結果を発話することです.そのためには,モデルのサブシンボリックな要素を使⽤せずにはじめます.ひとたびサブシンボリックな

  • 要素が使⽤され,ランダム性や決定的ではない⾏動が⼊ってくると,プロダクションやモデルの基本的な理論におけるエラーの可能性を⾒つけることがとても難しくなります.そのため,基本的なシンボリックな情報でモデルが正しく働くことを確かめることは,複雑な課題をモデル化するための良い開始地点です. モデルの前提として,⼦どもは 0から 9までの数字を知っていて,この問題で使われている,0から 5を加数として持つ⾜し算の正しい結果に出会ったことがあるとします.そのため,モデルの開始時点から,これらは宣⾔的記憶の要素となります.合わせて,⼦どもは答えを覚えようと複雑な⽅略を使っていないこと,⼀回思い出すのに失敗したら諦めてわからないと回答することを仮定しています.集合的なデータ (この場合は全体における割合) をモデル化するこの種の課題においては,モデルで 1つの理想的な⽅略を使うことは合理的なアプローチであり,ここまでのチュートリアルで⾒てきた他の全てのモデルでとられた⽅法です.他に,各参加者のデータをモデル化したい時や,課題の遂⾏に⽤いられる特定の⽅略が重要な時は,データを説明するためにモデルに異なる⽅略を含むことが必要です. シンボリックなやり⽅で正しく動くモデルでは,すべての試⾏で正しく回答します.以下が調整のスタート地点となるモデルの結果です: CORRELATION: 0.943 MEAN DEVIATION: 0.127

    0 1 2 3 4 5 6 7 8 Other 1+1 0.00 0.00 1.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 1+2 0.00 0.00 0.00 1.00 0.00 0.00 0.00 0.00 0.00 0.00 1+3 0.00 0.00 0.00 0.00 1.00 0.00 0.00 0.00 0.00 0.00 2+2 0.00 0.00 0.00 0.00 1.00 0.00 0.00 0.00 0.00 0.00 2+3 0.00 0.00 0.00 0.00 0.00 1.00 0.00 0.00 0.00 0.00 3+3 0.00 0.00 0.00 0.00 0.00 0.00 1.00 0.00 0.00 0.00

    5.7.5 エラーを起こす (Making errors) 完璧な遂⾏をするモデルを⼿に⼊れたので,どのようにモデルにエラーをさせるかを考える必要があります.この課題では,そのために部分的⼀致を⽤いることにしました.特に,課題中にモデルに間違った addition factを想起させたり,addition factの想起に失敗させたいです (これはモデルの “other” の結果の部分に重要です).モデルにして欲しくないことは,間違った数字チャンクの想起や聴覚インプットのエンコードや発話アウトプットの⽣成中の想起の失敗です.⼦どもは数を知っていて,聞いたことの理解や正しい回答の発話の失敗によるエラーをしないことを前提としているためです.私たちは単にデータにモデルをフィットさせようとしているのではなく,課題において妥当なやり⽅でそうしようとしているということは重要です. 部分的⼀致を通してこれらのエラーを起こすには,モデルがこのような重要なリクエストに対したまに間違ったチャンクを想起してしまうことが必要です:

    +retrieval> ISA plus-fact

  • addend1 =val1 addend2 =val2

    =val1と=val2変数は,数字チャンクに拘束されています.例えば,1と 3です.そのため,類似している必要があるアイテムは,想起でリクエストされる値である,これらの数字チャンクです.これらのパラメータの設定から始めます. 5.7.6 類似性の設定 (Setting similarities) 数字チャンク間の類似性の設定は,間違った想起の分布に影響します.フィットのための⾃由度の⾼いパラメータに⾒えますが,実際には⾃由にしすぎるのは妥当ではありません.このような状況では,2つの数字の類似性を,すべての類似性を規定する単⼀の式を使った,それらの数字的な差異に基づいて設定した⽅が良いです.どのように数字の類似性を評価するかに関する多くの研究があり,それを記述するために提案された多くの数式があります.この課題においては,数字間の差異の線形関数を使います. また,単純化するために,このモデルにはデフォルトの類似性の幅の値 (もっとも似ている 0.0からもっとも似ていない-1.0) を使います.0から 9の数字を使っているため,以下のように設定しました:

    𝑆𝑖𝑚𝑖𝑙𝑎𝑟𝑖𝑡𝑦(𝑎, 𝑏) = −(0.1 ∗ |𝑎 − 𝑏|) これらの類似性を設定するために,set-similaritiesコマンドを使う必要があります.類似性は対称性を持つため,各数字のペアは⼀度設定すれば⼗分です.デフォルトで最も類似した値であるため,チャンクとそれ⾃体の類似性を設定する必要はありません.また,モデルは 0から 5の加数に関することをエンコードしたチャンクしか持っていないため,課題に関連するチャンクの類似性を設定するだけで⼗分です.そのため,モデルの最初の類似性の値の設定は次のとおりです: (Set-similarities

    (zero one -0.1) (one two -0.1) (two three -0.1) (three four -0.1) (four five -0.1) (zero two -0.2) (one three -0.2) (two four -0.2) (three five -0.2) (zero three -0.3) (one four -0.3) (two five -0.3) (zero four -0.4) (one five -0.4) (zero five -0.5))

    類似性に加えて,モデルの適合スケールパラメータを設定する必要があります.適合スケールの調整は類似性の値に掛け算をして使われるため,チャンクの活性化にどの程度類似性の値が影響するかを決定します.類似性の値に線形スケールを選択したため,利⽤可能な範囲や類似性の式で選択したパラメータを調整しなくても,適合スケールパラメータを使って⼀括で調整することができます. 類似性の値と適合スケールは,正しいチャンクと間違ったチャンクの間の活性化が

  • どのくらい近いかを決定します.望む効果を得るためにその⼤きさがどのくらいになる必要があるかは,モデルの他の設定によります.そのため,最初にどの程度の⼤きさの値にするかに関して真に良いガイドラインはありません.しかし,経験上,それぞれが結果に持つ効果を⾒ることができる値から始めると,後でパラメータを調整するのに簡単なことが多いです.そのため,まずはここで類似性が活性化の値に差異をもたらすことを担保する値を選択して確かめます.学習がない場合のデフォルトのチャンクのベースレベル活性化は 0.0なので,活性化が⼗分に異なることを確かめるために,まずは :mpに 5のような⼤きな値を選択します. しかし,これらの設定だけでは,正しいチャンクが常に最も⾼い活性化を持つため,それが想起され,モデルはまだエラーを起こしません.実際にエラーを得るために,活性化の値に幾らかのノイズも加える必要があります. 5.7.7 活性化ノイズ (Activation noise) 前のユニットでは,チャンクが想起の閾値を超える確率にどのように活性化ノイズが影響するかを⾒ました.ここでは,閾値を超える複数のチャンが存在するため,ノイズは間違った他のものの中から正しいチャンクが想起される頻度にも影響します.ノイズが⼤きいほど,正しいチャンクが最も⾼い活性化を得にくくなります.

    :mpの値でそうだったように,その影響は他の設定により決定されるため,ノイズの最初の値の選択は簡単ではありません.しかし,このパラメータに関しては,過去の経験に基づくいくつかの⼀般的なガイドラインがあります.過去に作成されてきた多くのモデルでは,0.0 から 1.0 の間の活性化ノイズの値が適切な設定であり,それらの多くで,値は 0.2から 0.5のどこかに落ち着く傾向があります.そのため,これに基づき,このモデルでは,これまでにユニットのモデルで使われていた値 0.5から始め,必要であれば後に調整していきます. さあ,上記の類似性の設定で,これら:ans 0.5,:mp 5の設定をして,モデルを実⾏し,何が起こるかを⾒てみましょう.実⾏してデータを収集すると次のような結果を得ます: CORRELATION: -0.030 MEAN DEVIATION: 0.336

    0 1 2 3 4 5 6 7 8 Other 1+1 0.00 0.02 0.02 0.02 0.01 0.01 0.00 0.00 0.00 0.91 1+2 0.00 0.01 0.03 0.04 0.02 0.01 0.00 0.00 0.00 0.88 1+3 0.00 0.00 0.02 0.02 0.04 0.03 0.01 0.00 0.00 0.88 2+2 0.00 0.00 0.02 0.02 0.05 0.03 0.02 0.01 0.00 0.85 2+3 0.00 0.00 0.00 0.03 0.03 0.02 0.03 0.02 0.00 0.87 3+3 0.00 0.00 0.00 0.00 0.01 0.03 0.04 0.01 0.02 0.88

    モデルはほとんどいつも正しくなく,ほとんどのエラーは,反応できなかったことを表す otherカテゴリーです.次にすべき重要なことは,なぜこのようなことが起きたかを理解することです.なぜモデルがこのような遂⾏をしたのかを理解することなしに,フィットを改善するためのパラメータの調整を始めるべきではありません.

  • 5.7.8 想起の閾値とベースレベル (Retrieval threshold and base-levels) モデルを 1回だけの試⾏で何回か実⾏することと操作を順番に⾒ていくことから,モデルが初めの数字のエンコードを含む全ての想起リクエストでチャンクの想起を全て失敗しているために,問題が起こっていることがわかります.モデルには addition factチャンクの想起を時々失敗させたいですが,エンコードの時は失敗させたくはありません. そのため,この点に関して 2つの変更する点があります.1つ⽬は,全てではないですが,ほとんどの想起の失敗を起こらなくするために,想起の閾値を調整することです.これによりモデルの質問への回答がデータに合うよう他のパラメータを設定することができます.その後で,また想起の閾値に戻ってきて,モデルに回答できないという反応をさせるために増加させます.そのため,ここでは,どんなチャンクも閾値を下回る活性化を持つということがほとんどないように,想起の閾値を-10.0 に設定します. この時にするもう⼀つのことは,想起の閾値を妥当な値に戻した時に,どのように数字チャンクの想起に失敗しないようにするかを考えることです.その最も簡単な⽅法は,ノイズによって想起の閾値以下になりにくいように,数字チャンクのベースレベルの活性化を増やすことです.モデルにおけるそのような修正は,⼦どもがしっかりとした数字の知識を持っていて,忘れたり混同したりしないことを前提としており,モデルにそれに匹敵する能⼒を与える必要があることを反映しています. そうするために,前のユニットで使った set-all-base-levelsコマンドと似た set-base-

    levels コマンドを使います. set-base-levels では,すべてのチャンクに変化を適⽤するのではなく,特定のチャンクを指定できるという点が異なります.ここでもう⼀度,たくさんの⾃由なパラメータがあるように⾒えますが,このモデルでは反応時間を測定しているわけではないため,チャンクが想起の失敗をしないために⼗分な値を持つようにするだけで⼗分です.想起さえされれば,その他の違いはエラー率には影響しません.まずは,数字チャンクの想起に失敗することがないように,(ベースレベル活性化の) 値を,想起の閾値である-10より⾮常に⼤きい 10とします.のちに想起の閾値を増やす時に,この値も調整する必要がありますが,ここでは,これらの設定をモデルに⾜しておきます: (set-base-levels

    (zero 10) (one 10) (two 10) (three 10) (four 10) (five 10) (six 10) (seven 10) (eight 10) (nine 10))

    課題に基づき 0 から 5 の値だけを設定した類似性と異なり,これらの値のいずれもが想起される必要のあるかもしれないモデルの宣⾔的記憶の addition factの sumとなる可能性があるため,ここでは 0から 9のすべての値を設定する必要があります. これらの追加をモデルに⾏ったのちに実⾏するとアウトプットはこのようになります:

  • CORRELATION: 0.708 MEAN DEVIATION: 0.152

    0 1 2 3 4 5 6 7 8 Other 1+1 0.03 0.19 0.34 0.20 0.12 0.07 0.02 0.02 0.00 0.00 1+2 0.01 0.07 0.16 0.29 0.22 0.16 0.06 0.02 0.01 0.00 1+3 0.01 0.02 0.06 0.21 0.32 0.17 0.10 0.05 0.03 0.01 2+2 0.00 0.03 0.10 0.19 0.27 0.23 0.11 0.04 0.01 0.00 2+3 0.00 0.01 0.05 0.09 0.22 0.31 0.21 0.10 0.01 0.01 3+3 0.00 0.00 0.02 0.06 0.10 0.23 0.28 0.18 0.10 0.04

    これは,前のものよりデータへの良いフィットを⽰していますが,依然望むほどの

    良さはありませんし,実際,完全に思い出せるときよりも良くありません.数回の個別の実⾏のトレースを⾒ると,モデルが思ったようにはたらいているのがわかります.エラーは,部分的⼀致による,間違った addition factの想起によるものだけです. 5.7.9 パラメータの調整 (Adjusting the parameters) 次に取るべきステップはモデル化の⽬的が何かによります.モデルで何を達成しようとしているか,データへの⼗分なフィットは何であると考えているかです.もし,このデータへのフィットで⼗分ならば,次にするステップは,“other” 反応 (反応の失敗) を起こすために想起の閾値を上げることです.そうすればもう少し改善するでしょう.しかし,今回はこれでは⼗分ではないと考え,想起の閾値を調整する前に,まず他の:ansと:mpの設定を調べます. そのために,これらのパラメータにおける,モデルのデータへのフィットを改善する値を探します.モデルのパラメータを探す時には,多くのとられるであろうアプローチがあります.ここでは,単純にするため,⼿動でのパラメータの調整をし,良い値が得られるかどうかモデルを実⾏するという⽅法をとります.探索するパラメータの数が少なく,モデルの実⾏がとても短く,各時点を正確にモデル化しようとしていない場合,この⽅法はうまくいきます.⻑い実⾏を必要としたり,調整すべき多くのパラメータを持っている他の課題では,他の⽅法が必要です.パラメータを調整したり,網羅的な探索や基底となる式に基づくモデルの抽象化までするコードを記述したり,最適値の解決のためにMATLABやMathematicaなどのツールを使うこともあります.

    ⼿動で探索する時に使⽤するアプローチは,1度に 1つのパラメータのみを探索することです.1つのパラメータを取り上げ,より良いフィットが得られるように調整します.その後,その値を固定し,別のパラメータを取り上げ,調整します.これを各パラメータの調整が終わるまで繰り返します.しばしば,各パラメータを順に調整すれば,データへのより良いフィットが得られますが,時には,望むレベルに達するために複数回の調整を⾏う必要があります (もちろん,パラメータの調整を通してモデルがそのようなフィットを⽣成することができることを前提とします). もし,それらがデータに及ぼす効果についての考えがあるなら,パラメータのサブセットだけを対象にするのも役⽴ちます.例えば,この課題では,想起の閾値は主にモデルが諦める頻度を決定することを知っています.そのため,回答のあったデータ

  • の⼤部分において,他のパラメータでより良いフィットが得られるように調整し終わるまで,このパラメータをフィットさせるのを後回しにします. 他の課題に基づくノイズの値から始め,適合スケールの値をある程度,恣意的に選択したため,適合スケールパラメータの探索から始めます.ノイズを 0.5に固定すると.適合スケールの値が 16の時が最もフィットするようです: CORRELATION: 0.942 MEAN DEVIATION: 0.074

    0 1 2 3 4 5 6 7 8 Other 1+1 0.01 0.13 0.75 0.10 0.01 0.00 0.00 0.00 0.00 0.00 1+2 0.00 0.00 0.12 0.74 0.13 0.01 0.00 0.00 0.00 0.00 1+3 0.00 0.00 0.01 0.13 0.75 0.10 0.01 0.00 0.00 0.00 2+2 0.00 0.00 0.01 0.11 0.75 0.12 0.01 0.00 0.00 0.00 2+3 0.00 0.00 0.00 0.00 0.14 0.73 0.13 0.00 0.00 0.00 3+3 0.00 0.00 0.00 0.00 0.01 0.13 0.76 0.10 0.01 0.00

    それから,適合パラメータを 16に固定し,ノイズの値を調整しても,最初の値 0.5より良い値は⾒つけられそうにありませんでした.そのため,other 反応がもっと起こり,フィットがもっと改善するように想起の閾値を調整します.探索により,値 0.7が次の通りフィットを改善しました: CORRELATION: 0.949 MEAN DEVIATION: 0.065

    0 1 2 3 4 5 6 7 8 Other 1+1 0.01 0.07 0.74 0.09 0.01 0.00 0.00 0.00 0.00 0.09 1+2 0.00 0.00 0.10 0.70 0.08 0.00 0.00 0.00 0.00 0.11 1+3 0.00 0.00 0.00 0.10 0.71 0.09 0.01 0.00 0.00 0.08 2+2 0.00 0.00 0.01 0.12 0.66 0.12 0.00 0.00 0.00 0.08 2+3 0.00 0.00 0.00 0.00 0.13 0.68 0.09 0.00 0.00 0.10 3+3 0.00 0.00 0.00 0.00 0.01 0.08 0.70 0.08 0.00 0.13

    この時にすべき重要なことは,モデルが予測通りに課題を⾏っていることを確かめることです.パラメータを変化させることは,数字チャンクの想起の失敗のような問題を引き起こすことはありませんでした.現在のモデルでは,1回だけの試⾏を数回,詳細に観察することにより,予想通りに動いていることがわかります.そのため,ここで戻って,より良いフィットを⾒つけるために,全てのパラメータの他の組み合わせを試すことができます.しかし,代わりに,ただより良いパラメータを⾒つけようとする前に,ここで⼀度⽴ち⽌まって,私たちのモデルがどこで実験データから離れてしまっているのかを⾒てみましょう. 5.7.10 モデルの調整 (Adjusting the model)

    私たちが逃しているデータの傾向は,⼦どもは⼩さな数の問題でより正しく反応し,間違って反応をする時はより⼩さい値を回答しているということのようです.より⼩さい回答をするバイアスがあるようです.これは,現実で加数の⼩さい⾜し算により頻繁に遭遇することを⾒つけた他の研究とも⼀致します.

  • データのこの部分を説明するには,パラメータを修正する以外に,モデルの調整をすることが必要です.⼩さい数字の問題はより頻繁に起こることを⾒つけた研究は,とることが可能なアプローチを⽰します.チャンクのベースレベルの活性化はその使⽤履歴を⽰すため,⼩さ