Neuromodules are a model for experimenting with the temporal dynamics of time-discrete neural networks, following Frank Pasemann, Complex dynamics and the structure of small neural networks, Network: Comput. Neural Syst. 13, 2002, pp. 195--216.
They implement the map:
In other words,
"The widespread recurrent structures found in biological neural networks imply the possibility of complex neural dynamics and, in fact, oscillatory and chaotic activity has been observed frequently in brains. This suggests that complex dynamics may play an important role for specific functions of the brain. Therefore, these dynamical properties have found increasing attention in recent years; but it still remains an open question to what extent and through which kind of mechanisms oscillatory and chaotic dynamics can contribute to effective signal processing in the brain." (p. 195f.)
Return a new instance.
x |
Array of initial values for each node. This sets the size of the network. |
theta |
Bias for each node. This is typically where an external input enters. |
weights |
Array of arrays of values (postive or negative real numbers), which specify the strength of a connection. See also below: -weights |
outs |
Array of indices, which nodes are used as output. When none is given, all nodes are output. |
Set or get the current bias values. This can be a number, or anything that responds to value
by retuning thomething that responds to the math operations, e.g. a Stream, andother Neuromodule, or a Function.
Array
Number of nodes in the network.
Integer
Set or get the current node values.
Array
Set or get the current weights. Each weight can be a number, or anything that responds to value
by retuning thomething that responds to the math operations, e.g. a Stream, andother Neuromodule, or a Function.
A simple example with size = 2 shows the meaning of the values in the array:
Array of Arrays
Set or get the current outputs, an array of indices. If set to nil
, the module returns all node values.
Array of Integers
Calculate the next state. A neuromodule is a stream, see: AbstractFunction and Stream.
inval |
This argument is passed to |
Array of values
Fill up any missing weights and thetas.
Add all nodes (cells) from another neuromodule to this.
neuromodule |
Another Neuromodule. |
this
Merge this with another neuromodule and create a new one.
neuromodule |
Another Neuromodule. |
A new Neuromodule.
Make connections between the existing nodes by changing their respective weights.
triples |
An array that specifies CHECK AGAIN THE ORDER!! |
func |
If given, it will be called to produce the weight for the node, taking as arguments: |
postWarnings |
If set to true, post warnings if inidces don't match weights dimensions. |
Returns a string with a dot-language graph (which can then be rendered with graphViz).