I’m going to outline a grammar based method for defining a neural network topology using multiple layers of Backus-Naur Form “grammars. The objective of this method is to provide a way to define the building blocks of a network and to attempt to find repeatable patterns that are useful.
I assume one type of neuron in a network with delays ranging from 1 to 20 milliseconds. More neuron types can be added later. I want to be able to define small polychronous groups of neurons that can be combined with copies of themselves and with other polychronous groups.
The reason for defining the network in terms of polychronous groups is that these groups can represent simple or complex calculations, memory units, etc. The polychronous group representation is basically an encoding of the synapses between a starting neuron position and other neurons such that activation of the initial neurons will cause activation of subsequent neurons if the synapse gains are high enough for activation to occur.
The next grammar layer is that of the network. The network is built by overlaying polychronous groups on top of each other with starting neuron offsets and rotation in the grid defined at the network. The polychronous groups defined at the lower grammatical layer define a map between points. The points define the neurons of the network. The delays between neurons are defined by providing a function of delay per unit distance between neurons. Thus by selection of the mapping by polychronous group, delays are inherently defined.
As you might guess, some neurons may be defined with some/no inputs or outputs. If there are no inputs, there is no point to keeping the neuron. If there are no outputs, and the outputs that exist are not used for network outputs, then those neurons could be pruned. If a polychronous group is placed such that some neurons would extend beyond the limits of the network, then the position of the neurons extending past would be wrapped.
Different neuron types could then be added by specifying different layers of neurons with the same grid as the first type. The polychronous group layer would then select the layer that is being connected for each neuron. If this is utilized, a meta-grammar could be defined which is weighted for the probability of selection that you desire.
More to come on this later.