Group

Edit on Github


A group instance denotes a group of nodes. Beware: once a group has been used to construct a network, the groups will fall apart into individual nodes. They are purely for the creation and development of networks. A group can be created like this:

// A group with 5 nodes
var A = new Group(5);

Group properties:

Property contains
nodes an array of all nodes in the group
connections dictionary with connections

activate

Will activate all the nodes in the network.

myGroup.activate();

// or (array length must be same length as nodes in group)
myGroup.activate([1, 0, 1]);

propagate

Will backpropagate all nodes in the group, make sure the group receives input from another group or node!

myGroup.propagate(rate, momentum, target);

The target argument is optional. An example would be:

var A = new Group(2);
var B = new Group(3);

A.connect(B);

A.activate([1,0]); // set the input
B.activate(); // get the output

// Then teach the network with learning rate and wanted output
B.propagate(0.3, 0.9, [0,1]);

The default value for momentum is 0. Read more about momentum on the regularization page.

connect

Creates connections between this group and another group or node. There are different connection methods for groups, check them out here.

var A = new Group(4);
var B = new Group(5);

A.connect(B, methods.connection.ALL_TO_ALL); // specifying a method is optional

disconnect

(not yet implemented)

gate

Makes the nodes in a group gate an array of connections between two other groups. You have to specify a gating method, which can be found here.

var A = new Group(2);
var B = new Group(6);

var connections = A.connect(B);

var C = new Group(2);

// Gate the connections between groups A and B
C.gate(connections, methods.gating.INPUT);

set

Sets the properties of all nodes in the group to the given values, e.g.:

var group = new Group(4);

// All nodes in 'group' now have a bias of 1
group.set({bias: 1});

disconnect

Disconnects the group from another group or node. Can be twosided.

var A = new Group(4);
var B = new Node();

// Connect them
A.connect(B);

// Disconnect them
A.disconnect(B);

// Twosided connection
A.connect(B);
B.connect(A);

// Disconnect from both sides
A.disconnect(B, true);

clear

Clears the context of the group. Useful for predicting timeseries with LSTM's.