Shark is a C++ library for machine learning.
Shark examples
- Example 1: neural net solving the XOR problem
- Example 2: 'friendly' neural net getting ready to tackle the XOR problem
- Example 3: evolving neural net solving the XOR problem
- TicTacToeLearner
Note for Qt Creator users
Add the following line to your project file (to prevent link errors):
Shark suggestions
- Shark does not save its neural networks in the PMML language
- The method 'FFNet::outputValue(i)', where 'i' is the (integer) index of an output neuron, does not check if this index exists. I would suggest to add an assert to prevent this during debugging
- FFNet does not have any public method to check the number of neurons. Such a getter would not hurt...
- The method 'FFNet::activate(inputs)', where 'inputs' is an Array<double> is protected. Personally, I do not understand this design choice: the purpose of a neural network is to process input, so I would make this method public
- The method 'FFNet::activate(inputs)', where 'inputs' is a non-const method. I do understand that giving input to a neural network, that it will have new output. Still, I believe that this does not change the network itself: the structure and weights are unchanged. Personally, I would make the stored outputs mutable and the FFNet::activate method a const method.
- The Shark data type 'Array<double>' should be replaced by the std::vector, Boost::Array or Boost::Multi_array data type: the data types mentioned are better known and less (!) complex