Groups

These 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 consituents. This is often the case for Subnetworks, and in particular cases where Subnetworks are used to implement a training algorithm.

When networks grow beyond a certain size, it becomes pragmatic (above and beyond simple organization) to deal with many neurons or synapses at once. Groups can be associated with specific operations and data structures which wouldn't make sense for loose neurons or synapses.

It is important to note that groups can include other groups as members of their constituency. These groups are known as Subnetworks, and are usually associated with some specialized process for manipulating multimple neuron groups and synapse groups.

Pictured right is an example of a group (subnetwork), a backprop network, which is itself comprised of 5 subgroups: 3 neuron groups and 2 synapse groups. You can click on any of the interaction tabs and the associated elements will be selected. This can be useful for randomizing, moving, and deleting elements. Double-cliking or right-clicking on the interaction tabs is the primary means by which users can interact with groups.

Interaction Box

Groups are distinguished by being surrounded by a gray line, with a special tab, often in the upper left-hand corner. This box is the your interface with the subnetwork and its properties. 

Single Click: Single clicking on the interaction box of a group highlights all of that groups nodes and / or weights. They can be dragged around as a unit,which is often very convenient. They can also be modified by any comand that only modifies selected elements. For example they can be randomized, incremented, decremented (using the up and down arrows) or "cleared" (set to 0).

Right click / Group Actions: By right-clicking on a group's interaction box various actions arise. Many of these are customized to a particular group type. However most of the time (especially for neuron and synapse groups), this menu will include options to clamp/freeze neurons/synapses in the group, couple the group to some other entity in the workspace, edit the group, or delete the group.

Double Click: If you double-click on the subnetwork tab it calls up that network's properties dialog, if a property dialog is defined for that group. The propery dialogs allow the user to manipulate the many variables comprising the consituent entities of the group as well as any group level properties.

Default Group Actions

All groups have the following default actions defined:

Remove group: Delete the group and all its constituents.

Edit group name: Edit the name of the group which appears in the interaction tab.

Neuron and Synapse Groups

Neuron Groups and synpase groups can be created from existing collections of neurons or synapses. This can be useful for organizing a complex network.

Neuron Group: To create a neuron group select the neurons you want to add to the group and in the network or popup menu select Edit > Group > Neuron Group.

Synapse Group: To create a synpase group select the syanpses you want to add to the group and in the network or popup menu select Edit > Group > Synapse Group.

Subnetworks: At this time Subnetworks cannot be created from consituent groups. Though there are future plans to allow this, for the time being custom subnetworks can only be created through scripting.