Введение
интеллектуальный логический программирование
Множество исследований 90-х годов были посвящены гибридизации интеллектуальных систем. Под интеллектуальной системой понимают техническую или программную систему, решающую задачи, которые традиционно считаются творческими и принадлежат конкретной предметной области, знания о которой хранятся в памяти такой системы. Группа наук, объединяемых под названием «искусственный интеллект», изучает такие системы. В результате объединения различных технологий искусственного интеллекта появился специальный термин - "мягкие вычисления" (soft computing). Для сложных технических систем, систем экономического планирования, систем принятия решений характерна ситуация, когда их определение недостаточно полно и невозможно получить полную информацию. Сущностью мягких вычислений является то, что в отличие от жестких традиционных вычислений они стремятся приспособиться к всеобъемлющей неточности реального мира. Мягкие вычисления являются объединением различных направлений, таких как искусственные нейронные сети, нечеткая логика, эволюционные алгоритмы и вероятностные рассуждения. Они используются в различных комбинациях, в которых происходит взаимное усиление достоинств систем и нивелирование недостатков, что позволяет более эффективно решать поставленные задачи. Таким образом, исследование гибридных систем является актуальной и перспективной задачей.
Целью данной работы является исследование одной из таких комбинаций - нечетких нейронных сетей. На данный момент рассмотрены различные модели таких систем, по-разному объединяющие эти технологии. Наиболее известная из них рассмотрена в работе. Однако практически реализованных нечетких нейронных сетей очень мало. Отдельной задачей является изучение нечеткого контроллера, основанного на нейронной сети (Neural-network-based fuzzy logic controller (NNFLC)) и его программная реализация. Его строение и способ обучения имеют свои специфические особенности, отличающие систему от других сетей такого типа. Система NNFLC рассматривалась в статьях [1, 2, 3]. В работе [2] демонстрируется аппаратная реализация контроллера.
Экспериментальная часть работы проводится в среде MATLAB, предоставляющей удобные инструменты
для решения поставленной задачи. Также в ней имеется реализация нечеткой
нейронной сети ANFIS, что
позволяет провести анализ работы смоделированной системы и сравнение
результатов. В качестве демонстрационного примера выполняется решается задача
регрессии. Данная выпускная квалификационная работа состоит из четырех глав. В
первой главе описаны теоретические основы нечетких нейронных сетей и обзор
возможных моделей. Во второй главе содержится информация о строении и обучении
сети NNFLC, а в третьей программная реализация.
Применение ее к конкретной задаче демонстрируется в четвертой главе.
1. Обзор нечетких нейронных сетей
Нечёткие нейронные сети (fuzzy neural network) или гибридные сети объединяют
методы систем, основанных на нечеткой логике, с методами искусственных
нейронных сетей. Они дают синергетический эффект этих двух подходов, позволяющий
представлять модели изучаемых систем в форме правил нечеткой продукции, которые
являются наглядными и простыми для интерпретации, и использовать методы
нейронных сетей для построения этих продукций. Аппарат гибридных сетей
признается одним из наиболее перспективных методов решения плохо
структурированных задач прикладного системного анализа. Рассмотрим подробнее
эти два подхода.
1.1 Нейронные сети
Нейронные сети являются разделом искусственного интеллекта, в котором для обработки сигналов используются явления схожие с явлениями, происходящими в нейронах живых существ. Основной особенностью нейронных сетей считается их способность к обучению и адаптации. На основе обучающих данных они накапливают знания и могут обучиться управлять объектом, не требуя при этом полной информации о нем, такой как математическая модель. Еще одним важным достоинством является то, что нейронные сети состоят из большого числа взаимосвязанных элементов (нейронов), каждый из которых выполняет обработку сигналов. Их объединение дает огромную вычислительною мощность благодаря параллельной обработке информации всеми звеньями.
Более того, сети с большим количеством межнейронных соединений приобретают отказоустойчивость к небольшим повреждениям нейронов или связей. В этой ситуации в силу распределенности информации по всей сети также возможно получение результатов. Нейронные сети широко используются в задачах распознавания образов, аппроксимации, оптимизации, классификации и других [5]. Однако не существует четкого алгоритма для расчета необходимого количества слоев сети и количества нейронов в каждом слое, что приводит к проектированию сети скорее на интуиции, чем на существующих закономерностях. Также знания, накопленные сетью, распределяются между всеми ее элементами, что делает невозможным представление функциональной зависимости между входом и выходом исследуемого объекта в явном виде [6].
Этих недостатков лишены системы управления с нечеткой логикой.
1.2 Нечеткие системы
В основе нечеткой логики лежит понятие нечеткого множества, которое является попыткой математической формализации неточной нечеткой информации для построения математических моделей. Идеей нечеткого множества является возможность элементов в какой-то степени принадлежать множеству. Оно состоит из пар: элемент и степень принадлежности элемента, которая определяется функцией принадлежности к множеству и может принимать значения от 0 до 1. Для описания нечетких множеств вводится понятие лингвистической переменной. Ее значениями могут быть слова или словосочетания некоторого языка. Для человека является более привычным описывать значения переменных словами, а не числами. Зависимость между элементами нечетких множеств задается с помощью нечеткой базы знаний, которая состоит из правил <Если-То>. На основе этих правил система, основанная на нечеткой логике, принимает решения. Нечеткое моделирование предоставляет эффективные средства и методы для изучения систем в ситуациях, когда [7]:
· знания об исследуемой системе являются недостаточными или неточными или их получение является сложной, трудоемкой или даже невозможной задачей, при этом значимая часть информации доступна в виде экспертных данных или в эвристическом описании функционирования;
· на вход подаются параметры и данные, не являющиеся точными и корректно представленными. Нечеткие системы позволяют адекватно обработать их.
· исследуемая система является нелинейной. При ее описании нечеткие модели показывают большую "прозрачность" благодаря лингвистической интерпретации в виде нечетких правил.
Системы, основанные на нечетких множествах, разработаны и успешно внедрены в различных областях, таких как управление технологическими процессами, управление транспортом, медицинская диагностика, распознавание образов.
Основные трудности при использовании нечетких моделей для решения задач
возникают из-за необходимости априорно определять компоненты этих моделей
(функции принадлежности для каждого значения лингвистических переменных,
структуры базы нечетких правил и другие). Эти данные предоставляются экспертами
и, в силу субъективности и зависимости от опыта эксперта, могут не вполне
адекватно описывать моделируемую систему. Это делает невозможным адаптацию и
обучение системы. Более того существуют целые классы задач, для которых
выявление и построение нечетких продукционных правил невозможно или является
концептуально трудной задачей, например, задачи распознавания образов,
прогнозирования, интеллектуального анализа данных.
1.3 Нечеткие нейронные сети
Гибридные структуры, объединяющие в себе нейронные сети и нечеткую логику, собирают наилучшие свойства обоих методов, и в то же время освобождаются от их проблем. С одной стороны такие структуры включают вычислительную мощность и способность к обучению нейронных сетей, а с другой стороны интеллектуальные возможности нейронных сетей усиливаются свойственными "человеческому" способу мышления нечеткими правилами выработки решений.
В нечетких нейронных сетях вывод осуществляется на основе аппарата нечеткой логики, а параметры функций принадлежности настраиваются при помощи алгоритмов обучения нейронной сети. Модуль нечеткого управления представляется в форме многослойной сети, в которой слои выполняют функции элементов системы нечеткого вывода (Рис. 1.1). Нечеткая нейронная сеть, как правило, состоит из четырех слоев [7]:
· слоя фазификации входных переменных (введение нечеткости);
· dторой и третий слои отображают нечеткую базу знаний и реализуют алгоритм нечеткого вывода. При стандартной схеме нечеткого вывода выполняется агрегирование предпосылок правила и активизация заключений правил с одинаковыми выходами
· слоя дефаззификации (приведение к четкости).
Для подбора параметров таких сетей применим метод обратного
распространения ошибки.
Рис.1.1 Система нечеткого логического вывода
Попытки объединения нейронных сетей и нечетких систем являются предметом интенсивных исследований. Интерпретируемость знаний системы и быстрые алгоритмы обучения делают нечеткие нейронные сети одним из самых эффективных инструментов мягких вычислений. Их результатами являются системы выработки решений, который в разной степени реализуют идею нечеткого мышления в совокупности со способностью обучения.
Интеграция этих двух технологий может быть связана с моделью нейрона с функциями, отличающимися от функций традиционного нейрона. Для выполнения нечеткого вывода они могут реализовывать нечеткие операции [8].
И-нейрон - нейрон, в котором умножение веса w на вход x
моделируется конормой S(w,x), а сложение нормой T(w,x). Если нейрон имеет два входа, то
справедливо:
ИЛИ-нейрон - нейрон, в котором умножение веса и входа определяется нормой
T(w,x), а сложение -
конормой S(w,x) [4]:
Норма T и конорма S могут представляться различными функциями, и каждой норме соответствует своя конорма. Например:
·
,
;
·
,
;
·
,
;
Если в качестве нормы выбрана операция min, а конормы max, то
И-нейрон (Рис 1.2 а)
.
ИЛИ-нейрон (Рис 1.2 б)
.
Рис 1.2. а) И-нейрон, б) ИЛИ-нейрон
Можно выделить класс систем, которые используют нейросетевую технологию в качестве инструмента для реализации различных компонентов нечетких продукционных моделей - моделей, которые представляют собой согласованное множество нечетких продукционных правил вида "ЕСЛИ А, ТО В", предназначенное для определения степени истинности заключений нечетких продукционных правил [7]. Эти системы, в свою очередь, могут подразделяться по способу интеграции нечетких продукционных моделей с нейронными сетями на следующие:
. Нечеткие продукционные сети, которые обладают возможностью параметрически оптимизировать нечеткие правила (параметры активационных функций, функций принадлежности, весов) на основе алгоритмов обучения, подобных алгоритмам обучения нейронных сетей, с использованием обучающей выборки.
. Нечеткие продукционные сети, формирующие функций принадлежности предпосылок и заключений с помощью обычных нейронных сетей.
. Нечеткие продукционные сети с формированием предпосылок нечетких правил с использованием нейронных сетей.
. Нечеткие продукционные сети с формированием заключений нечетких правил с использованием нейронных сетей.
. Нечеткие продукционные сети, использующие нейронные сети для дефаззификации выходной переменной
. Нечеткие продукционные сети, использующие нейронные сети для разбиения пространств входных переменных предпосылок нечетких правил с использованием нейронных сетей
Также выделяют нейронные нечеткие сети, включающие нечеткость в различные компоненты нейронных сетей при помощи положений теории нечеткой логики и множеств. Например,
· введение нечеткости в структуру путем приписывания нечеткости значениям обучающих примеров и получением выходов в терминах нечеткой логики
· наделение нейронов нечеткостью. Входы, выходы, веса могут быть нечеткими, и также активизация является нечетким процессом
· изменение характеристик нейронов так, чтобы они выполняли операции теории нечетких множеств
В настоящее время представлены различные модели нечетких нейронных сетей.
Рассмотрим одну из них, получившую широкое распространение и имеющую
программную реализацию.
1.4 Система ANFIS
ANFIS (Adaptive Network-based Fuzzy Inference System) - адаптивная сетевая нечеткая система вывода, обучаемая классическими градиентными алгоритмами. Была предложена Янгом (Jang) в 1992 г. Эта сеть является универсальным аппроксиматором.
Она состоит из пяти слоев (Рис. 1.3):
· на вход подаются значения и вычисляются значения функций принадлежности входных переменных;
· второй слой выполняет агрегирование значений предпосылок для каждого правила в соответствии с выбранной Т-нормой;
· в третьем слое выполняется нормализация значений, поступивших ему на вход;
· четвертый слой формирует значение выхода;
· последний слой выполняет дефаззификацию.
Так как система ANFIS
представляется в виде многослойной сети с прямым распространением сигнала, то
значения выходных переменных можно изменять путем корректировки параметров
функций принадлежности, применяя алгоритм обратного распространения ошибки.
Рис. 1.3. Структура ANFIS
1.5 Система NNFLC
NNFLC (Neural-Network-Based Fuzzy Logic Control System(Controller)) - модель, которая привносит в традиционный нечеткий контроллер структуру нейронной сети и ее способность к обучению, и в то же время сохраняет в себе идею человеческих рассуждений и вывода систем нечеткой логики.
Во многих структурах управления предполагается, что способ управления объектом известен. На основе этих данных формируются нечеткие правила и функции принадлежности. Обучение позволяет подстроить функции принадлежности, но изменение правил является невозможным, вследствие чего выходные данные могут быть с погрешностью из-за не совсем корректных правил. Таким образом, основной проблемой на стадии проектирования является правильное построение функций принадлежности и определение на их основе корректных нечетких правил. Данная система предоставляет по количественным данным строить базу правил и корректировать ее.
Она представлена многослойной сетью прямого распространения сигнала.
Структура генерируется автоматически на основе обучающих данных. Скрытые слои представляют функции принадлежности и нечеткие правила. Еще одной особенностью системы является алгоритм обучения, сочетающий в себе алгоритм обучения без учителя и алгоритм обратного распространения ошибки с учителем. Такая комбинация предоставляет новые преимущества.