Автор Анна Евкова
Преподаватель который помогает студентам и школьникам в учёбе.

Свойства и методы работы с нейронными сетями

Содержание:

Введение

Традиционные методы прогнозирования в настоящее время уже не считаются хорошими с точки зрения точности. Более того, прогресс не стоит на месте, появляются новые задачи, которые также требуют и точности, и быстроты, и простоты их решения. К таким задачам можно отнести скоринг-анализ - попытку банка дать прогноз платежеспособности клиента и дальнейшего решения о выдаче ему займа и т. д [6, с. 24][1].

И подобных задач много. Они встречаются в экономике, технике, производстве, медицине, биологии, геологии, военном деле и во многих других областях и послужили, в какой-то степени, развитию ЭВМ, затем персональных компьютеров и многих различных компьютерных программ, которые помогают человеку решать описанные выше задачи, в том числе и по прогнозированию.

Все это вылилось в целое направление, которое назвали машинным обучением, или искусственным интеллектом. Машинное обучение основано на применении искусственных нейронных сетей, в какой-то степени, имитирующих работу мозга человека.

Целью данной курсовой работы является изучение свойств и методов работы с нейронными сетями и применение полученных знаний на практике.

В выполнения поставленной цели необходимо выполнить следующие задачи:

1. Ознакомиться с историей возникновения и развития нейронных сетей.

2. Рассмотреть определение нейронной сети, ее состава и методов работы с ней.

3. Выполнить практическое задание с использованием программного комплекса Matlab.

I. Теоретическая часть

Глава 1. История развития нейронных сетей

Нейронная сеть - сеть элементарных алгоритмов, связанных по входам и выходам. Связи снабжены весами, которые настраиваются с целью получения нужной реакции сети.

Начальный этап проходит естественным образом, усматривается в рамках логики. Аристотель ввел соответствующую концепцию - объем понятия. Сейчас соответствующие конструкции - это множество и класс.

Нейронные сети и комитетные конструкции связаны с голосованием. Коллективные решения были предметом размышлений еще в Античности. Плиний младший, Архимед и Аристотель задавались вопросом, что можно называть большинством, почему надо считаться только с большинством и т. д. Более конструктивно и критично эти проблемы рассматривали Ж. А. Кондорсе и Ж. Ш. де Борда, французские академики, в XVIII в. Они обнаружили парадокс нетранзитивности мажоритарного голосования. Позднее, в 1950-х, К. Д. Эрроу доказал теорему о невозможности универсального коллективного договора [2, с. 123][2].

С этой тематикой непосредственно связан вопрос об эмпирической индукции. Понятие «эмпирическая индукция» введено Ф. Бэконом. С тех пор существует проблема индукции, которой посвящена масса работ. Постановка проблемы индукции по самой своей сути относится к классу некорректно поставленных задач. Разумеется, это не является отрицательной чертой таких задач.

Канторова теория множеств также имеет отношение к данному вопросу, поскольку в распознавании изучаются классы объектов, которые могут быть и бесконечными, хотя бы потенциально.

Интересно, что идея обработки данных нейронными сетями может быть обнаружена еще в XIX в., достаточно указать на те исследования, которые провел В. Мич. Далее, оставаясь в рамках чистой логики, можно указать на чрезвычайно важный момент: Б. Рассел и А. Уайтхед рассмотрели математическое моделирование универсалий.

В рамках теории вероятностей и математической статистики имеется свой подход к эмпирической индукции - с XVI в. Речь идет об индуктивном выводе о свойствах генеральной совокупности на основе свойств выборки.

В 1930-е гг. идеи Б. Рассела и А. Уайтхеда нашли развитие в работах У. Мак Каллоха и У. Питтса. Это можно назвать начальным периодом нейросетей. Они доказали, что любая логическая функция многих переменных может быть реализована некоторой сетью линейных пороговых элементов.

В 1936 г. Р. Фишер ввел модель дискриминантного анализа (для разделения вероятностных распределений). В 1950 г. Э. Фикс и Дж. Ходжес ввели более широкую модель дискриминантного анализа все еще в рамках математической статистики. Метод Фикса и Ходжеса имеет отдаленное сходство с методом комитетов, так как в нем есть голосование по ближайшим соседям.

1949 г.: Д. Хебб предложил гипотезу о связях естественных нейронов, а также некое правило обучения искусственной нейронной сети.

1957 г.: продолжение линии нейронных сетей и в то же время применение теории линейных неравенств и математического программирования - персептроны Ф. Розенблатта.

1959 г.: Д. Хьюбел и Т. Визель изучали возможности распределенной и параллельной обработки информации в естественных нейронных сетях [5, с. 84][3].

История нейронных сетей с точки зрения метода комитетов как метода анализа многослойных ассоциативных машин может быть представлена следующим образом. В 1957 г. Розенблатт проводил опыты с обучением простейших частей — персептронов. В 1953 г. важную роль сыграла теорема А. Н. Колмогорова о представлении непрерывных функций многих переменных как суперпозиций функций от двух переменных. В современной трактовке это теорема о полноте нейронных сетей. В 1965 г. Вл. Д. Мазуров доказал одну теорему из теории линейных неравенств, она может быть интерпретирована как обоснование полноты и плотности слоистых нейронных сетей в пространстве всех задач с решениями - словами в конечном алфавите. Результат Ли Ю и М. И. Кацнельсона можно трактовать (как это сделал А. Н. Горбань) как результат о плотности слоистых нейронных сетей с непрерывным приближением сигнума. Это можно представить с другой точки зрения, а именно с точки зрения подалгебр слоистых нейронных сетей, замкнутых относительно нелинейной унарной операции.

С 1984 г. наблюдавшийся с 1975 г. (под влиянием М. Минского) скептицизм по отношению к нейронным сетям как к реальным информационным технологиям стал исчезать благодаря работе Дж. Хопфилда. В 1996 г. А. Н. Горбань подытожил результаты по полноте и плотности на чисто нейросетевом языке. В математической экономике соответственно возникли два новых направления:

1) нейросетевая имитация экономических объектов;

2) идентификация экономических моделей с помощью нейронных сетей.

Сейчас наблюдается настоящий нейросетевой бум, выходит много книг по этой тематике, и спрос на них велик.

Совершенной ясно, что нейронные сети - это новая методология решения задач: системный подход вместо аналитического, обучение и настройка вместо программирования, имитационный подход, аналоговые компьютеры нового поколения [2, с. 243][4].

И сейчас нейронные сети становятся все более приемлемыми решателями технико-экономических задач, демонстрируя свою универсальность. Если кратко выразить суть этих методов, то они используют настройку и обучение вместо программирования методов решения задач. В нейронной сети входная информация (постановка задачи) поступает вначале на слой входных нейронов (на сенсорный слой), затем результаты работы данного слоя поступают на сеть «скрытых» нейронов (на ассоциативный блок сети). Результаты работы этого слоя поступают на выходные нейроны (на реагирующий или решающий блок).

Глава 2. Аналогия нейронных сетей с мозгом и биологическим нейроном

Идея создания нейронных сетей появилась из-за желания заменить человека при некоторых расчетах и при решении каких-то сложных задач. По сути нужна была некоторая модель, которая могла бы имитировать человека, а если точнее - человеческий мозг. Благодаря достаточно глубоким познаниям о человеческом мозге, его структуре и появилась идея создания подобной системы. Конечно, говорить, что эта модель полностью копирует мозг человека, нельзя, но то, что она базируется на основных принципах его работы, - очевидный факт.

Если говорить точнее, то А. Бэйн и У. Джеймс в своих работах отметили, что мозговая деятельность происходит благодаря взаимодействиям нейронов. Затем уже были даны четкие представления о нервной клетке головного мозга, называемой нейроном. Совокупность нейронов головного и спинного мозга образует биологическую нейронную сеть. На ее основе были созданы уже искусственные нейронные сети.

Однако, чтобы лучше понять смысл искусственной нейронной сети и самого нейрона, мы сначала должны представить, из чего состоит и как работает биологический нейрон, чтобы впоследствии на основе уже изученного сформулировать определение формального нейрона и искусственной нейронной сети, которая по своей сути является компьютерной программой. Особенно важно понимать соотношение между строением нейрона и его функциями [7, с. 56][5].

Нейрон в своем строении во многом похож на другие клетки ткани, но тем не менее существенно отличается по своему функциональному назначению. Нейрон принимает информацию, преобразовывает ее и передает другим нейронам в виде импульсов нервной активности. Тело нейрона содержит совокупность ветвящихся отростков двух типов. Одни из них - дендриты - являются входными каналами для нервных импульсов от других нейронов. Эти импульсы поступают в сому, где вызывают некоторое возбуждение, которое распространяется по выводному отрезку, называемому аксоном.

Возбуждение нейрона передается другим нейронам, которые таким образом объединены в проводящую нервные импульсы сеть. Участки мембраны на аксоне, где размещаются области контакта аксона данного нейрона с дендритами других нейронов, называются синапсами. В области синапса, имеющего сложное строение, происходит обмен информацией о возбуждении между нейронами. Механизмы синоптической передачи достаточно сложны и разнообразны [1, с. 109][6].

Взаимодействующие между собой посредством передачи через отростки возбуждений нейроны формируют биологические нейронные сети. Активность нейронов при передаче и обработке нервных импульсов регулируется свойствами мембраны, которые могут изменяться под воздействием синоптических медиаторов.

Глава 3. Понятие искусственного нейрона

Нейрон является составной частью нейронной сети. Попробуем сформулировать математическую модель нейрона (так называемый формальный нейрон). Для этого вначале представим схему всех составляющих нейрона (рис. 1).

Рис. 1. Схема составляющих нейрона

Математическая модель нейрона:

,

где y - выходной сигнал нейрона;

f - нелинейное преобразование (функция активации);

n - число входов нейрона;

wi - вес синапса;

xi - компонента входного вектора (входной сигнал), i = 1, …,

b - внешний источник (значение смещения).

Синапсы осуществляют связь между нейронами, умножают входной сигнал на число, характеризующее силу связи (вес сигнала).

Сумматор выполняет сложение сигналов, поступающих по синаптическим связям от других нейронов и от внешних источников.

Нелинейный преобразователь реализует функцию одного аргумента, т. е. выход сумматора. Эта функция называется функцией активации или передаточной функцией нейрона.

Синаптические связи с положительными весами называют возбуждающими, с отрицательными - тормозящими. Описанный вычислительный элемент можно считать упрощенной математической моделью биологических нейронов [11, с. 213][7].

Глава 4. Виды искусственных нейронных сетей

Искусственная нейронная сеть представляет собой совокупность нейроподобных элементов, определенным образом соединенных друг с другом и с внешней средой с помощью связей, определяемых весовыми коэффициентами.

Нейроны классифицируются следующим образом:

  1. В зависимости от функций, выполняемых нейронной сетью: входные нейроны, выходные нейроны, промежуточные нейроны.
  2. С точки зрения топологии нейронных сетей:
  • полносвязные (рис. 2), т. е. каждый узел связан друг с другом;

Рис. 2. Полносвязные нейронные сети

  • слоистые или многослойные (рис. 3):

Рис. 3. Слоистые или многослойные нейронные сети

Три подтипа слоистых сетей:

1) монотонные.

Каждый слой, кроме последнего, разбит на два блока - тормозящий (тогда функция монотонно невозрастающая) и возбуждающий (функция монотонно неубывающая).

Если от нейронов одного блока к нейронам другого блока идут возбуждающие связи, то любой выходной сигнал является монотонно неубывающей функцией.

2) без обратной связи и с обратной связью;

3) слабосвязные (рис. 4) (с локальными связями).

Рис. 4. Слабосвязные нейронные сети

Также нейронную сеть можно представлять, как граф с входами и выходами, где в вершинах графа - формальные нейроны [1, с. 20][8].

Далее рассмотрим модели искусственных нейронных сетей.

1. Персептрон Розенблатта.

Одной из первых искусственных нейронных сетей является персептрон Розенблатта. Изначально он рассматривался как модель работы мозга, и лишь затем по его типу были разработаны компьютерные модели, первой из которых являлась MARK-1 [8, с. 97][9].

На рис. 5 представлена схема классического персептрона, который по своей сути является однослойной нейронной сетью.

Рис. 5. Схема классического персептрона

Персептрон состоит из следующих частей: S-элементов - сенсорных клеток, принимающих двоичные сигналы; А-элементов - ассоциативного слоя; R-элементов, формирующих выход. Характеризуется матрицей синоптических связей W, в которой указаны веса и показаны переходы от S-элементов к A-элементам.

2. Сеть Хопфилда.

Сеть Хопфилда (рис. 6) - это дискретная сеть, которая может восстанавливать объект по небольшим подсказкам (иногда с зашумленностью) [8, с. 99][10].

Если рассмотреть пример из распознавания образов, то сеть Хопфилда может распознавать текст, где нет математических символов.

Эта сеть имеет следующие характеристики:

  • сеть имеет один слой элементов.
  • каждый элемент связан с любым другим элементом, но не связан сам с собой.
  • за один шаг обновляется только один элемент, но обновление происходит случайно. Однако при этом каждый элемент должен обновляться в одной и той же мере.
  • вывод элемента бинарный, т. е. ограничен значениями (0; 1).

Сеть Хопфилда является рекуррентной. Например, если идет распознавание буквы, то пока нужная буква не будет найдена, поиск не остановится.

Рис. 6. Схема сети Хопфилда

3. Сеть Хемминга.

Сеть Хемминга была разработана в 1987 г. Р. Липпманом, модели которого основывались на вычислении расстояния Хэмминга. Применяется она в том случае, если необходимо определить номер эталона, ближайшего к предъявленному подбору вектора [8, с. 97][11].

Расстояние Хэмминга между двумя бинарными векторами одинаковой длины - это число несовпадающих бит в этих векторах. Нейронная сеть, которая реализует параллельное вычисление расстояний Хэмминга от входного вектора до нескольких векторов-образцов, носит название сети Хэмминга.

Стоит отметить, что в данной сети затрачивается больше памяти, чем при использовании сети Хопфилда.

Свойства сети Хемминга:

  1. Нейронная сеть состоит из входного, скрытого и выходного слоев нейрона.
  2. Скрытый и входной слои содержат по k нейронов, где k - число эталонов.
  3. Нейроны скрытого слоя синапсами соединены с выходами нейронов входного слоя сети.
  4. Выходы нейронов связаны с входами отрицательными обратными связями.

Сеть выбирает эталон с минимальным хемминговым расстоянием от предъявленного входного вектора путем активации только одного выхода сети, которая соответствует этому эталону.

В качестве одного из главных недостатков сети Хэмминга стоит указать невозможность правильной классификации сильно зашумленных входных сигналов. Возможность использования только бинарных входных сигналов существенно ограничивает область применения.

При этом у сети Хэмминга есть немало преимуществ. Сеть работает предельно просто и быстро. Выходной сигнал (решение задачи) формируется в результате прохода сигналов лишь через один слой нейронов. В модели и использован один из самых простых алгоритмов формирования синаптических весов и смещений сети.

4. Сеть Кохонена.

Еще одна из моделей нейронных сетей была предложена Т. Кохоненом в 1984 г. К настоящему времени существует множество модификаций исходной модели с развитой математической теорией построения и функционирования.

Хотя построение мозга в значительной степени предопределяется генетически, отдельные структуры мозга формируются в результате самоорганизации. Алгоритм Кохонена в некоторой степени подобен процессам, происходящим в мозге на основе самообучения.

Сеть Кохонена предназначена для разделения векторов входных сигналов на подгруппы. Сеть состоит из M нейронов, образующих прямоугольную решетку на плоскости (рис. 7). Элементы входных сигналов подаются на входы всех нейронов сети. В процессе работы алгоритма настраиваются синаптические веса нейронов.

Рис. 7. Схема сети Кохонена

Входные сигналы (векторы действительных чисел) последовательно предъявляются сети, при этом требуемые выходные сигналы не определяются. После предъявления достаточного числа входных векторов синаптические веса сети определяют кластеры.

Кроме того, веса организуются так, что топологически близкие нейроны становятся чувствительны к похожим входным сигналам.

Областью применения данной сети являются кластерный анализ, распознавание образов, классификация.

Одним из главных недостатков нейронной сети Кохонена является то обстоятельство, что сеть может быть использована для кластерного анализа только в случае, если заранее известно число кластеров. А в качестве преимущества можно указать способность сети функционировать в условиях помех, так как число классов фиксировано, веса модифицируются медленно, и настройка весов заканчивается после обучения (в некоторых других сетях настройка продолжается непрерывно).

5. Нейронная сеть с генетическим алгоритмом обучения.

Впервые идея использования генетических алгоритмов для обучения была предложена Дж. Голландом в 1970-е гг. Во второй половине 1980-х гг. к этой идее вернулись в связи с обучением нейронных сетей.

Использование механизмов генетической эволюции для обучения нейронных сетей кажется естественным, поскольку модели нейронных сетей разрабатываются по аналогии с мозгом и реализуют некоторые его особенности, появившиеся в результате биологической эволюции.

Основные компоненты генетических алгоритмов: стратегии репродукций, мутаций и отбор «индивидуальных» нейронных сетей (по аналогии с отбором индивидуальных особей).

В отличие от большинства других алгоритмов обучения для генетических алгоритмов формируется не один, а несколько наборов начальных значений параметров, которые называются популяцией хромосом. Популяция обрабатывается с помощью алгоритмов репродукции, изменчивости (мутаций), генетической композиции. Эти алгоритмы напоминают биологические процессы. Наиболее важные среди них - случайные мутации данных в индивидуальных хромосомах; переходы (кроссовер); рекомбинация генетического материала, содержащегося в индивидуальных родительских хромосомах (аналогично гетеросексуальной репродукции); миграция генов.

Генетический алгоритм работает следующим образом. Инициализируется популяция, и все хромосомы сравниваются в соответствии с выбранной функцией оценки. Далее (возможно, многократно) выполняется процедура репродукции популяции хромосом. Родители выбираются случайным образом в соответствии со значениями оценки (вероятность того, что данная хромосома станет родителем, пропорциональна полученной оценке). Репродукция происходит индивидуально для одного родителя путем мутации хромосомы либо для двух родителей путем кроссовера генов. Получившиеся потомки оцениваются в соответствии с заданной функцией и помещаются в популяцию [10, с. 545][12].

В результате использования описанных операций на каждой стадии эволюции получаются популяции со все более совершенными вариантами.

Генетические алгоритмы дают возможность оперировать дискретными значениями параметров нейронных сетей, что упрощает аппаратную реализацию нейронных сетей и приводит к сокращению общего времени обучения.

Глава 5. Обучение нейронных сетей

Способность к обучению является фундаментальным свойством мозга. В контексте искусственных нейронных сетей процесс обучения может рассматриваться как настройка архитектуры сети, а также весов связей для эффективного выполнения поставленной задачи. Обычно нейронная сеть должна настроить веса по предоставленным обучающим примерам. Свойство сети обучаться на примерах делает их более привлекательными по сравнению с системами, которые работают по заранее заложенным правилам.

Среди всех существующих методов обучения можно выделить два класса: детерминированный и стохастический.

Детерминированный метод итеративно корректирует параметры сети, основываясь на ее текущих параметрах, величинах входов, фактических и желаемых выходов. Яркой иллюстрацией подобного метода является метод обратного распространения ошибки [3, с. 187][13].

Стохастические методы обучения изменяют параметры сети случайным образом. При этом сохраняются только те изменения, которые привели к улучшениям. В качестве примера стохастического метода обучения можно привести следующий алгоритм:

  1. Выбрать параметры сети случайным образом и подкорректировать их на небольшую случайную величину. Предъявить мно­жество входов и вычислить получающиеся выходы.
  2. Сравнить эти выходы с желаемыми и вычислить разницу между ними. Эта разница называется ошибкой. Цель обучения состоит в том, чтобы минимизировать ошибку.
  3. Если ошибка уменьшилась, коррек­ция сохраняется, в противном случае коррекция отбрасывается и выбирается новая.

Шаги (2) и (3) повторяются до тех пор, пока сеть не обучится.

Необходимо отметить, что стохастичес­кий метод обучения может попасть в «ловушку» локального минимума.

Допустим, что первоначальное значение ошибки равно или очень близко к точке А.

Если случайные шаги корректировки малы, то любые отклонения от точки А увеличат ошибку и будут отвергнуты. Таким образом, наименьшее значение ошибки в точке В никогда не будет найдено. Когда случайные коррекции параметров сети очень велики, ошибка будет меняться так резко, что никогда не установится в одном из минимумов.

Чтобы избежать подобных проблем, можно постепенно уменьшать средний размер случайных шагов коррекции. Когда средний размер шагов велик, значение ошибки будет принимать все значения с равной вероятностью. Если плавно уменьшать размер шагов, то будет достигнуто условие, при котором значение ошибки будет на некоторое время «застревать» в точке B. Когда размер шага уменьшится еще больше, значение ошибки будет «останав­ливаться» на короткое время и в точке А, и в точке B. Если уменьшать размер шага непрерывно, то, в конце концов, будет достигнута величина шага, достаточная для того, чтобы преодолеть локальный минимум А, но не локальный минимум В.

Обучение с учителем.

Алгоритм называется алгоритмом обучения с учителем, если во время обучения сеть располагает правильными ответами (выходами сети) на каждый входной пример, то есть заранее задается множество пар векторов {(xS, dS)}, где xS ∈ X - вектор, задающий условие задачи, а dS ∈ Y - известное решение задачи для вектора xS. В процессе обучения сеть меняет свои параметры таким образом, чтобы давать нужное отображение X → Y. Необходимо отметить, что размер множества {(xS, dS)} должен быть достаточным для того, чтобы алгоритм обу­чения смог сформировать нужное отображение [6, с. 39][14].

Обучение без учителя.

Хотя метод обучения с учителем успешно применяется для решения прикладных задач, многие исследователи критикуют его за биологическое неправдоподобие.

Действительно, трудно вообразить, что в мозге есть некоторый механизм, который сравнивает действительные результаты с желаемыми. Алгоритм обучения без учителя может применяться тогда, когда известны только входные сигналы. На их основе сеть учится давать наилучшие значения выхо­дов. Понятие «наилучшее значение» опре­деляется алгоритмом обучения. Обычно алгоритм подстраивает параметры так, чтобы сеть выдавала одинаковые результаты для достаточно близких входных значений.

Метод Хэбба.

Самым старым обучающим правилом (1949-й год) является постулат обучения Хэбба. На основании физиологических и психологических исследований Хэбб выдвинул гипотезу о том, как обучаются биологические нейроны. Он предположил, что вес соединения между двумя нейронами усиливается, если оба эти нейрона возбуждены.

Хэбб опирался на следующие нейрофизиологические наблюдения: если связанные между собой нейроны активизируются одновременно и регулярно, то сила связи возрастает. Важной особенностью этого правила является то, что изменение веса связи зависит только от активности нейронов, которые соединены данной связью [5, с. 43][15].

Сам алгоритм выглядит следующим образом:

  1. На стадии инициализации всем весо­вым коэффициентам присваиваются небольшие случайные значения.
  2. На вход сети подается входной сигнал и вычисляется выход.
  3. На основании полученных выходных значений нейронов производится изменение весовых коэффициентов.
  4. Повтор с шага 2 с новым образом из входного множества до тех пор, пока вы­ходные значения сети не стабилизируются с заданной точностью.

Правило коррекции по ошибке.

В 1957 г. Розенблатт разработал модель, которая вызвала большой интерес у иссле­дователей. Модель использует алгоритм обучения с учителем, то есть обучающее множество состоит из множества входных векторов, для каждого из которых указан выходной вектор. Несмотря на некоторые ограничения, она стала основой для многих современных наиболее сложных алгоритмов обучения с учителем.

Суть алгоритма состоит в следующем: для каждого входного примера задается желаемый выход. Если реальный выход сети не совпадает с желаемым, то параметры сети будут скорректированы. Для вычисления величины коррекции используется разница между реальным и желаемым выходом сети, причем коррекция весов будет происходить только в случае ошибочного ответа.

Обучение методом соревнования.

В отличие от обучения Хэбба, в кото­ром множество выходных нейронов могут возбуждаться одновременно, при соревновательном обучении выходные нейроны соревнуются между собой за активизацию. То есть из всего множества выходных нейронов используется только один нейрон с самым большим выходом. Такой алгоритм напоминает процесс обучения биологических нейронных сетей. Обучение методом соревнования позволяет классифицировать входные данные: похожие примеры группируются сетью в один класс и представляются одним образцовым элементом. При этом каждый нейрон из множества выходных нейронов «отвечает» только за один класс. Очевидно, что общее число классов, с которыми способна работать сеть равно количеству выходных нейронов [9, с. 411][16].

II. Практическая часть

Глава 6. Применение нечеткой логики на практике

Согласно заданию, на курсовое проектирование, необходимо решить следующую задачу:

Задача 9. Определение затрат на свадьбу.

В задаче требуется определить сколько денег будет потрачено на свадьбу.

Входные сигналы:

а) количество гостей (маленькое, среднее, большое);

б) наличие приглашенных артистов (много артистов, мало артистов);

в) количество блюд на праздничном столе (много блюд, среднее количество блюд, мало блюд).

Выходной сигнал: затраты на свадьбу (богатая свадьба, средняя, бедная).

Правила: 1. Если количество гостей маленькое, мало приглашенных артистов, мало блюд на столе, то свадьба бедная. 2. Если среднее количество гостей, мало артистов, среднее количество блюд, то свадьба средняя. 3. Если много приглашенных гостей, много приглашенных артистов, много блюд на столе, то свадьба богатая.

Для выполнения поставленной задачи будем использовать комплекс Fuzzy Logic Toolbox, входящий в состав программного комплекса Matlab.

Пакет Fuzzy Logic Toolbox (пакет нечеткой логики) это совокупность прикладных программ, относящихся к теории размытых или нечетких множеств и позволяющих конструировать так называемые нечеткие экспертные или управляющие системы.

Основные возможности пакета:

  • построение систем нечеткого вывода (экспертных систем, регуляторов, аппроксиматоров зависимостей);
  • построение адаптивных нечетки систем (гибридных нейронных сетей);
  • интерактивное динамическое моделирование.

Для решения этой задачи сформулируем задачу нечеткого вывода с нуля.

Алгоритм решения:

  • создадим входы и выходы;
  • определим функции принадлежности для нечетких переменных;
  • определим правила работы системы.

Решение данной задачи будем производить с помощью программного комплекса Matlab. В составе этого комплекса есть фаззи-система управления нечеткой логикой, называемая в терминах программной среды Fuzzy Inference System.

Решение задачи.

1. Открытие редактора. Создание входов и выхода сети.

Для выполнения данного этапа запустим программный пакет Matlab и для вызова фаззи-системы Fuzzy Inference System наберем в строке функций команду fuzzy и нажмем клавишу Enter (рис. 8) [4, с. 67][17].

Рис. 8. Вызов фаззи-системы Fuzzy Inference System

Открывшийся редактор позволит создать входы, выходы, функции принадлежности, создавать, редактировать и смотреть работу правил.

В нашей системе будет три входа:

  1. количество гостей – переменная «гости».
  2. наличие приглашенных артистов – переменная «артисты».
  3. количество блюд на праздничном столе – переменная «еда».

Добавим входы в редакторе. Для этого выберем в меню редактора команду: Edit -> Add Variable… -> Input (рис. 9).

Рис. 9. Ввод входов в систему

Выходной блок назовем «свадьба» (рис. 10).

Далее переименуем разрабатываемую сеть в «WeddingExpert». Для этого выберем пункт меню: File -> Export -> To Workspace… (рис. 11).

Рис. 10. Переименование выхода

Рис. 11. Создание имени сети

Зададим функции принадлежности для входа «гости».

Поскольку у нас количество гостей может быть маленькое, среднее, большое, поэтому зададим диапазон изменения [0 10] (рис. 12).

Рис. 12. Функции принадлежности для входа «гости»

Зададим функции принадлежности для входа «артисты».

Артистов у нас может быть мало или много (рис. 13).

Рис. 13. Функции принадлежности для входа «артисты»

Зададим функции принадлежности для входа «еда».

Еды у нас может быть мало, средне, много (рис. 14).

Рис. 14. Функции принадлежности для входа «еда»

Далее отредактируем выходной параметр «свадьба». Свадьба может быть богатая, средняя, бедная (рис. 15).

Рис. 15. Функции принадлежности для выхода «свадьба»

Далее создадим правила.

Для этого перейдем в пункт меню Edit -> Rules…

Откроется окно редактора правил (рис. 16).

Рис. 16. Окно редактора правил

Наши правила:

1. Если количество гостей маленькое, мало приглашенных артистов, мало блюд на столе, то свадьба бедная.

2. Если среднее количество гостей, мало артистов, среднее количество блюд, то свадьба средняя.

3. Если много приглашенных гостей, много приглашенных артистов, много блюд на столе, то свадьба богатая.

Внесем правила в редактор правил (рис. 17).

Рис. 17. Внесенные правила

После создания системы проверим ее работоспособность.

Для этого выберем пункт меню View -> View Ruses… и введем следующие параметры:

Гости = 3; (маленькое)

Артисты = 6 (среднее);

Еда = 8 (много).

Полученный результат = 15 (свадьба средняя) (рис. 18).

Рис. 18. Тестирование системы

Таким образом, созданная нами экспертная система определения уровня затрат на свадьбу работает правильно.

Заключение

В ходе выполнения курсовой работы выполнены следующие задачи:

  1. Рассмотрена история развития нейронных сетей.
  2. Изучена аналогия нейронных сетей с мозгом и биологическим нейроном.
  3. Введено понятие искусственного нейрона и рассмотрена его структура.
  4. Рассмотрены виды искусственных нейронных сетей и их модели.
  5. Изучено обучение нейронных сетей.
  6. Выполнено практическое задание по созданию экспертной системы определения затрат на свадьбу при помощи программного пакета Matlab.

Созданная экспертная система протестирована и показала хорошие результаты.

Библиография

  1. Васильев, А. Н. Принципы и техника нейросетевого моделирования / А.Н. Васильев, Д.А. Тархов. - Москва: Высшая школа, 2014. - 218 c.
  2. Галушкин А. И. Нейронные сети. Основы теории / А. И. Галушкин. - М: Горячая линия - Телеком, 2010. - 496 с.
  3. Гелиг, А. Х. Введение в математическую теорию обучаемых распознающих систем и нейронных сетей. Учебное пособие: моногр. / А.Х. Гелиг, А.С. Матвеев. - М.: Издательство СПбГУ, 2014. - 224 c.
  4. Леоненков А. Нечеткое моделирование в среде MATLAB и fuzzyTECH. СПб: БХВ-Санкт-Петербург, 2003. - 719 с
  5. Мазуров Вл. Д. Математические методы распознавания образов: учеб. пособие / Вл. Д. Мазуров. - 2-е изд., доп. и перераб. - Екатеринбург: Изд-во Урал. ун-та, 2010. - 101 с.
  6. Мазуров Вл. Д. Нейронные сети в прикладной экономике: учеб. пособие / Вл. Д. Мазуров. - Екатеринбург: Изд-во Урал. ун-та, 2017. - 96 с.
  7. Олескин, А. В. Сетевые структуры в биосистемах и человеческом обществе / А.В. Олескин. - М.: Едиториал УРСС, Либроком, 2015. - 304 c.
  8. Рутковская Д. Нейронные сети, генетические алгоритмы и нечеткие системы / Д. Рутковская, М. Пилиньский, Л. Рутковский. - М: Горячая линия - Телеком, 2013. - 384 с.
  9. Тархов, Д.А. Нейросетевые модели и алгоритмы. Справочник / Д.А. Тархов. - М.: Радиотехника, 2014. - 643 c.
  10. Murphy K. P. Machine Learning: A Probabilistic Perspective / K. P. Murphy. - Massachusetts Institute of Technology, 2012. - 1067 p.
  11. Murray A. Applications of Neural Networks / A. Murray. - Springer, 2014. - 340 p.

Приложения

Приложение А. Исходный код экспертной системы

[System]

Name='WeddingExpert'

Type='mamdani'

Version=2.0

NumInputs=3

NumOutputs=1

NumRules=3

AndMethod='min'

OrMethod='max'

ImpMethod='min'

AggMethod='max'

DefuzzMethod='centroid'

[Input1]

Name='гости'

Range=[0 10]

NumMFs=3

MF1='маленькое':'gaussmf',[1.699 0]

MF2='среднее':'gaussmf',[1.699 5]

MF3='большое':'gaussmf',[1.699 10]

[Input2]

Name='артисты'

Range=[0 10]

NumMFs=2

MF1='мало':'trimf',[-4 0 4]

MF2='много':'trimf',[6 10 14]

[Input3]

Name='еда'

Range=[0 10]

NumMFs=3

MF1='мало':'gaussmf',[1.699 0]

MF2='средне':'gaussmf',[1.699 5]

MF3='много':'gaussmf',[1.699 10]

[Output1]

Name='свадьба'

Range=[0 30]

NumMFs=3

MF1='бедная':'trimf',[0.0222 5.1984126984127 10.2]

MF2='средняя':'trimf',[9.96 15 20.1984126984127]

MF3='богатая':'trimf',[20.1190476190476 24.7 30]

[Rules]

1 1 1, 1 (1) : 1

2 1 2, 2 (1) : 1

3 2 3, 3 (1) : 1

  1. Мазуров Вл. Д. Нейронные сети в прикладной экономике: учеб. пособие / Вл. Д. Мазуров. - Екатеринбург: Изд-во Урал. ун-та, 2017. – С. 24

  2. Галушкин А. И. Нейронные сети. Основы теории / А. И. Галушкин. - М: Горячая линия - Телеком, 2010. – С. 123

  3. Мазуров Вл. Д. Математические методы распознавания образов: учеб. пособие / Вл. Д. Мазуров. - 2-е изд., доп. и перераб. - Екатеринбург: Изд-во Урал. ун-та, 2010. – С. 84

  4. Галушкин А. И. Нейронные сети. Основы теории / А. И. Галушкин. - М: Горячая линия - Телеком, 2010. – С. 243

  5. Олескин, А. В. Сетевые структуры в биосистемах и человеческом обществе / А.В. Олескин. - М.: Едиториал УРСС, Либроком, 2015. – С. 56

  6. Васильев, А. Н. Принципы и техника нейросетевого моделирования / А.Н. Васильев, Д.А. Тархов. - Москва: Высшая школа, 2014. – С. 109

  7. Murray A. Applications of Neural Networks / A. Murray. - Springer, 2014. – P. 213

  8. Васильев, А. Н. Принципы и техника нейросетевого моделирования / А.Н. Васильев, Д.А. Тархов. - Москва: Высшая школа, 2014. – С. 20

  9. Рутковская Д. Нейронные сети, генетические алгоритмы и нечеткие системы / Д. Рутковская, М. Пилиньский, Л. Рутковский. - М: Горячая линия - Телеком, 2013. – С. 97

  10. Рутковская Д. Нейронные сети, генетические алгоритмы и нечеткие системы / Д. Рутковская, М. Пилиньский, Л. Рутковский. - М: Горячая линия - Телеком, 2013. – С. 99

  11. Рутковская Д. Нейронные сети, генетические алгоритмы и нечеткие системы / Д. Рутковская, М. Пилиньский, Л. Рутковский. - М: Горячая линия - Телеком, 2013. – С. 97

  12. Murphy K. P. Machine Learning: A Probabilistic Perspective / K. P. Murphy. - Massachusetts Institute of Technology, 2012. – P. 545

  13. Гелиг, А. Х. Введение в математическую теорию обучаемых распознающих систем и нейронных сетей. Учебное пособие: моногр. / А.Х. Гелиг, А.С. Матвеев. - М.: Издательство СПбГУ, 2014. – С. 187

  14. Мазуров Вл. Д. Нейронные сети в прикладной экономике: учеб. пособие / Вл. Д. Мазуров. - Екатеринбург: Изд-во Урал. ун-та, 2017. – С. 39

  15. Мазуров Вл. Д. Математические методы распознавания образов: учеб. пособие / Вл. Д. Мазуров. - 2-е изд., доп. и перераб. - Екатеринбург: Изд-во Урал. ун-та, 2010. – С. 43

  16. Тархов, Д.А. Нейросетевые модели и алгоритмы. Справочник / Д.А. Тархов. - М.: Радиотехника, 2014. – С.411

  17. Леоненков А. Нечеткое моделирование в среде MATLAB и fuzzyTECH. СПб: БХВ-Санкт-Петербург, 2003 – С. 67