Date: Feb 6, 2013 11:52 AM
Author: Greg Heath
Subject: ga optimization of nn weights

% Subject: ga optimization of nn weights  
% From: Syed Umar Amin <syed.umar.amin@gmail.com>
% Sent: Feb 4, 2013 11:17:22 AM

getting error Index exceeds matrix dimensions.
pls help

Name Size Bytes Class Attributes
cancerInputs 9x699 50328 double
cancerTargets 2x699 11184 double

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
% inputs for the neural net
inputs = cancerInputs;
% targets for the neural net
targets = cancerTargets;
% number of neurons
n = 10;
% 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);
Error:
Index exceeds matrix dimensions.