Nonlinear function approximation with the use of neural networks with a GA

조회 수: 4 (최근 30일)
Caroline
Caroline 2020년 9월 18일
답변: Nomit Jangid 2020년 9월 21일
I'm just starting to work with neural networks and I think I understand the theory, but I don't know how to apply it in practice. I did this exemplary example and the result does not match the function, why? I would also like to compare different models of neural networks
inputs = (1:10);
targets = cos(inputs.^2);
n = 2;
net = feedforwardnet(n);
net = configure(net, inputs, targets);
h = @(x) mse_test(x, net, inputs, targets);
ga_opts = gaoptimset('TolFun', 1e-8,'display','iter');
[x_ga_opt, err_ga] = ga(h, 3*n+1, ga_opts);
net = setwb(net, x_ga_opt);
% 1 model
net.trainFcn = 'trainlm';
net1 = train(net,inputs,targets);
w1 = net1(targets);
plot (inputs,w1)
hold on
plot (inputs,targets);
% 2 model
net.trainFcn = 'traingda';
net2 = train(net,inputs,targets);
w2 = net2(targets);
plot (inputs,w2)
hold on
plot (inputs,targets);
%%%
function mse_calc = mse_test(x, net, inputs, targets)
net = setwb(net, x');
y = net(inputs);
mse_calc = sum((y-targets).^2)/length(y);
end

답변 (1개)

Nomit Jangid
Nomit Jangid 2020년 9월 21일
In my understanding, you're trying to train neural networks with one hidden layer (containing 2 neurons). You’re using genetic algorithm to optimize your neural networks. If you’re using MATLAB version R2018b or later, I'd suggest using "optimoptions" instead of "gaoptimset". The only difference between using “optimoptions” and the other functions is, for “optimoptions”, you can include the solver name as the first argument. For example, to set iterative display in ga,
ga_opts = optimoptions('ga','Display','iter');
%instead of
ga_opts = gaoptimset('Display','iter');
By executing this function, "net" will be be optimized such that the mean squared error is minimized
Also, I am sharing a few links which will help you start practising Deep Learning in MATLAB with a few hands-on session and theory as well.

카테고리

Help CenterFile Exchange에서 Function Approximation and Clustering에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by