Разработка гибридной системы типа 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

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.