1 / 30

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

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

elliot
Download Presentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. 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

  3. 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

  4. 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

  5. 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)

  6. 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

  7. 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)

  8. 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).

  9. 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

  10. 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

  11. 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

  12. Productions LHS • =buffer> • ?buffer> • !eval! • !bind! • !safe-eval! • !safe-bind!

  13. 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

  14. 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

  15. 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

  16. Production RHS • =buffer> • -buffer> • +buffer> • !eval! and !safe-eval! • !bind! and !safe-bind! • !output! • !stop!

  17. 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

  18. 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

  19. 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}*

  20. +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

  21. +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

  22. +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

  23. 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

  24. 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

  25. Vision Module cont. • Attention Shifts changed from +visual> isa visual-object To +visual> isa move-attention • Removes the need for the scale slot in visual-objects • Only has the two slots screen-pos and scale

  26. 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>

  27. 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

  28. 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

  29. 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

  30. 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

More Related