Technology – Module Types

Basics  Memory  Module Types  Cognitive Modeling  Integration Points  Architecture

NeuroBlock Module Types

(Click on a module icon to go directly to its description.)

NeurOS includes a library of built-in module types, including the following:

  • Input modules serve as environment sensors and development support for injecting patterns into neural graphs. Input modules are driven by either external events or poll timers. They convert external events into the NeurOS event stream representation, with scalar, vector or matrix valued events.
  • Output modules serve two roles: application outputs like actions (e.g., robotic control, audio output), analysis results, pattern recognition and processing results, network actions, etc.; and monitoring/visualization/instrumentation. Developers are free to litter their neural graphs with such modules (even dynamically while an application is running) to watch and capture what is happening, similar to using fancy oscilloscopes in electronic design.
  • Processing modules perform a wide range of computational chores. Many minimal/non-learning computations are implemented much more efficiently in a processing module than in memory pattern modules.
  • Memory modules provide core modeling of short and especially long-term memory processes. See Memory for a detailed discussion of NeurOS memory modeling.

Input Modules

Keyboard Module
Keyboard
Hand-entry of input events.  Supports multiple formats:  character-at-a-time, line-at-a-time, full relative time/ID/value/duration.
Pattern In
Temporal
Pattern In
Graphical input of events.  Draw input values of multiple signals over time.
Pattern In
Grid In
Enter vector and matrix-valued input events, similar to a cochlea or retina
Pattern In
Data
Generator
Create input events according to a probability/time/value distribution
Pattern In
Stream In
Accept and parse inputs from a stream, socket, pipe or file
Pattern In
MIDI In
Convert MIDI source note inputs to NeurOS events
Many more input modules are expected over time, to provide sensor, device, search and query results.

Processing Modules


Filter
Pass or exclude events based on matching or range criteria on time, event ID, value. Includes regular expression matching on IDs, often useful for separating events in multiple domains.

Transformer
General-purpose computation. Transform input events to output events, internal state and volatile shared parameter changes. Includes a simple expression language and access to external functions.

Group Ops
Functions over groups of events in a time aperture: max/min value, moving or windowed average value, top N or percentage values. Useful for soft-max-style winner-take-all function.

Wrapper
Wrap an external command, program or service as a module, via stream, pipe, file, socket, REST or other interfaces.
Custom Template Create a custom reusable module by filling in a template. Enables custom programming of module functions and access to external libraries.

Sub-graph
Capture and reuse a sub-graph as a module.

 

More processing modules are expected over time, such as signal processing and complex transformations.

Memory Modules

These are general-purpose modules for pattern recognition and learning.  See Memory for more complete description of NeurOS memory models.  Other memory models can be incorporated using the Wrapper or Custom modules.


Working Memory
Repeat and decay input events. Useful to persist and synchronize input events when there is some temporal uncertainty, such as from different domains.

Set Patterns
Learn and match patterns of roughly concurrent events. Keeps a weight vector and an optional value vector for non-0 signals. Learning parameters include: novelty threshold when to create a new pattern, learning rate, learning and forgetting time profiles.

Sequence Patterns
Learn and match patterns of partially ordered events. Keeps a weight matrix and an optional value matrix for non-0 signals with event ID rows, step columns. Parameters for mismatch tolerance, matching function (including matrix correlation, regular expression, positional open bigrams, edit distance.   Learning parameters include: novelty threshold when to create a new pattern, learning rate, learning and forgetting time profiles, sequence length and restart criteria.

Temporal Patterns
Learn and match patterns of temporally related events. Keeps an interpolation function/curve for each significant event ID, with a parameter for temporal tolerance. Matches over a range of tempos.

Reify
Given an input event for a memory pattern, generate all the pattern’s component features, with event values proportional to feature weights in the pattern. For Sequence and Temporal patterns, generate outputs sequentially with a parameterized speed. This module is vital for prediction and cascaded processes like generating concrete actions from a hierarchy of abstract behaviors.

 

Output Modules


Print
Output events in a window in a variety of formats. Especially useful during development.

Plot
Show input events over time in an EKG-like display. Rows are event IDs, bar heights are event values.   Parameters for time scale, row sorting. Especially useful for visualizing event activity and results. Often used with links from multiple points within a neural graph to show inputs and outputs of functions.

Cloud
Like a “tag cloud” display. Show the latest event IDs from its input link with a font size proportional to event value. Makes it easy to interpret cognitive outputs when there are multiple concurrent outputs with different values (confidences, strengths).

Grid Out
Display vector and matrix valued events with shading/color proportional to individual cell values. Especially useful to visualize results of sensory processing.

Stream Out
Convert events into messages on various kinds of output streams in various formats.   Useful to loosely couple a NeurOS graph to other parts of a complex system.

Log
Output events to files in a variety of formats. One format can be reused as input to neural graphs via a file/stream in module.

MIDI Out
Output events to a MIDI synthesizer program or device. Parameters allow stylistic choices like instrument, attack-decay-sustain-release, etc.

 

As with other module groups, a great many additional output modules are expected over time, for controlling a variety of physical systems (e.g., robots, buildings, appliances, voice synthesizers) as well as information systems (e.g., databases).

Basics  Memory  Module Types  Cognitive Modeling  Integration Points  Architecture

Leave a Reply

Your email address will not be published. Required fields are marked *