Разработка гибридной системы типа NNDFR, основанной на нечетком и нейросетевом подходе, в среде MATLAB
Анализ особенностей системы Neural-Network-Driven Fuzzy Reasoning (NNDFR) и рассмотрение вариантов ее оптимизации. Разработка программного модуля для реализации алгоритма системы NNDFR. Применение системы для решения задач регрессионного прогнозирования.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 30.08.2016 |
Размер файла | 2,5 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
for i=1:n
for j=1:ClusterNumber
y(i)= y(i)+mem(j,i)*sim(NN(j).net,Inputs1(:,i));
end
y(i)= y(i)/sum(mem(:,i));
end
Y{1,k} = y;
error(k) = sqrt(mean((y-Targets).^2));
err_test(k) = sqrt(mean((y(TestInd)-Targets(TestInd)).^2));
err_train(k) = sqrt(mean((y(TrainInd)-Targets(TrainInd)).^2));
end
error
err_test
err_train
for k=1:s
if err_test(k)==min(err_test(:))
F(k)
yfin = Y{1,k};
errfin = error(k)
errfin_test = err_test(k)
errfin_train = err_train(k)
res = [TestInputs',TestTargets',(y(TestInd))'];
end
end
end
3. Функция обучения нейронных сетей
function [ net,tr,performance] = NeuralNet( inputs,targets )
% Число нейронов в скрытых слоях
hiddenNeurons = [8 8];
net = fitnet(hiddenNeurons);
net.divideFcn = 'dividerand';
net.divideParam.trainRatio = 80/100; % Обучающая выборка
net.divideParam.testRatio = 20/100; % Тестирующая выборка
net.trainFcn = 'trainlm'; %функция обучения Левенберга-Марквардта
%Предварительная обработка входных и целевых значений
net.inputs{1}.processFcns = {'removeconstantrows','mapminmax'};
net.outputs{2}.processFcns = {'removeconstantrows','mapminmax'};
net.performFcn = 'mse'; % среднеквадратичная ошибка
% Графики
net.plotFcns = {'plotperform','plottrainstate','ploterrhist', ... 'plotregression', 'plotfit'};
%net.trainParam.epochs=200; % число эпох обучения
% Обучение сети
[net,tr] = train(net,inputs,targets);
% Тестирование
y = net(inputs);
performance = perform(net,targets,y);
% Ошибки обучения и тестирования
target_train = targets .* tr.trainMask{1};
target_val = targets .* tr.valMask{1};
target_test = targets .* tr.testMask{1};
perf_train = perform(net,trainTargets,y);
perf_val = perform(net,valTargets,y);
perf_test = perform(net,testTargets,y);
%view(net)
end
4. Функция настройки числа кластеров методом локтя
function [k]=elbow(X)
kmax = 10;
distortion=zeros(kmax,1);
for i=1:kmax
[~,~,sumdist]=kmeans(X,i,'emptyaction','drop');
distortion(i,1)=sum(sumdist);
end
r=distortion(1:end-1)-distortion(2:end);
distortion_ratio=cumsum(r)/(distortion(1)-distortion(end));
plot(distortion)
%plot(distortion_percent,'b')
[p,~]=find(distortion_ratio>0.9);
k=p(1,1)+1;
end
Приложение 2
Результаты применения системы для решения практических задач (тестовые выборки)
1. Прогнозирование расхода топлива в NNDFR с четкой кластеризацией
2. Прогнозирование расхода топлива в NNDFR с нечеткой кластеризацией
3. Прогнозирование коэффициента пористости в NNDFR с четкой кластеризацией
4. Прогнозирование коэффициента пористости в NNDFR с нечеткой кластеризацией
Размещено на Allbest.ru
Подобные документы
Проектирование экспертной системы выбора нейронной сети. Сущность семантических сетей и фреймов. MatLab и системы Фаззи-регулирования. Реализация программы с использованием пакета fuzzy logic toolbox системы MatLab 7. Составление продукционных правил.
курсовая работа [904,4 K], добавлен 17.03.2016Обзор и сравнительный анализ современных математических пакетов. Вычислительные и графические возможности системы MATLAB, а также средства программирования в среде MATLAB. Основные возможности решения задач оптимизации в табличном процессоре MS Excel.
дипломная работа [6,6 M], добавлен 04.09.2014Разработка структурной схемы и алгоритма функционирования микропроцессорного модуля программного обеспечения автоматизированной информатизационно-измерительной системы. Характеристика принципиальной схемы модуля, распределения памяти и задание портов.
курсовая работа [1,2 M], добавлен 28.08.2012Общая характеристика и свойства системы Matlab - пакета прикладных программ для решения задач технических вычислений. Разработка математической модели в данной среде, программирование функций для задающего воздействия. Проектирование GUI-интерфейса.
курсовая работа [1023,2 K], добавлен 23.05.2013Моделирование предметной области. Состав программного модуля. Разработка логической структуры единой базы данных банковской информационной системы "БИС". Создание экранных форм для ввода и корректировки информации. Разработка интерфейса пользователя.
курсовая работа [1,8 M], добавлен 17.05.2016Рассмотрение системы трехмерного твердотельного моделирования. Анализ средств программирования, информационное обеспечение и описание объектной модели Компас-3d. Описание алгоритма программы в среде Borland Delphi 7 и составление инструкции пользователя.
дипломная работа [1,7 M], добавлен 03.07.2012Исследование типовых примеров задач оптимизации. Реализация программы в среде MatLab для их решения. Изучение функций нелинейной оптимизации. Определение оптимума целевой функции одной или нескольких переменных. Поиск оптимальных настроек регулятора.
лабораторная работа [188,8 K], добавлен 07.12.2016Описание вычислительной техники, характеристика операционных систем и языков программирования. Сравнительный анализ аналогов и прототипов. Разработка алгоритма решения задачи. Выбор средств и методов решения задач. Проектирование программного обеспечения.
отчет по практике [1,0 M], добавлен 23.03.2015Описание и схема информационного взаимодействия элементов системы, выходная и входная информация. Технологические процесс функционирования системы в автоматизированном режиме. Разработка информационного обеспечения системы, алгоритмы программного модуля.
дипломная работа [1,0 M], добавлен 30.08.2010Разработка программного кода и алгоритма действий приложения "калькулятор". Использование функций в программе Matlab. Разработка кнопок, опций, интерфейса, оформление. Части кода Matlab и тестовый набор. Инструкция пользователя по работе программы.
курсовая работа [527,1 K], добавлен 27.09.2014