Dear Wiki user,
You have subscribed to a wiki page or wiki category on "Hama Wiki" for change notification.
The "MultiLayerPerceptron" page has been changed by YexiJiang:
https://wiki.apache.org/hama/MultiLayerPerceptron?action=diff&rev1=25&rev2=26
## page was renamed from MultipleLayerPerceptron
Node: This page is always under construction.
+
+ <<TableOfContents(5)>>
== What is Multilayer Perceptron? ==
A [[http://en.wikipedia.org/wiki/Multilayer_perceptronmultilayer perceptron (MLP)]] is
a kind of Too feed forward [[http://en.wikipedia.org/wiki/Artificial_neural_networkartificial
neural network]], which is a mathematical model inspired by the biological neural network.
@@ 51, +53 @@
== How to use Multilayer Perceptron in Hama? ==
 MLP can be used for both regression and classification. For both tasks, we need first initialize
the MLP model by specifying the parameters.
+ MLP can be used for both regression and classification. For both tasks, we need first initialize
the MLP model by specifying the parameters. The parameters are listed as follows:
+ <rowbgcolor="#DDDDDD"> Parameter  Description 
+ model path  The path to specify the location to store the model. 
+ learningRate  Control the aggressive of learning. A big learning rate can accelerate
the training speed,<<BR>> but may also cause oscillation. Typically in range (0,
1). 
+ regularization  Control the complexity of the model. A large regularization value can
make the weights between<<BR>> neurons to be small, and increase the generalization
of MLP, but it may reduce the model precision. <<BR>> Typically in range (0, 0.1).

+ momentum  Control the speed of training. A big momentum can accelerate the training
speed, but it may<<BR>> also mislead the model update. Typically in range [0.5,
1) 
+ squashing function  Activate function used by MLP. Candidate squashing function: ''sigmoid'',
''tanh''. 
+ cost function  Evaluate the error made during training. Candidate cost function: ''squared
error'', ''cross entropy (logistic)''. 
+ layer size array  An array specify the number of neurons (exclude bias neurons) in each
layer (include input and output layer). <<BR>> 
+
+ The following is the sample code regarding model initialization.
+ {{{
+ String modelPath = "/tmp/xorModeltrainingbyxor.data";
+ double learningRate = 0.6;
+ double regularization = 0.02; // no regularization
+ double momentum = 0.3; // no momentum
+ String squashingFunctionName = "Tanh";
+ String costFunctionName = "SquaredError";
+ int[] layerSizeArray = new int[] { 2, 5, 1 };
+ SmallMultiLayerPerceptron mlp = new SmallMultiLayerPerceptron(learningRate,
+ regularization, momentum, squashingFunctionName, costFunctionName,
+ layerSizeArray);
+ }}}
=== Two class learning problem ===
To be added...
