| The Developers and Developers Lite levels
allow you to integrate your own algorithms into
NeuroSolutions through dynamic link libraries (DLLs).
Every NeuroSolutions component implements a function
conforming to a simple protocol in C. To add a new
component you simply modify the template function for the
base component and compile the code into a DLL -- all
directly from NeuroSolutions! We also have a library
of public DLLs available online
for all NeuroSolutions users. User-defined
Algorithms
Interconnection Matrices
The adaptive weights that connect the processing
elements of two layers together are stored as an
interconnection matrix. This matrix can be customized,
providing the ability to create fully-connected or sparse
matrices.
Weight Update Procedures
The Gradient components of NeuroSolutions are
used to update the network weights. These components can
be customized to implement your own learning algorithms
by specifying new weight update procedures.
Error Criteria
Supervised learning requires a cost function
that represents an error between the network output and
some desired response. Error Criteria components can be
modified to implement your own cost functions.
Unsupervised Learning Rules
Unsupervised weight matrices can be customized
to implement your own derivatives of Hebbian,
competitive, and Kohonen learning. In fact, you can
implement any unsupervised learning rule that operates on
a single layer of weights.
Custom Input/Output
The input components can be modified to inject
your own data directly into a simulation. The data might
be coming from a set of sensors monitoring a real-world
process, or simply from a specialized file format.
Similarly, output components can be modified to send
simulation data directly to a user-defined procedure,
file or real-world process.
Customized Parameter Scheduling
NeuroSolutions allows certain network
parameters, such as learning rates, to be altered during
a simulation. The Scheduler components can implement
user-defined schedules.
Nonlinearities
The transfer function of a processing element
(PE) is often referred to as the nonlinearity. Any
nonlinearity within NeuroSolutions can be modified to
create your own PE.
Memory Structures
NeuroSolutions uses adaptive memory structures
for the processing of temporal information. The Memory
components can be customized to create user-defined
memory structures with adaptive feedback.
DLL Example:
Hyperbolic Tangent
Nonlinearity with User-defined Gain Factor
Before: NeuroSolutions provides
you with the code for the standard Tanh function.
void performLinearAxon(float *data, int length,
float *bias, float beta) {
for (int i=0; i<length; i++)
data[i] = (float)tanh(beta*data[i] + bias[i]);}
After: User modifies the
provided code to add a gain factor.
void performLinearAxon(float *data, int length, float
*bias, float beta) {
float gain = getFloatParameter(instance, 2, 1);
for (int i=0; i<length; i++)
data[i] = gain*(float)tanh(beta*data[i] + bias[i]);}
Requirements:
- Microsoft Visual C++ 5.0/6.0 or higher
|

|