Libann : Frequently Asked Questions
Frequently Asked Questions
Libann is a C++ library which provides implementations of Artificial Neural Networks.
The same thing as an Artificial Neural Network. The two terms are used synonymously.
It's a structure used in pattern recognition and classification applications. It gets its name from the way in which neurologists believe the human brain works.
Essentially it comprises a number of units (neurons) which are interconnected by weights (dendrites). The network starts in a random configuration. In use, there are two phases: the training phase and the operation phase. During training, data is presented to the network, which modifies its weights according to the data presented. In the operation phase, previously unseen data is presented to the network, which compares it to the information gleemed during its training. In other words, the network learns patterns and can make decisions based upon its learning.
You will need a fairly recent C++ compiler and Standard Template Library. It's been developed using GCC but should work on most modern C++ STL/Compiler combinations. Download and install it. Then you need to read the accompanying documentation, and some of the example programs.
There's a number of reasons to use Neural Networks. There's been a lot of research into them in recent years. However, they are not a magic bullet and sometimes different types of network are better for different applications. If you have a pattern recognition or classification problem then a Neural Network is one way to solve it. Neural Networks are particularly useful when you don't have a complete model of the situation and when you have only a small number of exemplar samples. Libann makes it easy to set one up and test how it works.
Do bear in mind that Libann is under development. There's a number of reasons why you might have problems:
Probably the best place is to join the user's mailing list.
Libann is designed to be a ANSI C++ compliant library. As such, it should compile on any compliant compiler. That said, not all compilers are strictly compliant, and Microsoft is notable in this respect. Furthermore, I don't have a Visual C++ compiler to test it with. However, considerable attention has been given to keeping the code as portable as possible, and it should be easy to compile with very few changes. Please email reports of your success (or lack thereof) to the user's mailing list.
Because no one has yet volunteered to write a more comprehensive one. Your feedback is appreciated.