MATLAB Answers


Neural Network training and improvement

Asked by belka0011
on 25 May 2012

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 -

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?



No products are associated with this question.

4 Answers

Answer by Greg Heath
on 31 May 2012
 Accepted answer

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.



Answer by Greg Heath
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.

Hard to say more without more information.

[I N ] = size(x) ?

[ O N ] = size(t) ?

H = Number of hidden nodes?

Relevant code ?

Hope this helps.


  1 Comment

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.

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

graphics: - performace graph - regression - target set - 5th column(i.e. 13 targets by 4 items)

Answer by anjaneya
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)


I hoped that with little collection I'll positive dinamics

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).

Answer by Greg Heath
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.


  1 Comment

data in text format -

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)

Discover MakerZone

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

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

MATLAB Academy

New to MATLAB?

Learn MATLAB today!