Groups

As noted in the main network documentation page, there are two main ways neural networks are organized in Simbrain, as loose nodes and connections, and as groups. Group level operations are described on this page and its sub-pages.

Groups are logical groupings of neurons and / or synapses, and of other groups. Groups provide an organized means of displaying and manipulating variables and parameters of an aggregated collection of simpler units like neurons and synapses. Essentially, groups can gather and manipulate the statistics and properties of their constituents. Groups can also be used to perform actions which depend on the aggregated behavior of and/or exert top-down control over their constituents. This is often the case for Subnetworks, and in particular cases where Subnetworks are used to implement a training algorithm.

Subnetworks are groups that are associated with specialized process for manipulating or processing their constituent neuron groups and synapse groups. For example, a backprop network (shown here) is comprised of 3 neuron groups and 2 synapse groups and has special functions for training it to learn input / output mappings.

Interaction Boxes

Groups are surrounded by a gray line, with a special yellow interaction box, often in the upper left-hand corner. A subnetwork--like the backprop network shown here--will have multiple interaction boxes, one for the whole subnetwork (labeled "Backprop") and one for each neuron group and synapse group in it.

Interaction boxes are your interface with a group and its properties. You can draft groups by their interaction boxes, select a group by lassoing or clicking on its interaction box (and then in some cases connect them or copy-paste them), and double click or right click on them to edit them, for example, to open up a training tab for a backprop network, or to change the sparsity of a set of connections.

Creating Groups

Groups can be created in a number of different ways:

Insert menu: From the network insert menu or right click menu, there are sub-menus for inserting neuron groups and subnetworks, and the add neurons dialog has an option for adding neurons.

Converting loose neurons: Loose neurons can be converted to a neuron group using the convert neurons to neuron group command from the edit or right click menu.

Connecting neuron groups: Neuron groups can be connecting to each other using synapse groups, as described below.

Copy and paste: Neuron groups (but currently, not subnetworks) can be copy and pasted in the same way neurons can, as described here.

Scripts: Groups can be created and manipulated in highly customized ways using scripts.

Connecting Groups

Neuron groups can be connected by synapse groups, or can be linked to loose nodes via loose synapses

Using Synapse Groups: To connect two neuron groups using a synapse group, use the same general method described in the connections documentation, but using interaction boxes instead of neurons. That is, select a source neuron group by its interaction box, set it to a source neuron group by pressing 1 or using a menu item, select a target neuron group (potentially the same interaction box, for recurrent networks) by its interaction box, and press 2.

Loose neurons to Neuron Group: To connect loose neurons to a neuron group simply use the standard neuron connection, methods, from a loose neuron or neurons to the neurons inside a neuron group.

Editing Groups

Groups can be edited by double clicking on them to reveal dialogs or by right clicking on them. The actions available from these dialogs and on these menus are described in the relevant pages, for neuron group, synapse group, subnetwork-types, etc.

warning icon Apply Button Warning: For many tabs in group dialogs, changes only take place once an apply button is pressed. If there is such a button, then pressing the ok button in a dialog will not cause changes to occur automatically.