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.