Training Neural Network MLP

Asked

Viewed 84 times

1

Hello, I am developing a neural network for recognition of 5 geometric figures: circle, star, pentagon, square and triangle. The network is of type MLP with 1 hidden layer(10 neurons), the entrance layer has 400 neurons, one for each pixel of the image with the geometric figure and the output layer has 1 neuron, which must reach a value for each figure: 0.0 - Circle, 0.25 - Star, 0.5 - Pentagon, 0.75 - Square, 1.0 - Triangle. The learning method is backpropagation.

Input data are normalized to 0 and 1; 1 in the case for white and 0 for black, as the images are monochrome bitmap.

For training, 27 patterns of each type mentioned above are used, drawn in a matrix of 20x20 px, resulting in the 400 neurons of the input layer. For the validation of the network, which is made in each training season are arranged 18 standards of each type.

The problem is in training, where the network actually converges to a minimum error, but it becomes very unstable, according to the graph:

inserir a descrição da imagem aqui

Other parameters of the network:

  • Learning rate: 0.1
  • Momentum: 0.8
  • Neurons hidden layer: 10

I have tried to change the 3 parameters above, but without success, either the network becomes more unstable, or it takes a long time to start decreasing the error. In the verification of the images the network recognizes the patterns, however I would like to perform an early stop based on cross validation to ensure the generalization of the same, but for this it needs values more solid than those presented in the graphic. Thanks in advance !

To suit the classification situation network, I added four more neurons in the output layer, totaling five neurons, each being activated for a figure pattern, and the result of the error lines was the following:

inserir a descrição da imagem aqui

There’s a chance I could get a little better?

  • 1

    Eduardo, your neural network is classificação, For best results you should have 5 neurons in the output layer. Using a single neuron and basing the result on its intensity would be work for network regressão, not your case, a pentagon (0.5) is not half circle (0.0), half triangle (1.0).

  • Okay, I’m gonna make this change

  • I changed the output layer, result on the charts above

No answers

Browser other questions tagged

You are not signed in. Login or sign up in order to post.