Error in the configuration for a Genetic Algorithm - Integral Values output
Mostrar comentarios más antiguos
Im trying to find the correct number of neurons that go into each of the 3 Hidden Layers in an NN through a genetic algorithm, that gives out integral values for number of neurons in each layer.
My function takes in the arguments for number of neurons in each layer, and outputs the RMSE for that configuration. Heres the function I wanna minimize.
function output_rmse = CalculateBestConfiguration(NeuronsIn_HL_1,NeuronsIn_HL_2,NeuronsIn_HL_3)
%% Create Pipeline
trainer1 = MLP_pipeline;
%% Generate Data
[X_data , Y_data, q1_set, ~, ~,~,~,~,~] = PlotWorkspace(10,7,5);
[trainInd,testInd] = dividerand(length(q1_set),80,20);
%% Feed Training Data
trainer1.input_training = [X_data(trainInd);Y_data(trainInd)];
trainer1.output_training = q1_set(trainInd);
%% Train the Perceptron Model
trainer1.fit_MLP([NeuronsIn_HL_1,NeuronsIn_HL_2,NeuronsIn_HL_3],'trainbr');
trainer1.train_MLP()
%% Feed Test Data
trainer1.input_test = [X_data(testInd);Y_data(testInd)];
trainer1.output_test = q1_set(testInd);
%% Predict Results
theta_predicted1 = trainer1.predictor();
%% Evaluate Accuracy
error_values1 = trainer1.generate_error(theta_predicted1);
output_rmse = sqrt(mean(error_values1.^2));
end
Theres something wrong with my configuration for the GA. I am not able to find it.
opt = optimoptions('ga');
% opt.InitialPopulationMatrix = ones(30,3);
opt.MaxTime = 4*60*60;
opt.MigrationFraction = 1.0000e-06;
% opt.MutationFunction= 'mutationgaussian';
opt.PopulationSize = 30;
opt.FunctionTolerance = 1e-4;
opt.MaxGenerations = 500;
fun = @CalculateBestConfiguration;
IntCon = 1:3;
lb = [1,1,1];
ub = [21,21,21];
A = [3 3 3];
b = 180;
nvars = 3;
nonlcon = [];
Solution = ga(fun,nvars,A,b,[],[],lb,ub,nonlcon,IntCon,opt);
Here's my error:
Not enough input arguments.
Error in CalculateBestConfiguration (line 11)
trainer1.fit_MLP([NeuronsIn_HL_1,NeuronsIn_HL_2,NeuronsIn_HL_3],'trainbr');
Error in createAnonymousFcn>@(x)fcn(x,FcnArgs{:}) (line 11)
fcn_handle = @(x) fcn(x,FcnArgs{:});
Error in fcnvectorizer (line 13)
y(i,:) = feval(fun,(pop(i,:)));
Error in gaminlppenaltyfcn
Error in gapenalty
Error in makeState (line 64)
Score = FitnessFcn(state.Population(initScoreProvided+1:end,:));
Error in galincon (line 17)
state = makeState(GenomeLength,FitnessFcn,Iterate,output.problemtype,options);
Error in gapenalty
Error in gaminlp
Error in ga (line 393)
[x,fval,exitFlag,output,population,scores] = gaminlp(FitnessFcn,nvars, ...
Error in untitled (line 18)
Solution = ga(fun,nvars,A,b,[],[],lb,ub,nonlcon,IntCon,opt);
Caused by:
Failure in user-supplied fitness function evaluation. GA cannot continue.
Failure in initial user-supplied fitness function evaluation. GA cannot continue.
2 comentarios
Walter Roberson
el 10 de Abr. de 2019
What are MLP_Pipeline and fit_MLP ? They are not part of any toolbox I can find.
Aniketh Ramesh
el 10 de Abr. de 2019
Respuestas (0)
Categorías
Más información sobre Genetic Algorithm en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!