- Это модель нейронной сети с обратной связью для
прогнозирование параметра (т). В основном, код работает над
различное количество скрытых узлов в двух скрытых слоях и рассчитать
Относительная абсолютная ошибка для каждой топологии NN.
Для каждой NN-топологии процесс обучения запускается три раза, чтобы получить среднюю ошибку для этой топологии.
- Здесь цикл for (k) должен запускать одну и ту же топологию NN 3 раза, чтобы
принять среднюю ошибку.
Цикл for (j) - это количество скрытых узлов во втором скрытом слое.
И цикл for (i) - это количество скрытых узлов в первом скрытом слое.
- Я бы хотел сохранить структуру "net" со своими свойствами, NN
топология и связанная ошибка в одной матрице или массиве
найдите, какая топология NN имеет наименьшую ошибку.
Нет синтаксической ошибки, но проблема в том, что код не хранит все возможные комбинации для топологий NN и соответствующие им ошибки. Вот что я написал ... вы можете попробовать использовать случайные данные вместо чтения строки таблицы Excel.
close all; clear; clc
opengl('save', 'software')
% define inputs & target
train_data = xlsread('trainingData.xlsx', 1);
x1 = train_data(:,1);
x2 = train_data(:,2);
x3 = train_data(:,8);
x4 = train_data(:,9);
t = train_data(:,10);
in = [x1 x2 x3 x4];
% Create and train the Multilayer FFNN
for i = 4:8
for j = 4:8
for k = 1:3
net = feedforwardnet([i j], 'trainlm');
net = configure(net, in', t');
net.layers{1}.transferFcn = 'logsig';
net.layers{2}.transferFcn = 'logsig';
net.divideParam.trainRatio = 0.7; % training set [%]
net.divideParam.valRatio = 0.3; % validation set [%]
net.divideParam.testRatio = 0; % test set [%]
% Train the NN
[net,tr,Y,E] = train(net, in', t');
% Calculate Error
AbsErr(k) = abs((Y(k) - t(k)) / t(k)) * 100;
end
meanAbsErr(j) = mean(AbsErr);
Topology{j,1} = sprintf('[%d %d]', i, j);
Performance{j,1} = {Topology(j), meanAbsErr(j)};
end
end
Я ожидаю, что массив "Топология" будет иметь следующие комбинации архитектур NN:
[4 4], [4 5], ..., [4 м] [5 4], [5 5], ..., [5 j]. , , [я 4], [я
5], ..., [i j]
i: количество узлов в первом скрытом слое.
j: количество узлов во втором скрытом слое.
И массив «Производительность», чтобы иметь относительную абсолютную ошибку для каждой из этих архитектур NN. Что я должен изменить в коде, чтобы добиться этого?