Holographic Declarative Memory for Python ACT-R

Overview

HDM

This is the repository for the Holographic Declarative Memory (HDM) module for Python ACT-R.

This repository contains:

  • documentation: a paper, conference poster, and slides that describe the theory and applications of HDM
  • example models: sample ACT-R models that use HDM
  • hdm.py the HDM module itself, which uses HRRs
  • hrr.py code for Holographic Reduced Representations (HRRs)

External links:

To install HDM for use on your own computer:

  1. pip install python_actr_hdm

  2. Create a Python ACT-R model (see Python ACT-R tutorials).

  3. Instead of creating an instance of DM, create an instance of HDM in your model (see example code in this repository).

USING HDM

To use HDM:

from python_actr import * from python_actr_hdm import *

...

retrieval=Buffer()

memory=HDM(retrieval)

The HDM module provides six methods for use by an ACT-R model:

  1. The constructor, which takes a retrieval buffer and creates an HDM: memory = HDM(retrieval)

  2. Add a chunk, which takes a chunk and adds it to HDM: memory.add(chunk)

  3. Request a chunk, which takes a chunk and finds the best match in HDM: memory.request(chunk)

  4. Get activation, which takes a chunk and returns the chunk's activation as a cosine in HDM: memory.get_activation(chunk)

  5. Get and 6. set methods for defining compositional relationships between the environmental stimuli represented as environment vectors: e.g., we can define the stimulus 'customer1' as a conjunction of the features 'a white person with long, blonde hair and moustache' DM.set('customer1', DM.get('moustache') + DM.get('blond') + DM.get('long_hair') + DM.get('white'))

PARAMETERS OF HDM SHARED WITH DM

  1. buffer

  2. latency

  3. threshold As in DM, threshold is the minimum activation threshold for a chunk to be retrieved. We recommend using lower thresholds for HDM than is standard for DM. The default threshold for DM is 0. The default threshold for HDM is -4.6. Internally, HDM uses cosines, which approximate the square root of the probability. Conversely DM uses log odds as activation. For compatibility with DM, the threshold parameter is in logodds. It is immediately converted to a cosine for internal use by HDM. The default threshold of -4.6 is converted to a cosine of 0.1.

  4. maximum_time

  5. finst_size

  6. finst_time

NEW PARAMETERS UNIQUE TO HDM

  1. N is the vector dimensionality. Defaults to 512 dimensions, which is plenty. We recommend setting N to values in the range from 32 to 2048. Smaller dimensions introduce more noise and error into the model. 32 dimensions will introduce a high amount of noise/error for small study sets. 2048 dimensions allows for good recall for millions of items.

  2. verbose defaults to false. When set to true, HDM reports its internal computations, allowing the user to understand what HDM is doing.

  3. forgetting controls the forgetting rate due to retroactive inhibition range [0 to 1] 1 = no forgetting 0 = no remembering When updating memory: memory vector = forgetting * memory vector + new information vector

  4. noise controls the amount of noise added to memory per time step. Gaussian noise is added to all memory vectors whenever Request or Add is called. When adding noise: memory vector = memory vector + noise * time since last update * noise vector Noise ranges from [0 ... ], where 0 is no noise and more is more noise

Owner
Carleton Cognitive Modeling Lab
Carleton Cognitive Modeling Lab
디텍션 유틸 모음

Object detection utils 유틸모음 설명 링크 convert convert 관련코드 https://github.com/AI-infinyx/ob_utils/tree/main/convert crawl 구글, 네이버, 빙 등 크롤링 관련 https://gith

codetest 41 Jan 22, 2021
Module-based cryptographic tool

Cryptosploit A decryption/decoding/cracking tool using various modules. To use it, you need to have basic knowledge of cryptography. Table of Contents

/SNESE_AR\ 33 Nov 27, 2022
Procedural modeling of fruit and sandstorm in Blender (bpy).

SandFruit Procedural modelling of fruit and sandstorm. Created by Adriana Arcia and Maya Boateng. Last updated December 19, 2020 Goal & Inspiration Ou

Adriana Arcia 2 Mar 20, 2022
Aggressor script that gets the latest commands from CobaltStrikes web site and creates an aggressor script based on tool options.

opsec-aggressor Aggressor script that gets the latest commands from CobaltStrikes opsec page and creates an aggressor script based on tool options. Gr

JP 10 Nov 26, 2022
Structured Exceptions for Python

XC: Structured exceptions for Python XC encourages a structured, disciplined approach to use of exceptions: it reduces the overhead of declaring excep

Bob Gautier 2 May 28, 2021
An open source recipe book from the awesome staff of Clinical Genomics

meatballs An open source recipe book from the awesome staff of Clinical Genomics.

Clinical Genomics 2 Dec 07, 2021
HiQ - A Modern Observability System

🦉 A Modern Observability System HiQ is a declarative, non-intrusive, dynamic and transparent tracking system for both monolithic application and dist

Oracle Sample Code 40 Aug 21, 2022
Collatz Sanısını Test Eden Ve Kanıtlayan Bir Python Programı

Collatz Sanısı Collatz Sanısını Test Eden Ve Kanıtlayan Bir Python Programı. Kullanım Terminalde: 1- git clone https://github.com/detherminal/Collatz-

Cemal Mert 2 May 07, 2022
Pseudometa's dotfiles

pseudometa's dotfiles Table of Contents Why this repository? How this Repository works Special Explanations Got an idea for an improvement? Contact Wh

pseudometa 23 Dec 27, 2022
Check broken access control exists in the Java web application

javaEeAccessControlCheck Check broken access control exists in the Java web application. 检查 Java Web 应用程序中是否存在访问控制绕过问题。 使用 python3 javaEeAccessControl

kw0ng 3 May 04, 2022
Automatically skip sponsor segments in YouTube videos playing on Apple TV.

iSponsorBlockTV Skip sponsor segments in YouTube videos playing on an Apple TV. This project is written in asycronous python and should be pretty quic

David 64 Dec 17, 2022
Superset custom path for python

It is a common requirement to have superset running under a base url, (https://mydomain.at/analytics/ instead of https://mydomain.at/). I created the

9 Dec 14, 2022
Fast STL (ASCII & Binary) importer for Blender

blender-fast-stl-importer Fast STL (ASCII & Binary) importer for Blender based on https://en.wikipedia.org/wiki/STL_(file_format) Technical notes: flo

Iyad Ahmed 7 Apr 17, 2022
The parser of a timetable of tennis matches for Flashscore website

FlashscoreParser The parser of a timetable of tennis matches for Flashscore website. The program collects the schedule of tennis matches for two days

Valendovsky 1 Jul 15, 2022
Mixtaper - Web app to make mixtapes

Mixtaper A web app which allows you to input songs in the form of youtube links

suryansh 1 Feb 14, 2022
This library is an abstraction for Splunk-related development, maintenance, or migration operations

This library is an abstraction for Splunk-related development, maintenance, or migration operations. It provides a single CLI or SDK to conveniently perform various operations such as managing a loca

NEXTPART 6 Dec 21, 2022
Python wrapper around Apple App Store Api

App Store Connect Api This is a Python wrapper around the Apple App Store Api : https://developer.apple.com/documentation/appstoreconnectapi So far, i

123 Jan 06, 2023
A project to find out all the words in a crossword.

A project to find out all the words in a crossword.

Kalpesh Dhoundiyal 1 Feb 06, 2022
It is convenient to quickly import Python packages from the network.

It is convenient to quickly import Python packages from the network.

zmaplex 1 Jan 18, 2022
Functional interface for concurrent futures, including asynchronous I/O.

Futured provides a consistent interface for concurrent functional programming in Python. It wraps any callable to return a concurrent.futures.Future,

A. Coady 11 Nov 27, 2022