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 |
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]);
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.
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
(not yet implemented)
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);
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});
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);
Clears the context of the group. Useful for predicting timeseries with LSTM's.