This section provides a classification
of modular structures:
- Hierarchical
architectures: neural modules are implemented in a layered
cascade of modules, with the main role of the structure being to
determine which module will finally generate the answer to the task
- Parallel
architectures: several modules treat input information in
parallel, and modules can use either all the same information, or
different subsets of it.
- Serial
architectures: serial architectures are composed of several
modules, each one handling a few inputs and producing an intermediate
result that is fed into another module until the final module produces
the system answer.
- Distributed
architectures: are those without a central controller
coordinating how each module works. Instead, each module is responsible
for its own behaviour and must coordinate with the rest of the modules
in order to generate a global behaviour; achieved through the use of a
distributed coordination mechanism.
- Learning-aid
architectures: Learning-aid modules are used to train neural modules
during the training phase. Those learning-aid modules are also made up
of neural networks, but their work was reduced to the training phase.
- Automatically
generated architectures: those include all the methods that
automatically generate the neural structure of a modular controller.
The methods described here do not present a predetermined distribution
of modules, but rather an algorithmic description of how to generate
them.
For the resolution of the problem
depicted in chapter 1, a modular architecture which reduces complexity
there where it is is required. Then, in complex robots, the first
source of complexity is the number of devices to control for any task.
Any simple task will have to manage a high number of devices to control,
hence, the evolutionary search space will be very large for even the
simplest of tasks.
This is more in the line of a
distributed architecture, where modules are created based on the number
of the devices to control (indicating the complexity of the robot),
instead of modularizing tasks. For this purpose, the introduction of a
new way of performing modularity is proposed, which can in turn lead to
more general and scalable modular controllers. Instead of performing
modularization at the task level, that is, a global task is divided
into sub-tasks, we propose to perform a modularization at the device
level, that is, a global controller is divided into sub-controllers;
one per each device.
R. Téllez and C. Angulo,
Modularity
in artificial neural networks,
Encyclopedia
of Artificial Intelligence, Information Science Reference,
2008