MATLAB: Create an Evolutionary Neural network ??

genetic algorithmneural networktraining

I need to create an Evolutionary Neural network and i used the function
net = patternnet(hn); but i tuned the weights manually but what i need is to have the output value of the neural network when the input passes through the layer until the output node and get the result without any back propagation of the errors neither adjutement of the weights .So how can i do that ? Can i define my training function as input of the patternet(hn,@my_fun) or newff(…,@my_fun) is it possible ? the second idea is to create the neural network with the function patternet or any one else , but what i need here is to stop the neural network after his first ieration which means don't let teh neural network adjusting the weights by itself .

Best Answer

Since this is a pattern recognition algorithm, for c classes or categories, your targets should be columns of the c-dimensional unit matrix. For an I-H-O (O=c) node topology, use the layer equations
h = tansig(IW*x+b1); % Output of hidden layer
y = logsig(LW*h+b2); % Output of output layer
e = t-y; % error
NMSE = mse(e)/var(t,1,2)% Normalized mean-square-error
NMSEgoal = 0.005
Genetic Search: Consult a reference because I'm making this up.
[ I N ] = size(x)
[ O N ] = size(t)
Neq = N*O % Total number of scalar training equations
1. Standardize x
2. Initialize the random number generator
3. Choose the number of hidden nodes, H
This will yield Nw = (I+1)*H+ (H+1)*O unknown weights to be estimated from
Neq equations. Require Neq > Nw but desire Neq >> Nw . So choose
H << Hub = (Neq-O)/(I+O+1)
4. Generate M random sets of Nw weights
5. Use the weights in the equations and choose the best B nets.
6. Randomly mutate m% of the B weight sets
7. Generate (M-B) new random sets of Nw weights
8. Repeat 4-7 until the NMSEgoal is reached or the number of repetitions has exceeded a specified limit.
9 . If NMSEgoal is reached, STOP. Otherwise go to 3 and increase H
Again, see a genetic algorithm reference,
Thank you for officially accepting my answer.
Greg