act-r 6 why aren’t you using it yet? dan bothell april 8, 2005

30
ACT-R 6 Why aren’t you using it yet? Dan Bothell April 8, 2005

Post on 22-Dec-2015

217 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: ACT-R 6 Why aren’t you using it yet? Dan Bothell April 8, 2005

ACT-R 6Why aren’t you using it yet?

Dan Bothell

April 8, 2005

Page 2: ACT-R 6 Why aren’t you using it yet? Dan Bothell April 8, 2005

What is ACT-R 6?

• ACT-R 5 cleaned up

• Unify/standardize the buffer mechanism

• Better integration of the Cognitive and PM components– One time maintenance mechanism

• Make the whole system modular

• Make it easier to add/remove modules

Page 3: ACT-R 6 Why aren’t you using it yet? Dan Bothell April 8, 2005

How similar is it to 5?

• Lots of similarities• Most of the commands are still around

– sgp, p, add-dm, run

• Models look basically the same• Same equations

– Procedural• Utility calculation and utility learning*

– Declarative memory• Activation equation, Spreading activation, Base-level

learning, retrieval time

• Same PM system

Page 4: ACT-R 6 Why aren’t you using it yet? Dan Bothell April 8, 2005

Where are things now?

• It is available and working– Performance comparable to ACT-R 5

• Slightly better on average over the tutorial, but does vary

• Has the tutorial models for units 1-6– With all the changes needed to update from 5 detailed

• Tutorial unit texts for units 1 and 2– Formatting still a little rough but the content is good

• Get it at http://act-r.psy.cmu.edu/act-r6• Or via Subversion (http://subversion.tigris.org/) from svn://alba.psy.cmu.edu/usr/local/svnroot/actr6

Page 5: ACT-R 6 Why aren’t you using it yet? Dan Bothell April 8, 2005

What is it missing?

• The rest of the tutorial unit texts

• Production Compilation

• The ACT-R Environment

• Manuals (of course so is ACT-R 5)

Page 6: ACT-R 6 Why aren’t you using it yet? Dan Bothell April 8, 2005

Big General Differences

• Not backward compatible!

• The set of all chunks does not equal DM

• Model files can be compiled– Clearall doesn’t do a load-time read– Requires use of the define-model command

• Supports multiple models “out of the box”– Both synchronous and asynchronous

Page 7: ACT-R 6 Why aren’t you using it yet? Dan Bothell April 8, 2005

More minor general differences

• Removed some duplicate commands

• The PM commands have had the “pm-” stripped from them – For example pm-proc-display is now proc-display

• “Old” named commands are removed– In particular anything that included wme

• Sgp sets parameters for all modules

• Trace is more detailed (at least by default)

Page 8: ACT-R 6 Why aren’t you using it yet? Dan Bothell April 8, 2005

Buffers

• They all work the same– Hold a chunk– Relay queries and requests to/from a module

• The chunk is a copy– Doesn’t exist outside of the buffer

• Changes to the buffer’s chunk are not reflected back onto the original chunk

• Essentially chunk creation scratch pads• Can be a source of Activation

– Individual parameters like W (:ga).

Page 9: ACT-R 6 Why aren’t you using it yet? Dan Bothell April 8, 2005

Declarative Memory

• Holds only the chunks that are added explicitly or those that come from the buffers

• When a buffer clears the chunk merges into DM– True for all buffers

• Those merges are the references for base-level learning– Not the LHS usage as in ACT-R 5

• Because buffers hold copies DM chunks can’t be changed from within a production

Page 10: ACT-R 6 Why aren’t you using it yet? Dan Bothell April 8, 2005

Declarative Finsts

• Major reason for changing chunks in DM was to mark them to prevent retrieval

• Now there are automatic markers just like vision • They are limited in time and number

– settable with parameters

• Indicated with the request parameter :recently-retrieved+retrieval> isa fact :recently-retrieved nil

Page 11: ACT-R 6 Why aren’t you using it yet? Dan Bothell April 8, 2005

Productions: General differences

• No LHS Retrievals!• Can’t use !eval! in the slot value position

– Won’t flag it as an error or warning though at this point because a list is a “valid” value

• Binding order not as important:(p test =goal> isa goal - value =that =retrieval> isa fact slot =that ==> …)

works without problems

Page 12: ACT-R 6 Why aren’t you using it yet? Dan Bothell April 8, 2005

Productions LHS

• =buffer>

• ?buffer>

• !eval!

• !bind!

• !safe-eval!

• !safe-bind!

Page 13: ACT-R 6 Why aren’t you using it yet? Dan Bothell April 8, 2005

LHS =buffer

=buffer> isa chunk-type

{{modifier} slot-name slot-value}*

• Same as it was in ACT-R 5

• Tests the chunk in the buffer

Page 14: ACT-R 6 Why aren’t you using it yet? Dan Bothell April 8, 2005

LHS ?buffer>

• No more *-state buffers• Replaced with the buffer query operator

?buffer>{query value}*

• Must reply non-nil to match• Two queries are mandatory for a buffer/module

to respond to– State with values busy, free, and error– Buffer with the values full, empty or stuffed

• Any others can be added by the module writer– Modality for the current PM modules for example

Page 15: ACT-R 6 Why aren’t you using it yet? Dan Bothell April 8, 2005

The LHS !’s

• !eval! and !bind! just like before– Must be non-nil for production to match

• !safe-eval! and !safe-bind! operate just like the non-safe versions– Difference is that production compilation will

not compile productions that use the non-safe version

Page 16: ACT-R 6 Why aren’t you using it yet? Dan Bothell April 8, 2005

Production RHS

• =buffer>

• -buffer>

• +buffer>

• !eval! and !safe-eval!

• !bind! and !safe-bind!

• !output!

• !stop!

Page 17: ACT-R 6 Why aren’t you using it yet? Dan Bothell April 8, 2005

RHS =buffer>

• Immediately manipulates the chunk in the buffer• Two forms =buffer> {slot value}*

– Same as always – sets the slots to have the specified values

• =buffer> chunk-reference– Copies that chunk into the buffer– Partial generalization from the ACT-R 5 “+buffer> chunk” mechanism

Page 18: ACT-R 6 Why aren’t you using it yet? Dan Bothell April 8, 2005

RHS –buffer>

-buffer>

• Clears the chunk from the buffer

• That’s it!

• Does not result in any action by the module– Unlike ACT-R 5 where that could also cause

the module to reset/clear

Page 19: ACT-R 6 Why aren’t you using it yet? Dan Bothell April 8, 2005

RHS +buffer>

• Sends a request to the module• Three forms +buffer> isa chunk-type {{modifier} [slot | request parameter] value}* +buffer> chunk-reference

+buffer> {slot value}*

Page 20: ACT-R 6 Why aren’t you using it yet? Dan Bothell April 8, 2005

+buffer> isa

+buffer> isa chunk-type {{modifier} [slot | request parameter] value}*• Sends that request to the module just like

ACT-R 5• Only difference is the addition of the request

parameters in addition to slots– Specific to the buffer and defined with the module– Valid no matter what the chunk-type – Always a keyword to distinguish it from a slot

Page 21: ACT-R 6 Why aren’t you using it yet? Dan Bothell April 8, 2005

+buffer> chunk

+buffer> chunk-reference

• Generalization of the ACT-R 5 mechanism

• Expands the chunk “in place” and sends the request as if all the chunk’s slots and values (including the type) were specified

• Works the same for all buffers– Not exactly the same as ACT-R 5

Page 22: ACT-R 6 Why aren’t you using it yet? Dan Bothell April 8, 2005

+buffer> modification

+buffer> {slot value}*

• Sends a request to the module to make a change to the chunk in the buffer

• Must have matched the buffer on the LHS

• Replaces the remapping of =buffer> that was possible in ACT-R 5

Page 23: ACT-R 6 Why aren’t you using it yet? Dan Bothell April 8, 2005

Strict harvesting

• New mechanism of productions • When a buffer is matched on the LHS of a

production it is automatically cleared on the RHS unless there is an =buffer action to keep it around– Parameterized so that one can specify which buffers

get “strict harvested”– Out of the box all but the goal buffer do right now

• Cleans up issues with– References for BLL– Production compilation– Micro-managing perceptual buffers

Page 24: ACT-R 6 Why aren’t you using it yet? Dan Bothell April 8, 2005

Vision Module

• Attended slot is gone– Replaced by a request parameter +visual-location> isa visual-location :attended nil– And a query ?visual-location> attended nil

• Good because now visual-locations can merge properly without the changing attended slot

• The query can match nil to new but the slot couldn’t

Page 25: ACT-R 6 Why aren’t you using it yet? Dan Bothell April 8, 2005

Vision Module cont.

• Attention Shifts changed from +visual> isa visual-objectTo +visual> isa move-attention

• Removes the need for the scale slot in visual-objects

• Only has the two slots screen-pos and scale

Page 26: ACT-R 6 Why aren’t you using it yet? Dan Bothell April 8, 2005

Vision module cont. 2

• Now must use:

+visual> isa clear

• To explicitly clear (reset) the vision system because –visual> doesn’t send an automatic clear to the module anymore

• Same for the motor system +manual> isa clear instead of –manual>

Page 27: ACT-R 6 Why aren’t you using it yet? Dan Bothell April 8, 2005

Experimental addition: P*

• Exactly like p except slot-names can be variablized– On both the LHS and the RHS

• Limited variability (for now at least)– Will not do any binding – the variable must be

bound elsewhere– Only one level deep per buffer test

Page 28: ACT-R 6 Why aren’t you using it yet? Dan Bothell April 8, 2005

Random “module”

• Includes a pseudo-random number generator– Mersenne Twister – considered the best available for

Monte Carlo simulation purposes

• Can set the seed with sgp– Guarantees repeatability regardless of Lisp or OS– Great for the tutorial because students get the exact

same trace as shown in the text– Useful for debugging because the same situation can

easily be recreated

Page 29: ACT-R 6 Why aren’t you using it yet? Dan Bothell April 8, 2005

Naming “module”

• Replaces the use of gentemp

• Counters start at 0 for each name

• Gets reset to 0 when the model resets

• A deterministic model will always have the same names for things

Page 30: ACT-R 6 Why aren’t you using it yet? Dan Bothell April 8, 2005

Issues with copying and merging chunks

• The ACT-R 6 merging mechanism doesn’t replace all occurrences when merging– Time/space prohibitive because of how often the merging occurs

• Buffers have chunks with “new” names• Can end up with chunks that don’t “look” the same that

do merge• Traces can look a little odd with references to differently

named slots– Unit 5 with partial matching shows that

• No solution at this point – just something to be wary of– Could try to hide it, but that may be more confusing