Professional Documents
Culture Documents
MULTILAYERPERCEPTRON
MultiLayerperceptron(MLP)isafeedforwardneuralnetworkwithoneormorelayersbetweeninputandoutputlayer.Feedforwardmeansthatdataflowsinonedirectionfrominputtooutputlayer(forward).Thistype
ofnetworkistrainedwiththebackpropagationlearningalgorithm.MLPsarewidelyusedforpatternclassification,recognition,predictionandapproximation.MultiLayerPerceptroncansolveproblemswhicharenot
linearlyseparable.
TocreateandtrainMultiLayerPerceptronneuralnetworkusingNeurophStudiodothefollowing:
1.CreateNeurophproject
2.CreateMultiLayerperceptronnetwork
3.Createtrainingset
4.Trainnetwork
5.Testtrainednetwork
Step1.CreateNeurophproject.
ClickFile>NewProject.
SelectNeurophProject,andclickNext.
Enterprojectnameandlocation,clickFinish.
Projectiscreated,nowcreateneuralnetwork.
Step2.CreateMultilayerPerceptronnetwork.
ClickFile>NewFile
http://neuroph.sourceforge.net/tutorials/MultiLayerPerceptron.html 1/11
21/9/2016 MultiLayerPerceptron
SelectprojectfromProjectdropdownmenu,selectNeuralNetworkfiletype,clicknext.
Enternetworkname,selectMultiLayerPerceptronnetworktype,clicknext.
Enternumberofinputneurons(2),numberofhiddenneurons(3)andnumberofoutputneurons(1)ineachlayer.LeavetheUseBiasNeuronsboxchecked.ChoosetransferfunctionSigmoidorTanhfromdropdown
menu,forlearningrulechooseBackpropagationandclickCreatebutton.
http://neuroph.sourceforge.net/tutorials/MultiLayerPerceptron.html 2/11
21/9/2016 MultiLayerPerceptron
ThiswillcreatetheMultiLayerPerceptronneuralnetworkwithtwoneuronsininput,threeinhiddenandoneinoutputlayer.AllneuronswillhaveTanhtransferfunctions.
NowweshalltrainthisnetworktolearnlogicalXORfunction.We'llcreatenewtrainingsetaccordingtoXORtruthtable.
Step3.Next,createtrainingset.InmainmenuclickFile>NewFiletoopentrainingsetwizard.
http://neuroph.sourceforge.net/tutorials/MultiLayerPerceptron.html 3/11
21/9/2016 MultiLayerPerceptron
SelectDatasetfiletype,thenclicknext.
Entertrainingsetname,chooseSupervisedfortrainingsettypefromdropdownlist,enternumberofinputsandoutputsasshownonpicturebelowandclickNextbutton.
Thencreatetrainingsetbyenteringtrainingelementsasinputanddesiredoutputvaluesforneuronsininputandoutputlayerrespectively.UseAddrowbuttontoaddnewelements,andclickOKbuttonwhen
finished.
http://neuroph.sourceforge.net/tutorials/MultiLayerPerceptron.html 4/11
21/9/2016 MultiLayerPerceptron
Step4.Trainingnetwork.Tostartnetworktrainingprocedure,dragn'droptrainingsettocorrespondingfieldinthenetworkwindow,and'Train'buttonwillbecomeenabledintoolbar.Clickthe'Train'buttontoopen
SetLearningParametersdialog.
InSetLearningparametersdialogusedefaultlearningparameters,andjustclicktheTrainbutton.
http://neuroph.sourceforge.net/tutorials/MultiLayerPerceptron.html 5/11
21/9/2016 MultiLayerPerceptron
Trainingstoppedafter1700iterationswithtotalneterrorunder0.01.Tryusingdifferenttransferfunctionandlearningrateandobservetheresults.
Step5.Testingtrainednetwork.Afterthetrainingiscomplete,youcanuseTestandSetInbuttonstotestthenetworkbehaviour.
http://neuroph.sourceforge.net/tutorials/MultiLayerPerceptron.html 6/11
21/9/2016 MultiLayerPerceptron
InSetNetworkInputDialogyoucanenterinputvaluesfornetworkseparatedwithspaces.
Theresultofthenetworktestisshownonpicturebelow.
Valueofoutputneuroniscloseto1,whichisthedesiredoutputforthegiveninput.Thesmalldifferencerepresentstheacceptableerror.
RightclickeditorandchooseDisplayPropertiestosetdifferentvisualizationoptions(seepicturebelow).
http://neuroph.sourceforge.net/tutorials/MultiLayerPerceptron.html 7/11
21/9/2016 MultiLayerPerceptron
Youcannowexperimentwithdifferentcombinationsoftransferfunctionandlearningrule,whilecreatingnewMLPnetwork.Forexample,chooseBackpropagationwithMomentumforLearningRule.
Createthesametrainingset(accordingtoXORtruthtable)andclicktrainbutton.
http://neuroph.sourceforge.net/tutorials/MultiLayerPerceptron.html 8/11
21/9/2016 MultiLayerPerceptron
InSetLearningparametersdialogforMomentumuse0.1,andclicktheTrainbutton.
Trainingstoppedafterjust32iterationswithtotalneterrorunder0.01
http://neuroph.sourceforge.net/tutorials/MultiLayerPerceptron.html 9/11
21/9/2016 MultiLayerPerceptron
TestnetworkusingSetInputforthesamevalues(01)asinpreviousexample.
Theresultofnetworktestisshownonpicturebelow.
Valueofoutputneuroniscloseto1,whichisthedesiredoutputforthegiveninput.Thesmalldifferencerepresentstheacceptableerror.
MULTILAYERPERCEPTRONINJAVACODE
packageorg.neuroph.samples
importjava.util.Arrays
importorg.neuroph.core.NeuralNetwork
importorg.neuroph.nnet.MultiLayerPerceptron
importorg.neuroph.core.data.DataSet
importorg.neuroph.core.data.DataSetRow
importorg.neuroph.util.TransferFunctionType
/**
*Thissampleshowshowtocreate,train,saveandloadsimpleMultiLayerPerceptron
*/
publicclassXorMultiLayerPerceptronSample{
http://neuroph.sourceforge.net/tutorials/MultiLayerPerceptron.html 10/11
21/9/2016 MultiLayerPerceptron
publicstaticvoidmain(String[]args){
//createtrainingset(logicalXORfunction)
DataSettrainingSet=newDataSet(2,1)
trainingSet.addRow(newDataSetRow(newdouble[]{0,0},newdouble[]{0}))
trainingSet.addRow(newDataSetRow(newdouble[]{0,1},newdouble[]{1}))
trainingSet.addRow(newDataSetRow(newdouble[]{1,0},newdouble[]{1}))
trainingSet.addRow(newDataSetRow(newdouble[]{1,1},newdouble[]{0}))
//createmultilayerperceptron
MultiLayerPerceptronmyMlPerceptron=newMultiLayerPerceptron(TransferFunctionType.TANH,2,3,1)
//learnthetrainingset
myMlPerceptron.learn(trainingSet)
//testperceptron
System.out.println("Testingtrainedneuralnetwork")
testNeuralNetwork(myMlPerceptron,trainingSet)
//savetrainedneuralnetwork
myMlPerceptron.save("myMlPerceptron.nnet")
//loadsavedneuralnetwork
NeuralNetworkloadedMlPerceptron=NeuralNetwork.createFromFile("myMlPerceptron.nnet")
//testloadedneuralnetwork
System.out.println("Testingloadedneuralnetwork")
testNeuralNetwork(loadedMlPerceptron,trainingSet)
publicstaticvoidtestNeuralNetwork(NeuralNetworknnet,DataSettestSet){
for(DataSetRowdataRow:testSet.getRows()){
nnet.setInput(dataRow.getInput())
nnet.calculate()
double[]networkOutput=nnet.getOutput()
System.out.print("Input:"+Arrays.toString(dataRow.getInput()))
System.out.println("Output:"+Arrays.toString(networkOutput))
EXTERNALLINKS
TolearnmoreabouttheMultiLayerPerceptronsandBackpropagation(learningruleforMultiLayerPerceptron)see:
http://www.learnartificialneuralnetworks.com/backpropagation.html
http://en.wikipedia.org/wiki/Multilayer_perceptron
http://en.wikipedia.org/wiki/Backpropagation
http://neuroph.sourceforge.net/tutorials/MultiLayerPerceptron.html 11/11