Hi Matthew, It's a long time since I read the Gang of Four patterns books, but I'm sure you'll find the appropriate structure there. The key is to identify the appropriate separation of concerns.
The SP is composed of the following (this is an abstraction, not directly related to the current NuPIC CLA design): A region of columns. The collection of columns can be viewed as having various sorts of structure (random/none, 1D, 2D, 3D, fractally-dimensional, and of high dimension etc), with some paradigms for managing inhibition and sparsity (global, local, radial, line-like, surface-like, cone-like, on-centre, off-centre etc). An object or data structure which connects the input bits to the columns. Equivalent to a bunch of nerves coming in from the sensor. Each connection is a data structure pointing to the input bit, the column, and a permanence, equivalent to an input axon and a columnar dendritic synapse. The current discussion is about a) the organisation (dimensionality, topology etc) of these columns and connections, and b) the inhibition strategy (local, global, topological etc) of columns. For symbolic (or arbitrary category) data (eg. English words) and for a single scalar, there is no real topology in the data, so your current flat organisations and global inhibition are fine (or possibly optimal, since the lack of topology makes the learned permanences more "egalitarian" whereas connection topology would likely miss out on good connections). For data full of topological information (such as the handwriting discussed in the other current thread here) you'd almost certainly be better off with topological structures in both nerve bundles (input-column connections) and in the inhibition strategy. Foggy memories are telling me we should therefore split things out along both a) and b), using an InputConnector superclass to handle the former (Collection Pattern I'm guessing) and an InhibitionStrategy superclass for the former (Strategy Pattern to encapsulate algorithms). I am getting old, no need to remind me! Regards, Fergal Byrne _______________________________________________ nupic mailing list [email protected] http://lists.numenta.org/mailman/listinfo/nupic_lists.numenta.org
