Each
artificial neural network can be viewed as a mean to capture knowledge,
by training or learning from experience, and represent intelligence
by processing new data.
For
example a network trained to filter Spam based on keywords could substitute
piece of intelligence a human would use by operating an email system.
On
the journey to era of intelligent machines there would be a need for
systems to seamlessly expand their "knowledge base". As
observed throughout human history that would require a media to share
and exchange knowledge. And that in turn would require some standardization
of the way knowledge is represented.
The
goal of NNDef is to facilitate exchange and execution of Neural Networks
in a standard way.
Currently
NNDef project includes following modules:
NNDef
DTD:
DTD
stands for "Document Type Definition" which formulates
the meta-data for representing structured documents. DTD define
the legal building blocks of an XML (Extensible Markup Language)
document.
NNDef DTD allows a Neural Network to be expressed as XML document
in a standard and portable format, referred to as KnowledgePack.
Such documents can be shared and executed using the runtime modules
of NNDef.
NNDef
Runtime Engine:
For
portability purposes this package is developed using java and can
run on any platform. The engine will be initialized by a Neural
Network definition (represented in NNDef XML format) and would be
able to process inputs data and generate outputs based on knowledge
captured in the ANN definition.
Executed from command-line NNDef Runtime Engine would recognize
the required input parameters for selected network and prompt the
user to provide missing data.
It will then compute and return the resulting data by applying the
network logic.
NNDef
Runtime Library:
The
same ANN definition can be embedded in other applications using
NNDef runtime library.
At the moment the library supports static, dynamic and multi-threaded
binding for Java language. A Perl and C/C++ library would be available
soon.
This package is optimized for performance and size and is seamlessly
integrateable into any type of application.
NNDef
Matlab Exporter:
The
most important aspect of Neural Network development is design and
training.
Normally Expert use special authoring and simulations packages for
that purpose.
One of the most frequently used packages is Matlab NN-toolkit.
In order to simplify the use, NNDef provides a Network Exporter
for Matlab that will generate XML file from a trained network.
NNDef
Transformers and Sample Models:
Transformers
are used to convert Neural Network models from different authoring
and simulation packages to NNDef xml format.
In
addition NNDef repository includes trained models in NNDef xml format
for immediate use.
License Agreement:
All
components of NNDef projects are free of charge for commercial
and non-commercial use as long as the following conditions are
adhered to.
Copyright
remains Pejman Makhfi's, and as such you must retain this notice and
the following text and disclaimers in all redistributions of the software
and resulting products.
All advertising materials mentioning features or use of this software
must display the acknowledgement.
Disclaimer:
NNDef
is offered "as is". We do not provide any warranty of
the items whatsoever, whether express, implied, or statutory, including,
but not limited to, any warranty of merchantability or fitness for
a particular purpose or any warranty that the contents of the items
will be error-free. In no respect shall we incur any liability for
any damages, including, but limited to, direct, indirect, special,
or consequential damages arising out of, resulting from, or any
way connected to the use of the items.