MATLAB Answers

0

create target for neural network

Hi all,
I had extracted feature vector of an image and saved it in a excel document. feature vector is 42x42 dimension. I don't know how to create target for this input so i can train the neural network. I need to do emotion classification. 5 classes. So, how do i create target vector and train the network?

  댓글 수: 0

로그인 to comment.

답변 수: 2

 채택된 답변

Hi, Remo
Feature vector that extracted from an image ideally m x 1 matrix.
You said that it's 42 x 42. Is it means 42 feature of 42 images??
If so, then you need to create 5 x 42 matrix of target.
First create matrix of zero 5 x 42.
for feature#1, this feature belong to which emotion? Let say 3rd class. Then you need to mark at first column 3rd row as 1.
t = [0 0 0 0 0 ... until 42
0 0 0 0 0 ...
1 0 0 0 0 ...
0 0 0 0 0 ...
0 0 0 0 0 ...
And so on.
I have an example below. In this example I have 5x5 feature vector. and 5x5 matrix of target.
p = [1 0 1 0 1
0 1 1 0 1
1 0 0 1 1
0 1 0 1 1
1 0 0 1 1];
t = [0 0 1 0 0
0 0 0 0 1
1 0 0 0 0
0 1 0 0 0
0 0 0 1 0];
PR = [0 1;0 1;0 1;0 1;0 1];
net = newff(PR,[5 25 25 5],{'logsig','logsig','logsig','logsig'},'traingda');
net.trainParam.epochs = 1500;
net.trainParam.goal = 0;
net = train(net,p,t);
Then try to simulate the first feature.
sim(net,p(:,1))
And the result :
ans =
0.0032
0.0003
0.9955
0.0000
0.0029
It means this inputs belong to 3rd class.
I hope this will helps.

  댓글 수: 3

hi chandra,
thanks for ur time in answering my question. from ur explanation, i can understand the concept of creating the target vector. thank you sir.
Chandra Kurniawan Can you please explain above written code for more convince .
PR = [0 1;0 1;0 1;0 1;0 1]; net = newff(PR,[5 25 25 5],{'logsig','logsig','logsig','logsig'},'traingda'); net.trainParam.epochs = 1500; *net.trainParam.goal = 0; net = train(net,p,t);* .
Thank you.
Best regard
I have made two feature matrices ( the purpose was to classify weather infection exist or not in a leaf) of size 80x16 and 40x16 respectively. The first one was for training images(80 images with 16 features) and other is test images(40 images with 16 features). I had also classified them accurately using SVM classifier. Now i want to classify those same images with the help of NEURAL NETWORK. Please suggest what can I do

로그인 to comment.


Greg Heath 님의 답변 14 Feb 2012

remo asked on 12 Feb 2012 at 12:29
>I had extracted feature vector of an image and saved it in a excel document. feature vector is 42x42 >dimension. I don't know how to create target for this input so i can train the neural network. I need to >do emotion classification. 5 classes
The input features must be column vectors. If you extract a feature matrix from an original matrix, you can convert it to a feature vector using the colon operator. For example, if you have a feature matrix fm with size(fm) = [ r, c ], then fv = fm(:) will be the corresponding feature vector with size(fv) = [ r*c, 1 ].
If you have N feature vectors from N images, the N columns form an input matrix, p, with size(p) = [ I N ] and I = r*c.
If the N images come from k classes, the corresponding target matrix, t, contains N columns of the k-dimensional unit matrix eye(k). The row containing the "1" is the class index for the corresponding input vector. size(t) = [ O N ] with O = k.
The output matrix is readily formed using the function IND2VEC. For example
>> t = full(ind2vec([ 1 3 5 2 4 ]))
t =
1 0 0 0 0
0 0 0 1 0
0 1 0 0 0
0 0 0 0 1
0 0 1 0 0
Given a feature vector, the resulting elements in the output vector can be interpreted as approximations to the input-conditional class posterior probabilities. The input vector is then assigned to the class corresponding to the maximum output.
A single hidden layer with H nodes is sufficient. The resulting node topology is I-H-O. This will result in Neq = N*O nonlinear equations to be "solved" for Nw = (I+1)*H+(H+1)*O unknown weights. For training to convergence, it is required that Neq >= Nw. However, the condition Neq >> Nw is preferable to mitigate real-world noise and measurement error. This is equivalent to requiring
H <= Hub is required but H << Hub is desired where the upper bound Hub is given by
Hub = ( Neq - O ) / ( I + O + 1 ).
A practical value for H can be obtained by trial and error keeping the above conditions in mind.
Hope this helps.
Greg

  댓글 수: 1

Hi Greg,
thank you for ur time in answering my question. I would try ur method in creating my target vector. Thank you sir.

로그인 to comment.



Translated by