| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Simple BMP File Analysis Using MLPsBy Povilas Daniušis
pdaniusis@ik.su.lt
AbstractMLP (multilayer perceptron) is great method to perform clasification tasks. However "real world" clasification problems are very noisly and high-dimensional.So to apply MLP you must solve how to extract as many as possible information from raw input data.In this text we will describe little experiment with MLP.We'll use not real world,but generated (human generated,so - little noisly) data - BMP (bitmap) files.
IntroductionIn this text we will discuss one not complex but quite interesting MLP application.In BMP file we have little man face.We'll try to teach MLP to determine he smiles or not.For example:![]()
To do this we'll need:
MLP softwareFor obviuos reasons,i prefer my own MLP software,perceptron training system Petras,but of course you can use any MLP trainer/simulator. Petras is written in C++,it uses some optimizations like dynamic weight change,momentum etc(learning alghoritm is back-propagation, about what you can read in generation5 essays or many where on the web). You can download this program from my web site.Raw training data and validation dataThis was my first experiment with neural networks,so face after face i painted them in my own hands ;).To reach accaptable MSE (mean squared error), we will need about 300 faces.Method how to extract MLP - friendly training dataEach BMP file of raw training data is 122 bytes long.This is quite big input vector and we will need about 1000 examples to reach acceptable MSE.So wee will use simple method how to reduce input vector size to 27 and avoid pleasure of painting 1000 or more faces.
Just compile it,place executable in folder with raw training data 1.bmp,2.bmp,...,321.bmp and execute.You will get training data for my perceptron training system Petras.
Neural network parametersWe do not need negative outputs,so as activation function was used logistic sigmoid. ![]() In this experiment we use 3 layer MLP with 10-60 units in one hidden
layer.Best results was produced by 30 unit hidden layer networks.
In output layer we have one neuron,what returns net output:
0.9 if MLP thinks it is smile and 0.1 if non smile. Momentum factor = 0.9,initial learning rate = 0.25. ResultsAfter training MLP provides quite nice results.There is example for validation sub-set:
AppendixDownloads:
Good luck in your research!
Submitted: 17/02/2004 Article content copyright © Povilas Daniušis, 2004.
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
All content copyright © 1998-2007, Generation5 unless otherwise noted.
- Privacy Policy - Legal - Terms of Use -