## Neural Network training and improvement

on 25 May 2012

### Greg Heath (view profile)

My aim is to create neural network than will give threshold of distortions visibility after some actions with image. So, what I do, the inputa of net - DCT coefficients and targets maximal thresholds in which distortions aren't visible. I've prerared little collection of inputs-targets, and trying to train NN with help of feedforward function, but net don't want get trained? the graphics of training with differents number of neurons in hidden layer are here - http://www.dropbox.com/gallery/19618569/1/test2?h=849bb1

Help me, what is might be the problem, how to emprove my net? and also I cannot found how I can change the number of output neurons?

## Products

No products are associated with this question.

### Greg Heath (view profile)

on 31 May 2012

column2 = column1

column 4 = column3 = repmat([1 3 5 7]', N, 1)

Therefore you can make four plots of column5 vs column1 with column3 = constant.

If there is a deterministic trend to the four plots, the design should be straightforward provided your trn/val/tst partition results in three sets with similar dominant characteristics.

Before you design a net that corresponds to all of the column3 values, you might want to look at the four separate nets corresponding to column3 = constant.

Hope this helps.

Greg

### Greg Heath (view profile)

on 25 May 2012

The number of input and output neurons are automatically determined by CONFIGURE or TRAIN.

Some of the training plots indicate that training, validation and testing data cannot be assumed to be random draws from the same probability distribution.

[I N ] = size(x) ?

[ O N ] = size(t) ?

H = Number of hidden nodes?

Relevant code ?

Hope this helps.

Greg

belka0011

### belka0011 (view profile)

on 26 May 2012

Some troubles was with 14 input nodes - NN was with 13, but now for 4 nodes it's configered correctly.

Sizes: 4 inputs 4 targets
1 hidden layer with 10 neurons.

Code:
net = feedforwardnet(10);
net.trainParam.epochs = 100;
[net, tr] = train(net, InputSet, TargetSet);

graphics:
http://dl.dropbox.com/u/19618569/performance.png - performace graph
http://dl.dropbox.com/u/19618569/regression.png - regression

http://dl.dropbox.com/u/19618569/SET2.xls - target set - 5th column(i.e. 13 targets by 4 items)

### anjaneya (view profile)

on 26 May 2012

"I've prerared little collection of inputs-targets" ensure that the number of training data-sets are more than the number of parameters of the Neural network(weights and biases)

belka0011

### belka0011 (view profile)

on 26 May 2012

I hoped that with little collection I'll positive dinamics

anjaneya

### anjaneya (view profile)

on 27 May 2012

get more training data. plz understand that you need more number of data points than the ANN unknowns(weights and biases).

### Greg Heath (view profile)

on 27 May 2012

It is very clear that your training data does not adequately represent the relevant characteristics of your validation and test data. Try multiple designs with different data divisions in addition to different initial weights.

If you will include a text (*.xls=>*.txt) version of the data,I can take a look at it with the traveling laptop I will be using for the next week or so.

Hope this helps.

Greg

belka0011

### belka0011 (view profile)

on 28 May 2012

data in text format - http://dl.dropbox.com/u/19618569/SET2.txt

first two columns - block position in image
3th and 4th - block DCT position
5th - maximal thresholds in which distortions aren't visible(i.e. targets)

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi