Разработка гибридной системы типа NNDFR, основанной на нечетком и нейросетевом подходе, в среде MATLAB
Анализ особенностей системы Neural-Network-Driven Fuzzy Reasoning (NNDFR) и рассмотрение вариантов ее оптимизации. Разработка программного модуля для реализации алгоритма системы NNDFR. Применение системы для решения задач регрессионного прогнозирования.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 30.08.2016 |
Размер файла | 2,5 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Федеральное государственное автономное образовательное учреждение высшего образования
«Национальный исследовательский университет «Высшая школа экономики»
Московский институт электроники и математики
Выпускная квалификационная работа
студента образовательной программы бакалавриата «Информационные системы и технологии»
по направлению 090302 Информационные системы и технологии
Разработка гибридной системы типа NNDFR, основанной на нечетком и нейросетевом подходе, в среде MATLAB
Студент Лапидус Анна Александровна
Рецензент К.т.н., доцент М.П. Гришкина
Руководитель ВКР К.т.н., доцент Д.П. Боголюбов
Москва 2016 г.
Аннотация
В работе исследуется гибридная система NNDFR, выполняющая нечеткий логический вывод с использованием нейронных сетей. Цель работы состоит в разработке программного модуля для реализации алгоритма системы. В работе проведен анализ системы NNDFR, рассмотрена возможность использования четкой кластеризации методом k-средних с настройкой числа кластеров и нечеткой кластеризации c-средних. Разработана функция системы NNDFR с четкой и нечеткой кластеризацией в среде MATLAB. На примере задач прогнозирования показано, что нечеткая кластеризация дает более точный результат. Система NNDFR строит значительно меньшее число правил по сравнению с ANFIS, и при этом дает ошибку, сравнимую с ошибкой ANFIS. Результаты работы могут применяться при решении различных задач прогнозирования и управления.
Abstract
The Development of NNDFR Hybrid System Based on Fuzzy and Neural Approach for MATLAB
The work focuses on NNDFR hybrid system for fuzzy inference implementation with the help of neural networks. The main goal of the work is to develop NNDFR system program for MATLAB. NNDFR system is analyzed, the use of hard k-means clustering with the cluster number adjustment and fuzzy c-means clustering for the system are considered. NNDFR functions based on hard and fuzzy clustering were implemented. Fuzzy clustering showed higher efficiency for the prognosis problems solution with NNDFR system. NNDFR designs much smaller rule base than ANFIS system while the error of NNDFR is comparable with the ANFIS error. The results of the work could be applied for various prognosis and control problems.
Содержание
- Abstract
- Введение
- Глава 1. Обзор предметной области и постановка задачи
- 1.1 Гибридные системы
- 1.2 Архитектуры гибридных систем
- 1.3 Система ANFIS
- 1.4 Программное обеспечение для работы с нечеткими моделями
- 1.5 Постановка задачи. Система NNDFR
- Выводы
- Глава 2. Система NNDFR
- 2.1 Алгоритм NNDFR
- 2.2 Анализ модели NNDFR
- 2.3 Обзор методов кластеризации
- Выводы
- Глава 3. Реализация системы NNDFR в среде MATLAB
- 3.1 MATLAB
- 3.2 Обучение нейронной сети
- 3.3 Модуль NNDFR
- Выводы
- Глава 4. Применение системы NNDFR для решения практических задач
- 4.1 Прогнозирование расхода топлива
- 4.1.1 Сравнение четкой и нечеткой кластеризации
- 4.1.2 Сравнение NNDFR и ANFIS
- 4.2 Прогнозирование коэффициента пористости пласта
- 4.2.1 Сравнение четкой и нечеткой кластеризации
- 4.2.2 Сравнение NNDFR и ANFIS
- Выводы
- Заключение
- Список использованных источников
- Приложение 1
- Приложение 2
Введение
Нечеткая логика представляет собой инструмент для создания математических моделей логического вывода, приближенного к процессу мышления человека. Она позволяет строить модели в условиях неопределенности, свойственной практическим задачам, работать с лингвистическими высказываниями. Нейронные сети обладают способностью обучения на накопленных данных. Объединение нечеткого подхода и технологии нейронных сетей обеспечивает более высокую эффективность систем нечеткого логического вывода. Первые гибридные системы были разработаны в 1980-х гг., и на сегодняшний день существует большое количество различных архитектур нейро-нечетких систем. Такие системы применяются при решении задач управления в автоматизации технологических процессов, прогнозирования и принятия решений в сфере бизнеса и финансов.
Настоящая работа посвящена гибридной системе NNDFR (Neural-Network-Driven Fuzzy Reasoning), реализующей нечеткий логический вывод с использованием нейронных сетей. В данной системе, в отличие от многих других гибридных систем, отсутствует необходимость субъективного выбора функции принадлежности. В NNDFR построение многомерной функции принадлежности с помощью нейронной сети обеспечивает более высокую эффективность работы системы в задачах с зависимыми входными переменными. Система NNDFR не реализована в распространенных программных пакетах нечеткого моделирования. Достоинства этой системы обуславливают ее широкое применение в различных прикладных задачах и определяют актуальность ее разработки.
Цель настоящей работы состоит в разработке гибридной системы NNDFR в среде MATLAB.
В работе были поставлены следующие задачи:
· Проанализировать особенности системы NNDFR и рассмотреть варианты ее оптимизации.
· Разработать программу для реализации системы NNDFR
· На примере практической задачи сравнить эффективность системы NNDFR и реализованной в MATLAB системы ANFIS
Настоящая работа включает в себя четыре главы:
1. Обзор предметной области и постановка задачи
2. Обзор и анализ архитектуры системы NNDFR
3. Реализация системы в среде MATLAB
4. Применение NNDFR для решения задач прогнозирования и анализ результатов.
·
Глава 1. Обзор предметной области и постановка задачи
1.1 Гибридные системы
Нечеткие продукционные системы используют для описания и анализа сложных моделей и слабо формализуемых процессов. Нечеткие модели основаны на базе продукционных правил вида ЕСЛИ , ТО , оперирующих с нечеткими множествами. Нечеткое множество представляет собой множество пар , где - элемент, - степень принадлежности элемента множеству А. Поскольку для реальных систем часто характерна неопределенность данных, нечеткая логика, обобщающая классическую бинарную логику, позволяет моделировать более широкий круг задач. Благодаря концепции нечеткого множества, нечеткая логика предоставляет возможность работать с лингвистическими переменными. Таким образом, математическая модель становится ближе к интуитивной логике человека [1].
Нечеткие продукционные модели основаны на алгоритмах нечеткого логического вывода, который включает в себя следующие этапы [2]:
1. Фаззификация (введение нечеткости) - определение степени принадлежности входных четких значений нечетким множествам;
2. Композиция степеней принадлежностей всех предпосылок для каждого правила (определение степени принадлежности входного набора каждому правилу);
3. Определение заключения каждого правила (нечеткая импликация);
4. Агрегация заключений всех правил;
5. Дефаззификация (приведение к четкости) значения выходной переменной;
6. Параметрическая оптимизация базы правил (для нейро-нечетких систем).
Такие модели применяются для решения задач управления, прогнозирования, принятия решений.
Нечеткие системы позволяют строить модели в условиях неопределенности информации, когда связь между входными и выходными параметрами не задана строгими математическими зависимостями, но может быть сформулирована в виде лингвистических высказываний. В системах нечеткого вывода строится набор систематических правил логической связи выходных значений с входными. Однако нечеткие модели требуют априорного задания некоторых компонентов системы (функция принадлежности переменных, нечетких правил), от которых существенно зависит результат работы системы, и не обладают способностью к обучению. В то же время нейронные сети обеспечивают возможность обучения на предоставленных данных, настраивая параметры связей так, чтобы воспроизводить отображение входных переменных в выходные, но это отображение представляется в неявном виде [2]. Таким образом, объединение этих подходов позволяет компенсировать недостатки каждого из них и обеспечивает возможность получения самообучающейся системы, конструирующей правила нечеткого вывода.
Некоторые гибридные системы, помимо нечеткой и нейронной технологий, включают в себя генетические алгоритмы для оптимизации параметров системы. В настоящей работе рассмотрены модели, основанные на интеграции нечеткого вывода и нейронных сетей.
1.2 Архитектуры гибридных систем
В гибридных системах нейронные сети применяют для реализации различных компонентов модели нечеткого вывода. Кроме того, нечеткость в системе вывода может быть введена на разных уровнях (четкий логический вывод на нечетких множествах, нечеткие веса и функции принадлежности в логическом выводе). По таким критериям можно выделить следующие типы архитектур гибридных систем [2]:
· Нечеткие модели с настройкой параметров правил вывода (параметров функций принадлежности нечетких множеств, весов правил, функций активации) в результате обучения нейронных сетей на обучающей выборке данных
· Нечеткие системы, в которых функции принадлежности предпосылок и заключений правил вывода строят с помощью нейронных сетей
· Нечеткие продукционные системы, использующие нейронные сети для дефаззификации выходных значений
· Системы нечеткого вывода, использующие нейронные сети для разбиения пространства входных векторов обучающей выборки на кластеры и построения многомерной функции принадлежности
· Нейронные сети с введением нечеткости в структуру (И-, Или-нейроны, нечеткие веса связей)
Некоторые системы сочетают в себе свойства нескольких из представленных архитектур.
1.3 Система ANFIS
Среди гибридных продукционных моделей одну из наиболее распространенных архитектур представляют системы типа ANFIS (Adaptive Neuro-Fuzzy Inference System), разработанные Янгом [3]. Структура ANFIS представляет собой многослойную сеть, каждый слой которой реализует определенный этап нечеткого вывода. Настоящая система адаптивна, она обучается на обучающих выборках с помощью градиентных методов.
Для системы ANFIS, реализующей схему нечеткого вывода Сугено, с двумя входными переменными X и Y и выходной переменной Z (рис.1) правила вывода имеют следующий вид:
Правило 1: ЕСЛИ x есть A1 и y есть B1, TO
Правило 2: ЕСЛИ x есть A2 и y есть B2,TO
Рис. 1. Структура системы ANFIS
Элементы каждого слоя сети выполняет свою функцию в реализации нечеткого вывода:
Слой 1. Вычисление значений функций принадлежности µAj(x) входных переменных x и у нечетким множествам Aj и Bj. Вид функции принадлежности задается априорно.
Слой 2. Композиция степеней принадлежности предпосылок каждого правила с помощью одной из функций t-нормы (например, min или произведение).
или
Слой 3. Вычисление доли каждого правила в общей сумме весов всех правил.
Слой 4. Вычисление заключения каждого правила.
f1 =
Слой 5. Вычисление выхода сети.
В результате обучения сети методом обратного распространения ошибки корректируются параметры заданной функции принадлежности.
Система ANFIS является эффективным средством для решения различных задач управления. Система ANFIS реализована в пакете нечеткой логики Fuzzy Logic ToolBox в среде MATLAB.
1.4 Программное обеспечение для работы с нечеткими моделями
Средства для моделирования нечетких систем представлены в различных программах. Среди наиболее распространенных можно выделить Fuzzy Logic Toolbox в среде MATLAB, FuzzyTECH и Wolfram Mathematica Fuzzy Logic.
В среде компьютерной математики MATLAB, разработанной компанией MathWorks Inc., для работы с нечеткими системами предназначен пакет Fuzzy Logic Toolbox. Он включает в себя большое количество встроенных функций, позволяющих проектировать различные системы нечеткого вывода, в том числе с использованием нейронных сетей. В данном пакете доступно два режима работы: с использованием команд или через графический интерфейс . Fuzzy Logic Toolbox предоставляет широкие возможности по моделированию нечетких систем и позволяет разрабатывать свои системы на основе встроенных функций.
Другим популярным инструментом проектирования нечетких систем является программа fuzzyTECH, разработанная компанией INFRORM Gmbh. Она предназначена для проектирования нечетких систем и предоставляет как модули общего назначения, так и специализированные под определенный тип систем, например, нечеткие контроллеры для автоматизации производства. Среда fuzzyTECH позволяет генерировать исходный код на языке С.
Компания Wolfram Mathematica предлагает свой пакет Fuzzy Logic для моделирования систем на основе нечеткой логики. Он включает множество функций для проектирования систем нечеткого вывода, визуализации различных компонентов систем и взаимодействия с другими модулями среды Mathematica.
В представленных программных продуктах предлагаются широкие возможности для моделирования нечетких систем, однако, в качестве встроенных модулей гибридных систем реализована только система ANFIS в среде MATLAB.
1.5 Постановка задачи. Система NNDFR
Сеть ANFIS обеспечивает эффективное решение многих задач управления, но в то же время имеет ряд недостатков. Как и большинство систем, основанных на нечетком логическом выводе, она требует априорного задания вида функции принадлежности. Кроме того, в ней переменные рассматриваются как независимые, и для каждой из них задается своя функция принадлежности нечетким лингвистическим значениям. В случае зависимых входных переменных такой подход может в существенной степени повлиять на точность выхода системы.
Система NNDFR (Neural-Network-Driven Fuzzy Reasoning), предложенная Такаги и Хаяши [4] не предполагает изначального задания вида функции принадлежности и строит многомерную функцию принадлежности с помощью нейронной сети. Нечеткие множества определяются не для каждой переменной в отдельности, а для всего вектора входных переменных. Такой метод позволяет учесть взаимосвязь между входными переменными и избавляет от необходимости задавать определенный вид функции принадлежности, который может оказаться неоптимальным для решения конкретной задачи.
Во различных работах [4; 5; 6] сеть NNDFR применялась для решения прикладных задач в сфере управления технологическим процессом, прогнозирования, принятия решений в бизнес-моделях. Эффективность применения систем типа NNDFR для решения широкого круга задач определяет актуальность исследования и разработки настоящей архитектуры нечетких продукционных систем.
Из систем нечеткого вывода в среде MATLAB реализована только система ANFIS. Таким образом, в настоящей работе была поставлена задача разработать нечеткую продукционную систему типа NNDFR в среде MATLAB и сравнить результаты, полученные при применении систем NNDFR и ANFIS для конкретных задач.
Выводы
1. Гибридные системы на основе нечеткой логики и нейронных сетей представляют собой эффективный инструмент для решения различных задач.
2. Среди гибридных систем наиболее распространены системы типа ANFIS.
3. В программных пакетах, предоставляющих возможности работы с нечеткой логикой, в качестве встроенной гибридной модели реализована только сеть ANFIS в среде MATLAB.
4. Система NNDFR позволяет моделировать задачи с зависимыми входными переменными и строить многомерные функции принадлежности.
5. Поставлена задача разработки системы NNDFR в среде MATLAB и сравнения эффективности разработанной системы и системы ANFIS на примере конкретной задачи.
Глава 2. Система NNDFR
Модель NNDFR (Neural-Network-Driven Fuzzy Reasoning) производит нечеткий вывод, отдельные стадии которого выполняются с помощью нейронных сетей. Алгоритм работы системы состоит из трех основных этапов:
1. Разбиение пространства входных векторов на кластеры, соответствующие разным правилам.
2. Определение функции принадлежности входных векторов каждому правилу (антецедент).
3. Определение значения управления для каждого правила (консеквент).
Модель представляет собой систему нейронных сетей: сеть NNmem определяет функцию принадлежности входных векторов, сети NNi вычисляют значение управления для каждого правила (рис. 2).
Рис. 2. Структура сети NNDFR [4]
В настоящей системе предлагается использовать в качестве нейронной сети многослойный персептрон, обучающийся методом обратного распространения ошибки [7]. Выход нейрона определяется значением функции активации от взвешенной суммы входов:
,
где б - синаптические веса связей, - входные значения, f(z) - логистическая сигмоидальная функция активации:
2.1 Алгоритм NNDFR
Система NNDFR построена на следующем алгоритме [4]:
1. Пусть - входные переменные, yi - выходное значение. На первом шаге методом обратного удаления исключаются переменные шума. Для этого в нейронную сеть подаются все вектора обучающей выборки, сеть обучается, и вычисляется суммарная квадратичная ошибка. Затем из векторов обучающей выборки исключается x1, вычисляется суммарная квадратичная ошибка для этой сети. Аналогично, поочередно исключаются все остальные переменные, подсчитываются ошибки. Если ошибка сети с исключенной переменной сопоставима с ошибкой сети с полным набором переменных, то такая переменная считается несущественной и может быть отброшена. В результате получим набор существенных переменных: x1, x2, …, xk, k ? m.
2. Набор данных разделяется на обучающую выборку (мощностью nt) и тестирующую выборку (мощностью nc),
nt + nc = n.
3. Кластеризация обучающей выборки. Пространство входных векторов разделяется на r кластеров Rs, s = 1,…,r. Число кластеров задает число будущих правил вывода.
4. С помощью нейронной сети NNmem строятся антецеденты правил (функции принадлежности каждому правилу). На вход сети подаются входные вектора обучающей выборки xi, а в качестве целевых значений подаются веса правил wis :
, где i = 1, …, nt , s = 1, …, r
Сеть NNmem обучается для вычисления весов правил по набору входных значений, т.е. определения функции принадлежности каждого вектора s-му правилу As:
µAs (xi) ? , i = 1,2, …, n
5. Определение консеквента правил с помощью нейронных сетей. Для каждого правила As обучается своя сеть NNs. В качестве входных значений подаются принадлежащие кластеру Rs вектора обучающей выборки , в качестве целевых значений - соответствующие желаемые значения выхода . В результате обучения сеть вычисляет выход по s-му правилу . После обучения в сеть подаются вектора тестирующей выборки и вычисляется суммарная квадратичная ошибка:
6. Правые части правил упрощаются за счет исключения переменных, от которых правило не зависит. Для этого поочередно исключается каждая переменная и определяется ошибка сети NNs, вычисляющей результат по s-му правилу:
Если , переменная считается несущественной для этого правила и исключается. Сеть, которая дает минимальную ошибку принимается за сеть, выполняющую вывод по этому правилу.
Таким образом, получаем базу правил:
Правило 1: ЕСЛИ x = (x1, x2, …, xk) есть A1, ТО y1 = NN1(x1, x2, …, xk)
Правило 2: ЕСЛИ x = (x1, x2, …, xk) есть A2, ТО y2 = NN2(x1, x2, …, xk)
Правило s: ЕСЛИ x = (x1, x2, …, xk) есть As, ТО ys = NNs(x1, x2, …, xk)
7. Окончательный результат вывода системы получаем с помощью дефаззификации методом центра тяжести:
,
где - полученный результат при подстановке тестирующей выборки в нейронные сети, построенные на шаге 6.
2.2 Анализ модели NNDFR
· Преимущества модели NNDFR
Многие гибридные системы, основанные на нечетких продукционных моделях с использованием нейронных сетей, предполагают изначально задавать определенный вид функции принадлежности, параметры которой впоследствии настраиваются. Кроме того, входные переменные считаются независимыми, поэтому предпосылки правил строятся отдельно для каждой переменной. В сети NNDFR функция принадлежности не задается априорно. Благодаря предложенной схеме фаззификации строится многомерная функция принадлежности, в связи с чем изменения в одной переменной могут повлиять на изменение функций принадлежности других переменных [4]. Вывод нечетких правил производится независимо, для каждого правила настраивается своя сеть, что позволяет повысить точность модели. Таким образом, для задач, в которых входные переменные не являются независимыми, применение системы NNDFR может обеспечить получение более эффективного результата.
NNDFR применяется для решения задач управления, прогнозирования и других задач нечеткого моделирования. Кроме того, настоящая система может быть адаптирована для задач классификации [5]. Модель NNDFR эффективна для задач, в которых пространство данных естественным образом разделяется на кластеры.
· Недостатки модели
1. Отсутствует оптимизация числа кластеров. Число кластеров определяет число правил вывода, следовательно, неоптимальное число кластеров может существенно понизить точность результата [8].
2. Нельзя сформулировать правила вывода и функцию принадлежности в явном виде, поскольку предпосылки и заключения строятся с помощью нейронных сетей [9].
Для частичного решения проблемы априорного задания числа кластеров рассмотрены методы четкой и нечеткой кластеризации и варианты оптимизации числа кластеров для этих методов.
2.3 Обзор методов кластеризации
· Метод k-средних
В модели NNDFR для кластеризации предлагается метод k-средних - метод разделения элементов на k кластеров S1, …, Sk, при этом каждая точка может принадлежать только одному кластеру [10]. В качестве меры расстояния используется Евклидово расстояние:
Метод основан на минимизации суммарного квадратичного отклонения элементов от центров кластеров, которым они принадлежат.
, где - центр i-ого кластера Si.
Первоначально центры кластеров задаются произвольно, элементы относят к тому кластеру, расстояние до центра которого минимально. После распределения элементов центр каждого класса корректируется по формуле:
Алгоритм завершается, когда центры перестают меняться.
Метод требует априорного задания числа кластеров, что может значительно снизить эффективность работы системы. Выбрать оптимальное число кластеров можно с помощью «метода локтя»: кластеризация проводится несколько раз для разного числа кластеров. Каждый раз вычисляется суммарное квадратичное расстояние между элементами кластеров и их центрами. График зависимости суммарного квадратичного расстояния от числа кластеров (рис. 3) показывает, что с ростом числа кластеров, это расстояние сокращается, поскольку сокращается как количество элементов в кластере, так и отклонение элементов от центров. Оптимальному числу кластеров соответствует точка, начиная с которой это расстояние убывает медленно.
Рис. 3. Метод «локтя». k=3 - оптимальное число кластеров
Метод «локтя» не гарантирует определение оптимального числа кластеров, и результат кластеризации все еще будет зависеть от исходных данных. Тем не менее, использование такой настройки позволяет повысить эффективность по сравнению с априорным заданием числа кластеров.
Метод k-средних предполагает разбиение входного пространства на жесткие кластеры, тогда как нечеткие кластеры могут обеспечить большую эффективность кластеризации.
· Нечеткий метод c-средних (FCM)
Нечеткие методы кластеризации позволяют разделить элементы на заданное число нечетких множеств, т.е. элемент может относиться к нескольким множествам с разной степенью принадлежности [10]. Аналогично методу k-средних, этот метод построен на минимизации функции:
,
где - центр кластера, m - экспоненциальный вес, m ? 1, при больших m увеличивается степень перекрытия нечетких кластеров (при m = 1 получаем четкие кластеры), - степень принадлежности i-го элемента j-му кластеру:
На первом шаге произвольно задаются степени принадлежности элементов кластерам. Центры кластеров определяются по формуле:
Затем степени принадлежности и центры кластеров пересчитываются до тех пор, пока разница между степенями принадлежности на шаге t и на шаге t+1 не будет меньше, чем заданное е.
Хотя данный метод, так же как и метод k-средних, предполагает изначальное задание числа кластеров, влияние выбора числа кластеров на результат частично сглаживается за счет нечеткости кластеров. Число кластеров в алгоритме c-средних можно оптимизировать с использованием критерия Хей-Бени [9].
Выводы
1. Модель NNDFR решает важные задачи нечеткого моделирования: автоматическое построение функции принадлежности и продукционных правил.
2. В сети NNDFR строится многомерная функция принадлежности, что позволяет учитывать взаимосвязь между переменными.
3. Метод кластеризации k-средних дает разбиение на жесткие кластеры, и его эффективность можно повысить за счет настройки числа кластеров.
4. Метод нечеткой кластеризации c-средних может быть более эффективен за счет разделения на нечеткие кластеры.
Глава 3. Реализация системы NNDFR в среде MATLAB
3.1 MATLAB
Система NNDFR реализована в среде MATLAB. MATLAB - это высокоуровневый язык и вычислительная среда, предоставляющая обширные возможности для решения различных математических и инженерных задач. MATLAB включает в себя более различные пакеты прикладных программ для работы в отдельных областях математики. Для моделирования гибридных систем на основе нечеткой логики и нейронных сетей в среде MATLAB представлены два пакета: Fuzzy Logic Toolbox для проектирования схем нечеткого вывода и Neural Network Toolbox для работы с нейронными сетями. Оба пакета оснащены большим количеством встроенных функций и модулями графического пользовательского интерфейса. Кроме того, в пакеты включены различные средства визуализации данных.
Выбор MATLAB как среды для разработки системы NNDFR обусловлен популярностью этой среды среди разработчиков математических систем и представленным в ней обширным диапазоном средств для проектирования нечетких моделей.
3.2 Обучение нейронной сети
Написана функция для обучения нейронных сетей, использованных в процессе реализации системы NNDFR (Приложение 1). В настоящей работе используется сеть прямого распространения сигнала с обучением методом градиентного спуска. Такая архитектура является наиболее распространенной и универсальной. Сеть создается с помощью встроенной функции пакета Neural Netork Toolbox fitnet [13]. Построенная сеть включает два слоя скрытых нейронов, что позволяет повысить эффективность работы сети с использованием меньшего числа нейронов в скрытом слое [11]. В качестве функций активации нейронов скрытого слоя выбрана сигмоидальная функция гиперболического тангенса:
Гиперболический тангенс - асимметричная функция, ее значения лежат в интервале [-1,1], в отличие от логистической функции, диапазон значений которой составляет [0,1]. Функция гиперболического тангенса обеспечивает более быстрое обучение методом обратного распространения ошибки [11]. Для нейронов выходного слоя задана линейная функция активации.
В качестве алгоритма обучения сети выбран градиентный метод второго порядка Левенберга-Марквардта, т.к. такой алгоритм быстро сходится для задач регрессии, которые решает система NNDFR. Реализация данного метода требует большой вычислительной мощности, но в задачах небольшой размерности этот недостаток не влияет на сходимость обучения сети [12].
Входные и целевые значения для нейронной сети проходят предварительную обработку, т.к. значения сигмоидальной функции f(x) при |x|>3 быстро становятся очень низкими, следовательно, необходимо нормировать входные данные. Значения нормируются от -1 до 1, и из обучающей матрицы удаляются константные строки.
3.3 Модуль NNDFR
Реализация системы NNDFR включает в себя два основных блока: обучение и тестирование. В процессе обучения все составные компоненты системы настраиваются по обучающей выборке так, чтобы воспроизводить нечеткий логический вывод выходных значений по входным векторам (рис. 4). На этапе тестирования происходит оценка эффективности построенной системы с помощью вычисления ошибки. В качестве функции ошибки выбрана среднеквадратичная ошибка.
Разработаны функции для реализации алгоритма системы NNDFR с четкой и нечеткой кластеризацией (Приложение 1).
Рис. 4. Схема системы NNDFR
Первый этап представляет собой обучение системы на обучающей выборке. На первом шаге в функции системы NNDFR осуществляется обратное удаление переменных (рис. 5). Для этого нейронная сеть обучается и моделируется на полной выборке данных и на выборках, в каждой из которых исключена одна переменная. Если ошибка сети с исключенной переменной не превосходит ошибку сети, обученной на всех переменных, то переменной можно пренебречь.
Рис.5. Блок обратного удаления переменных
На следующем шаге выполняется кластеризация пространства входных данных. Каждый кластер представляет собой множество предпосылок, соответствующее отдельному правилу вывода. В настоящей работе реализована четкая кластеризация методом k-средних и нечеткая кластеризация методом c-средних (FCM).
Метод k-средних (рис. 6, а) выполняет встроенная функция kmeans [13]. Для данного метода реализована функция оптимизации числа кластеров с помощью метода «локтя» (Приложение 1). Кластеризация производится для нескольких значений числа кластеров, при этом для каждой пары соседних значений вычисляется изменение суммарного квадратичного отклонения точек кластера от центра. Если доля изменения отклонений от первого числа кластеров до i-го числа по отношению к суммарному изменению превышает 90%, то i считается оптимальным числом кластеров.
программный модуль регрессионный
а)
б)
Рис. 6. Блок с четкой кластеризацией (а), блок с нечеткой кластеризацией (б)
Метод нечеткой кластеризации (рис. 6, б) реализован с помощью встроенной функции пакета Fuzzy Logic Toolbox fcm [13]. Для метода нечеткой кластеризации производится экспериментальная настройка параметра перекрытия между кластерами. Для заданного набора значений параметра проводится кластеризация, вычисляются результирующие значения выхода системы, и оценивается среднеквадратичная ошибка. Значение параметра перекрытия, соответствующее минимальной ошибке, принимается за оптимальное. Результаты применения данных методов кластеризации сравниваются на примере решения практических задач.
После кластеризации производится обучение нейронной сети NNmem для построения многомерной функции принадлежности по входным векторам и целевым значениям функции принадлежности, полученным в ходе кластеризации. В случае четкой кластеризации вектор принадлежит кластеру, если значение его функции принадлежности данному кластеру равно 1, а для нечетких методов - если значение функции принадлежности к данному кластеру максимально по сравнению с другими кластерами. Затем матрица входных векторов разбивается на матрицы, представляющие разные кластеры. Для каждого кластера (правила вывода) обучается отдельная нейронная сеть NNi по входным векторам из данного кластера и соответствующим целевым значениям (рис. 6).
На втором этапе производится тестирование системы. Оно включает в себя моделирование нейронных сетей NNmem и NNi по тестирующей выборке, вычисление результирующих значений c помощью дефаззификации и подсчет итоговой среднеквадратичной ошибки тестирования для оценки эффективности системы NNDFR.
Применение разработанной системы демонстрируется на примере решения двух практических задач.
Выводы
1. Написана функция для обучения нейронной сети прямого распространения.
2. Разработана функция для реализации алгоритма системы NNDFR.
3. Для настройки числа кластеров в четком методе кластеризации k-средних использована функция, реализующая метод «локтя».
4. Для блока с нечеткой кластеризацией методом c-средних применяется настройка параметра перекрытия кластеров.
Глава 4. Применение системы NNDFR для решения практических задач
Выбрано две задачи регрессии из разных предметных областей.
4.1 Прогнозирование расхода топлива
Тестирование работы системы проведено на задаче прогнозирования расхода топлива для автомобиля. Данные обучающей выборки для этой задачи взяты из архива наборов данных для обучения нейронных сетей Калифорнийского Университета в Ирвине [14].
Входные переменные:
x1 - число цилиндров в двигателе
x2 - объем двигателя, дюйм3
x3 - мощность двигателя, л.с.
x4 - вес, фунты
x5 - ускорение, фут/с2
x6 - год выпуска
Выходная переменная: y - расход топлива, мили на галлон
Обучающая выборка содержит 392 вектора, 49 из них (10%) включены в тестирующую выборку.
Обратное удаление переменных (табл. 1). По результатам обучения нейронной сети с двумя скрытыми слоями сделаны выводы о значимости входных переменных.
Таблица 1. Результаты обратного удаления переменных
Исключенные переменные |
Среднеквадратичная ошибка |
|
- |
4,6321 |
|
x1 |
6,9762 |
|
x2 |
5,7983 |
|
x3 |
5,5429 |
|
x4 |
5,3422 |
|
x5 |
5,3676 |
|
x6 |
9,2292 |
Значения ошибки в результате исключения переменных превышают ошибку сети, обученную на полной выборке, следовательно, все переменные будут использованы.
4.1.1 Сравнение четкой и нечеткой кластеризации
Четкая кластеризация. В результате оптимизации числа кластеров методом «локтя» (рис. 7) пространство входных векторов разделяется на 4 кластера с помощью метода k-средних. Таким образом, система строит 4 правила.
Рис. 7. Настройка числа кластеров
Первый кластер содержит 84 вектора, второй - 61, третий - 87, четвертый - 121, каждый кластер соответствует отдельному правилу вывода. Для обучения нейронной сети NNmem, формирующей функцию принадлежности входных данных правилам, на вход подаются входные вектора обучающей выборки, а в качестве целевых значений - четырехмерные вектора из нулей и единиц, задающие принадлежность входного вектора кластеру. Ошибка сети составляет 0,0066.
Нейронные сети NNi обучаются для вывода заключений правил (табл. 2).
Таблица 2. Результат обучения нейронные сетей NNi
Номер правила |
Ошибка выхода сети |
|
1 |
7,2842 |
|
2 |
1,2573 |
|
3 |
12,8754 |
|
4 |
7,7437 |
Результирующие значения выхода сети вычисляются по формуле для дефаззификации (Приложение 2). Итоговая среднеквадратичная ошибка обучения составляет 2,7348 (10%), ошибка тестирования - 3,7337 (14%).
Нечеткая кластеризация. Для заданных значений параметра перекрытия нечетких кластеров (экспоненциального веса) F = [2.0 3.0 4.0] проведена кластеризация по трем кластерам методом c-средних, вычислена средняя максимальная степень принадлежности правилам, обучены сети NNmem и NNi и определены ошибки сетей (табл. 3). F=1 соответствует четкой кластеризации, с ростом параметра возрастает степень перекрытия нечетких множеств.
Таблица 3. Результаты работы системы для разных значений параметра перекрытия
F |
Сред. max степень принадл. |
Ошибка NNmem |
1 правило |
2 правило |
3 правило |
Ошибка NN1 |
Ошибка NN2 |
Ошибка NN3 |
|
2,0 |
0,8692 |
5,8579e-7 |
155 |
85 |
113 |
8,3708 |
9,9066 |
7,9210 |
|
3,0 |
0,7250 |
1,3198e-4 |
117 |
87 |
149 |
5,3244 |
1,7637 |
5,3924 |
|
4,0 |
0,6247 |
9,9509e-5 |
119 |
145 |
89 |
2,8796 |
2,5295 |
4,7156 |
Для каждого параметра перекрытия были выведены результирующие значения и вычислены итоговые ошибки работы системы (табл. 4).
Таблица 4. Итоговая ошибка для разных значений параметра перекрытия
F |
Ошибка обучения |
Ошибка тестирования |
|
2,0 |
2,8652 |
3,0065 |
|
3,0 |
2,3770 |
3,6291 |
|
4,0 |
4,7072 |
4,7906 |
Наименьшая ошибка тестирования достигается при значении экспоненциального веса 2,0. Для 37 точек степень принадлежности не превосходит 0,6, следовательно, перекрытие нечетких кластеров составляет практически 10%. Итоговая ошибка результата работы системы с нечетким алгоритмом кластеризации на тестовых данных достигает значения 3,0065 (11%), что на 3% ниже ошибки системы при четкой кластеризации с настройкой числа кластеров (3,7337).
4.1.2 Сравнение NNDFR и ANFIS
Задача прогнозирования расхода топлива была смоделирована в системе ANFIS с помощью редактора anfisedit, встроенного в пакет Fuzzy Logic Toolbox.
Для решения задачи была сгенерирована сеть ANFIS (рис.8), реализующая схему нечеткого вывода Сугено, с гауссовой функцией принадлежности. Для каждой входной переменной было задано 2 функции принадлежности. Дефаззификация осуществлялась методом взвешенного среднего.
а)
б)
Рис. 8. Правила (а) и тестирование (б) системы ANFIS
В результате обучения система построила 64 правила (рис. 8, а), и результирующая ошибка тестирования (рис. 8, б) составила 3, 0242 (11,8%), что сравнимо с ошибкой системы NNDFR на основе нечеткой кластеризации.
4.2 Прогнозирование коэффициента пористости пласта
Разработанная система использована для прогнозирования коэффициента пористости продуктивного пласта С9 в одном из нефтегазоносных районов на основе реальных данных, предоставленных компанией «Геолого-геофизическое партнерство».
Входные переменные:
x1 -аномалия гравитационного поля Буге в точке (х,у), мГал (1Гал=1 см/с2)
x2 -аномалия гравитационного поля Фая в точке (х,у), мГал
x3 - рельеф в точке (х,у), м
x4 - аномалия магнитного поля в точке (х,у), Тл
х5 - глубина кровли пласта С9 в точке (х,у), м
Выходная переменная: у - коэффициент пористости пласта С9
Различные породы имеют разную плотность, а неоднородность плотностей влияет на гравитационное поле [15]. У различных пород также наблюдаются разные значения магнитной восприимчивости. В связи с этим поля гравитационных и магнитных аномалий дают некоторую информацию о свойствах пород. Аномалия составляет разницу между нормальным и наблюдаемым полями. Значение нормального гравитационного поля определено для поверхности сфероида на уровне моря, в то время как наблюдаемое значение определяется на поверхности Земли, поэтому вводят поправки за высоту (аномалия Фая), за рельеф, за высоту и промежуточный слой (аномалия Буге). Коэффициент пористости задает отношение порового пространства к объему породы и является важной характеристикой пласта, поскольку он определяет коллекторские свойства пород, т.е. возможность накопления углеводородов. Таким образом, задача регрессии состоит в прогнозировании коэффициента пористости по измеренным значениям полей.
Обучающая выборка состоит из 500 точек, из них 50 точек случайным образом отбираются для тестирующей выборки.
В результате обучения нейронной сети на полной выборке и на выборках с исключенными переменными были вычислены ошибки (табл. 5).
Таблица 5. Результаты обратного удаления переменных
Исключенные переменные |
Среднеквадратичная ошибка |
|
- |
0,1208 |
|
x1 |
0,1238 |
|
x2 |
0,1650 |
|
x3 |
0,2001 |
|
x4 |
0,1258 |
|
x5 |
0,1556 |
Значения ошибок сетей, обученных на неполных выборках, превышают ошибку полной сети, входные переменные не удаляются.
4.2.1 Сравнение четкой и нечеткой кластеризации
Четкая кластеризация. Настройка методом «локтя» (рис. 9) выделяет 3 кластера, соответственно, вывод системы будет основан на 3 правилах.
Рис. 9. Настройка числа кластеров
Первому кластеру принадлежит 89 точек, второму - 116, третьему - 245. Нейронная сеть для построения функции принадлежности NNmem обучается на входных векторах и целевых значениях - трехмерных векторах, в которых на позиции содержащего вектор кластера стоит единица, а на остальных - нули. Ошибка сети составляет 0,0029.
В результате обучения нейронных сетей NNi вычисляются ошибки вывода заключений правил (табл. 6).
Таблица 6. Результат обучения нейронных сетей NNi
Номер правила |
Ошибка выхода сети |
|
1 |
0,0519 |
|
2 |
0,8185 |
|
3 |
0,0183 |
Для построенной системы с помощью дефаззификации заключений правил определяются результирующие значения выхода (Приложение 2). Итоговая ошибка выхода системы на тестовых данных составляет 1,1596 (9%).
Нечеткая кластеризация. Для заданного набора значений экспоненциального веса F = [2.0 3.0 4.0] проведена кластеризация по трем кластерам методом c-средних, вычислена средняя максимальная степень принадлежности правилам, обучены сети NNmem и NNi и определены ошибки сетей (табл. 7).
Таблица 7. Результаты работы системы для разных значений параметра перекрытия
F |
Сред. max степень принадл. |
Ошибка NNmem |
1 правило |
2 правило |
3 правило |
Ошибка NN1 |
Ошибка NN2 |
Ошибка NN3 |
|
2,0 |
0,8798 |
1,7150e-9 |
237 |
120 |
93 |
0,0188 |
0,0125 |
0,1172 |
|
3,0 |
0,7343 |
2,7512e-6 |
129 |
226 |
95 |
0,0173 |
0,0651 |
0,4461 |
|
4,0 |
0,6306 |
2,5906e-4 |
224 |
97 |
129 |
0,0335 |
0,0190 |
0,0142 |
Для каждого значения экспоненциального веса были определены результирующие значения выхода системы и итоговые ошибки (табл. 8).
Таблица 8. Итоговая ошибка для разных значений параметра перекрытия
F |
Ошибка обучения |
Ошибка тестирования |
|
2,0 |
0,5767 |
0,7379 |
|
3,0 |
1,2896 |
1,4135 |
|
4,0 |
2,2969 |
2,3657 |
Наименьшая ошибка получена для экспоненциального веса 2,0, при этом для 36 точек средняя максимальная степень принадлежности не превосходит 0,6, следовательно, степень перекрытия нечетких кластеров достигает 8%. Результирующая среднеквадратичная ошибка тестирования системы составляет 0,7379 (5%), что на 4% ниже ошибки системы с четкой кластеризацией.
Полученная ошибка является допустимой для данной задачи, что обуславливает возможность применения системы NNDFR при решении задач разведочной геофизики.
4.2.2 Сравнение NNDFR и ANFIS
Для задачи прогнозирования коэффициента пористости пласта сгенерирована сеть ANFIS на основе схемы нечеткого вывода Сугено с гауссовой функцией принадлежности. Для каждой входной переменной задано 2 функции принадлежности. Дефаззификация осуществлялась методом взвешенного среднего.
В результате обучения сеть ANFIS построила 32 правила (рис. 10, а), и итоговая ошибка результирующих значений на тестовых данных (рис. 10, б) составила 0,9604 (7%), что на 2% превосходит ошибку системы NNDFR с нечеткой кластеризацией.
а)
б)
Рис. 10. Правила (а) и тестирование (б) системы ANFIS
Выводы
1. Для рассмотренных задач показано, что нечеткая кластеризация дает на 3-4% более точный результат, чем четкая кластеризация с настройкой числа кластеров.
2. За счет построения многомерной функции принадлежности система NNDFR генерирует значительно меньшее число правил, чем ANFIS, при этом NNDFR и ANFIS дают ошибки одного уровня.
Заключение
Основные результаты работы:
1. Анализ системы NNDFR показал преимущества системы, связанные с построением многомерной функции принадлежности.
2. Разработана и отлажена программа, реализующая алгоритм системы NNDFR в среде MATLAB.
3. В системе NNDFR с четкой кластеризацией использован метод «локтя» для настройки числа кластеров.
4. В системе NNDFR применена нечеткая кластеризация с экспериментальной настройкой параметра перекрытия кластеров.
5. Алгоритм нечеткой кластеризации демонстрирует более точный результат, чем четкая кластеризация с настройкой числа кластеров (в рассмотренных задачах).
6. Показано, что система NNDFR строит существенно меньше правил, чем ANFIS, при этом эффективность NNDFR сравнима с эффективностью ANFIS, т.к. системы дают ошибки одного уровня.
Практическая значимость настоящей работы состоит в возможности применения разработанной программы для решения задач регрессионного прогнозирования. Анализ результатов работы системы на практических задачах показывает эффективность системы NNDFR в сравнении с наиболее распространенной гибридной системой ANFIS, что подтверждает актуальность исследования этой системы.
В качестве дальнейшего исследования в этой области планируется усовершенствовать разработанную систему за счет настройки числа кластеров в нечеткой кластеризации и применения генетических алгоритмов для оптимизации параметров системы и дополнить программу реализацией пользовательского интерфейса.
Список использованных источников
1. Zadeh L.A. Fuzzy sets//Information and Control. 1965. V. 8, № 3. P. 338-353.
2. Борисов В.В., Круглов В.В., Федулов А.С. Нечеткие модели и сети. М.: Горячая линия-Телеком, 2007.
3. Jang J.-S. R. ANFIS: Adaptive-Network-based Fuzzy Inference Systems// IEEE Transactions on Systems, Man, and Cybernetics. 1993. V. 23, I. 3. P. 665--685.
4. Takagi H., Hayashi I. (1991) NN-Driven Fuzzy Reasoning// International Journal of Approximate Reasoning. V.5, I.3, P. 191-212.
5. Setlak G. The Fuzzy-Neuro Classifier for Decision Support// Information Theories & Applications. 2008. V.15. P. 21-26.
6. Huang H.-Z., Gu Y.-K., Li Y.-H. Neural-network-driven Fuzzy Reasoning of Dependency Relationships among Product Development Processes//Concurrent Engineering. 2008. V.16, N.3. P.213-219.
7. Rumelhart D., Hinton G., Wiiliams R. Learning representations by back-propagating errors// Nature. 1986. V. 323, N. 3. P. 533-536.
8. Mirahadi F., Zayed T. Fuzzy Clustering-Based Model For Productivity Forecasting// Proceedings of the 30th ISARC, Montrйal, Canada. 2013. P. 596-607.
9. Рутковская Д., Пилиньский М., Рутковский Л. Нейронные сети, генетические алгоритмы и нечеткие системы. М.: Горячая линия - Телеком, 2006.
10. Maimon O., Rokach L. The Data Mining and Knowledge Discovery Handbook. Clustering methods. Springer US, 2005. P. 321-352.
11. Хайкин С. Нейронные сети: полный курс, 2-е издание. М: Издательский дом «Вильямс», 2006.
12. LeCun Y., Bottou L., Orr G. B., Muller K.-R. Efficient BackProp// Neural Networks: Tricks of the Trade. Springer, 1998. P. 9-50.
13. MATLAB Documentation. http://www.mathworks.com/help/MATLAB/
14. Lichman, M. (2013). UCI Machine Learning Repository [http://archive.ics.uci.edu/ml]. Irvine, CA: University of California, School of Information and Computer Science.
15. Утемов Э.В. Гравиразведка: пособие для самостоятельного изучения лекционного курса слушателей курсов повышения квалификации специальности «Геофизика». Казань: Казанский государственный университет, 2009.
Приложение 1
Код программы
1. Функция системы NNDFR с четкой кластеризацией
function [y] = NDF1( Inputs, Targets )
%Функция обучения и тестирования системы NNDFR
[m,n] = size(Inputs); %m - число входных переменных, n - число входных векторов
t=round(0.2*n) % число точек в тестовой выборке, 20%
TestInd = sort(randsample(n,t));
TestInputs = Inputs(:,TestInd);
TestTargets = Targets(TestInd);
%size(TestInputs)
TrainInd = setxor(1:n,TestInd);
TrainInputs = Inputs(:,TrainInd);
TrainTargets = Targets(TrainInd);
%size(TrainInputs)
%Обратное удаление переменных шума
[net, tr, performance]=NeuralNet(TrainInputs, TrainTargets);
performance
y = sim(net, TestInputs);
err = mse(net,TestTargets,y)
perf1 = zeros(1,m);
err1 = zeros(1,m);
for k=1:m
X = TrainInputs;
X1 = TestInputs;
X(k,:)=[];
X1(k,:)=[];
[net, tr, perf1(k)]=NeuralNet(X, TrainTargets);
y = sim(net,X1);
err1(k) = mse(net,TestTargets,y);
end
perf1
err1
TrainInputs1 = TrainInputs;
TestInputs1 = TestInputs;
Inputs1 = Inputs;
for k=m:-1:1
if (perf1(k)<performance)
k
C = input('enter "yes" to eliminate variable k ','s');
if strcmp(C,'yes')
Inputs1(k,:)=[];
TrainInputs1(k,:)=[];
TestInputs1(k,:)=[];
end
end
end
%Кластеризация
TrainInputs1 = TrainInputs1';
%Определение числа кластеров
[ClusterNumber]=elbow(TrainInputs1);
idx = kmeans(TrainInputs1,ClusterNumber);
idx = idx';
%NNmem - Нейронная сеть для построение функции принадлежности
w1 = zeros(ClusterNumber,n-t); %n-t объем обучающей выборки
for i=1:(n-t)
a = idx(i);
w1(a,i) = 1;
end
%w1
TrainInputs1 = TrainInputs1';
[NNmem, trmem, perfmem]=NeuralNet(TrainInputs1, w1);
perfmem
%NNi - Нейронные сети вывода правил
Inp = cell(1,ClusterNumber);
Outp = cell(1,ClusterNumber);
for i=1:ClusterNumber
p=1;
for j=1:(n-t)
if w1(i,j)==1
Inp{1,i}(:,p) = TrainInputs1(:,j);
Outp{1,i}(p)= TrainTargets(j);
p=p+1;
end
end
end
Inp
for i=1:ClusterNumber
[NN(i).net, train(i).tr, perform(i)] = NeuralNet(Inp{1,i}, Outp{1,i});
perform(i)
end
%Результирующие значения
mem = [sim(NNmem,Inputs1)];
y = zeros(1,n);
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
error = sqrt(mean((y-Targets).^2));
err_test = sqrt(mean((y(TestInd)-Targets(TestInd)).^2));
err_train = sqrt(mean((y(TrainInd)-Targets(TrainInd)).^2));
error
err_test
err_train
res = [TestInputs',TestTargets',(y(TestInd))'];
end
2. Функция системы NNDFR с нечеткой кластеризацией
function [yfin] = NDF2( Inputs, Targets )
%Обучение и тестирование системы NNDFR
[m,n] = size(Inputs);
t=round(0.2*n)
TestInd = sort(randsample(n,t));
TestInputs = Inputs(:,TestInd);
TestTargets = Targets(TestInd);
%size(TestInputs)
TrainInd = setxor(1:n,TestInd);
TrainInputs = Inputs(:,TrainInd);
TrainTargets = Targets(TrainInd);
%size(TrainInputs)
%Обратное удаление переменных
[net, tr, performance]=NeuralNet(TrainInputs, TrainTargets);
performance
y = sim(net, TestInputs);
err = mse(net,TestTargets,y)
perf1 = zeros(1,m);
err1 = zeros(1,m);
for k=1:m
X = TrainInputs;
X1 = TestInputs;
X(k,:)=[];
X1(k,:)=[];
[net, tr, perf1(k)]=NeuralNet(X, TrainTargets);
y = sim(net,X1);
err1(k) = mse(net,TestTargets,y);
end
perf1
err1
TrainInputs1 = TrainInputs;
TestInputs1 = TestInputs;
Inputs1 = Inputs;
for k=m:-1:1
if (perf1(k)<performance)
k
C = input('enter "yes" to eliminate variable k ','s');
if strcmp(C,'yes')
Inputs1(k,:)=[];
TrainInputs1(k,:)=[];
TestInputs1(k,:)=[];
end
end
end
F = [2.0 3.0 4.0]; %параметры перекрытия кластеров
[~, s]=size(F);
Y = cell(1,s);
error = zeros(1,s);
for k=1:s
% Нечеткая кластеризация FCM
TrainInputs1 = TrainInputs1';
ClusterNumber = 3;
F(k)
[centers, U] = fcm(TrainInputs1, ClusterNumber, [F(k) 100 1e-5 1]);
%Настройка параметра перекрытия
maxU = max(U);
% Найдем точки с максимальной функцией принадлежности <0,6
index3 = find(maxU < 0.6);
size(index3)
overlap = size(index3)/(n-t);
averageMax = mean(maxU) % средняя max функция принадлежности
%NNmem
TrainInputs1 = TrainInputs1';
[NNmem, trmem, perfmem]=NeuralNet(TrainInputs1, U);
perfmem
%NNi
Inp = cell(1,ClusterNumber);
Outp = cell(1,ClusterNumber);
for i=1:ClusterNumber
p=1;
for j=1:(n-t)
if U(i,j)==max(U(:,j))
Inp{1,i}(:,p) = TrainInputs1(:,j);
Outp{1,i}(p)= TrainTargets(j);
p=p+1;
end
end
end
Inp
for i=1:ClusterNumber
[NN(i).net, train(i).tr, perform(i)] = NeuralNet(Inp{1,i}, Outp{1,i});
perform(i)
end
%Результирующие значения
mem = [sim(NNmem,Inputs1)];
y = zeros(1,n);
...Подобные документы
Проектирование экспертной системы выбора нейронной сети. Сущность семантических сетей и фреймов. 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Специфика системы управления телевизором. Особенности модели вариантов использования. Анализ основных вариантов использования телевизора: просмотр, переключение каналов, изменение громкости и настроек. Проектирование и реализация системы, генерация кода.
курсовая работа [226,4 K], добавлен 10.06.2011Структура, функциональные возможности программного обеспечения, предназначенного для решения задач синхронизации, анализа и оптимизации выпуска продукции в рамках производства. Программные продукты системы MES. Назначение и функции системы Teamcenter.
контрольная работа [24,8 K], добавлен 24.11.2013Разработка интерфейса справочно-расчетного программного обеспечения. Расчетно-графический модуль. Решение задачи динамического моделирования в системе MATLAB/Simulink. Программная реализация, результаты моделирования системы на текстовых примерах.
курсовая работа [2,6 M], добавлен 01.12.2014Метод извлечения информации о личностных характеристиках пользователя с помощью технологии распознавания лица. Разработка алгоритма работы рекомендательной системы, основанной на психологическом портрете пользователя, хранилища баз данных и интерфейса.
курсовая работа [815,2 K], добавлен 21.09.2016Несколько определений ERP системы. Происхождение, развитие, признаки. Что дает внедрение. Особенности разработки программ на Java. Проектирование и реализация модуля ERP системы. Экономическая схема торговой деятельности. Пример реализации схемы.
курсовая работа [1,1 M], добавлен 10.09.2008Создание программного продукта, предназначенного для небольшой сети с оптимизацией ее работы на платформе операционной системы Linux; администрирование. Разработка модуля протоколов управления; методика тестирования подсистемы; системотехнический анализ.
дипломная работа [5,4 M], добавлен 27.06.2012Техническое задание на проектирование системы автоматизированного решения задач механики. Разработка комплекта математических моделей систем с распределенными параметрами при действии динамических нагрузок. Выбор базового программного обеспечения.
дипломная работа [679,7 K], добавлен 15.01.2010Выбор методологии проектирования и разработка информационной системы "Расчёт зарплаты" для предприятия ОАО РТП "Авторемонтник". Архитектурное проектирование базы данных информационной системы и разработка её интерфейса. Тестирование программного модуля.
дипломная работа [2,3 M], добавлен 25.05.2014Использование расширения MATLAB - Simulink как системы математического моделирования. Электроэнергетическое направление системы - пакет Sim Power Systems, методом моделирования решающий задачи электроэнергетики. Структура и функциональные компоненты.
курсовая работа [1,5 M], добавлен 09.10.2014Разработка программного обеспечения автоматической системы научных исследований (АСНИ) в интегрированной среде программирования Borland C++ Builder 6.0, работающего в среде ОС Windows, позволяющего осуществлять управление процессом спектрального анализа.
курсовая работа [569,3 K], добавлен 05.03.2009