To optimize a neural network by giving 46*3 inputs from excel and getting 46*1 output using a genetic algorithm
3 views (last 30 days)
Show older comments
Priya Dharshini
on 3 Apr 2016
Edited: Walter Roberson
on 5 Apr 2016
I have found the answer from the Matlab team but the code is applied for a single input.
I need to get 3 inputs of 43 rows from excel and 1 output of 43 rows from excel should be trained by neural network and should be applied using genetic algorithm to find the mean squared error.
The following code example describes a function that returns the mean squared error for a given input of weights and biases, a network, its inputs and targets.
function mse_calc = mse_test(x, net, inputs, targets)
% 'x' contains the weights and biases vector
% in row vector form as passed to it by the
% genetic algorithm. This must be transposed
% when being set as the weights and biases
% vector for the network.
% To set the weights and biases vector to the
% one given as input
net = setwb(net, x');
% To evaluate the ouputs based on the given
% weights and biases vector
y = net(inputs);
% Calculating the mean squared error
mse_calc = sum((y-targets).^2)/length(y);
end
The following code example describes a script that sets up a basic Neural Network problem and the definition of a function handle to be passed to GA. It uses the above function to calculate the Mean Squared Error.
% INITIALIZE THE NEURAL NETWORK PROBLEM %
% inputs for the neural net
inputs = (1:10);
% targets for the neural net
targets = cos(inputs.^2);
% number of neurons
n = 2;
% create a neural network
net = feedforwardnet(n);
% configure the neural network for this dataset
net = configure(net, inputs, targets);
% create handle to the MSE_TEST function, that
% calculates MSE
h = @(x) mse_test(x, net, inputs, targets);
% Setting the Genetic Algorithms tolerance for
% minimum change in fitness function before
% terminating algorithm to 1e-8 and displaying
% each iteration's results.
ga_opts = gaoptimset('TolFun', 1e-8,'display','iter');
% PLEASE NOTE: For a feed-forward network
% with n neurons, 3n+1 quantities are required
% in the weights and biases column vector.
%
% a. n for the input weights
% b. n for the input biases
% c. n for the output weights
% d. 1 for the output bias
% running the genetic algorithm with desired options
[x_ga_opt, err_ga] = ga(h, 3*n+1, ga_opts);
0 Comments
Accepted Answer
Greg Heath
on 3 Apr 2016
After you get your data from EXCEL, use my corrected version of the algorithm posted in the NEWSREADER.
By the way, it is not necessary to make multiple posts of the same problem in both the NEWSGROUP and ANSWERS.
Thank you for formally accepting my answer
Greg
1 Comment
More Answers (1)
Walter Roberson
on 3 Apr 2016
Use xlsread to get the data from excel. Assign a portion of it to the variable name "inputs" and another portion to "targets" and remove the two assignments to those variables in the sample script .
1 Comment
See Also
Categories
Find more on Genomics and Next Generation Sequencing in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!