Network Update

Each time the step button is pressed in the network panel--the network moves forward in time by one iteration; that is, it takes on a new state as a result of its current state. This is known as updating the network. On each update, the "time" label is updated as well.

There are multiple ways to go about updating a a construct as complex as an artificial neural network. Artificial neural networks are essentially graphs, a collection of nodes connected by vertices (the vertices are neurons and the connections are synapses). The whole network has three lists: a list of nodes, a list of connections, and a list of networks ("subnetworks"). The connections have references to the source and target nodes they connect. When a network is updated the program goes through the list of neurons and calls an update function internal to each one, and similarly with the list of synapses. Before these values are actually changed they are stored as a buffer within each network component. In this way, an update method can be thought of as the specific way or order in which buffered values are transformed into actual values.

To allow for custom updating includes two built in update types: buffered (default) and priority-based. For more advanced users Simbrain also includes the option of creating custom update method, and a dialog for creating custom updates.

At the network level update rules can be changed by going to File > Network Preferences (or "ctrl + ,"), and selecting the "update" tab. From there the update method can be customized.

Update Network 

The general operation of this panel is identical to the workspace updater.   Refer to that page for more on how to use it.

Update Types

Buffered Update

Buffered update is the default update rule in Simbrain. For every component of the network, the new value at time t is calculated from the attribute values at t - 1 and stored in the buffer. No activation values are changed until every buffer as been calculated. Then all activations are updated simultaneously based on their buffer values.

Priority Update

When using a priority based update, each node is assigned a priority value. The lower this value, the higher the node's priority. Based on this value all the network components are sorted into a queue. The program addresses the head of this queue first calling the component's update method and immediately setting its activation based on its buffer value before moving on to the next component in the queue. Components with the same priority are ordered arbitrarily in this queue.

Custom Update

Create a custom update action.  Users have access to the underlying network object and the gui networkpanel.

Update Types

Add Action: Adds any selected actions in the unused update actions to the current update sequence.

Add Custom Action:  Create  a custom update action.   A script editor opens up, with comments that indicate how to go about creating the custom updater.  Users have access to the underlying workspace object and the gui desktop.  See scripting for more on how to create these scripts.  To edit a custom action just double click on it.

Remove Action(s): Deletes selected action(s).

Move Up In Sequence: Move selected action up one in the sequence.

Move To Top Of Sequence: Move selected action to the very top of the sequence.

Move Down In Sequence: Move the selected action down one in the sequence.

Move To Bottom Of Sequence: Move the selected action to the very bottom of the sequence.