Файл: «Нечеткая логика и нейронные сети».pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 22.05.2023

Просмотров: 290

Скачиваний: 4

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Сети (слои) Кохонена относятся к самоорганизующимся нейронным сетям. Самоорганизующаяся сеть позволяет выявлять кластеры (группы) входных векторов, обладающих некоторыми общими свойствами. [26] [28] Кластеризация — это разделение исследуемого множества объектов на группы "похожих" объектов, называемых кластерами. Синонимами термина "кластер" являются термины класс, таксон, сгущение. Задача кластеризации принципиально отличается от задачи классификации. Решением задачи классификации является отнесение каждого из объектов к одному из заранее определенных классов. В задаче кластеризации происходит отнесение объекта к одному из заранее неопределенных классов. Разбиение объектов по кластерам осуществляется при одновременном формировании кластеров. Кластеризация позволяет сгруппировать сходные данные, что облегчает решение ряда задач Data Mining:

  • Изучение данных, облегчение анализа. Содержательный анализ полученных кластеров позволяет обнаружить закономерности. Например, можно выявить группы клиентов сети сотовой связи, для которых можно предложить новый тарифный план. Другие примеры — выявление групп покупателей торговой сети, сегментация рынка. Анализ содержания кластера позволяет применить к объектам различных кластеров разные методы анализа.
  • Прогнозирование. Относя новый объект к одному из кластеров, можно прогнозировать поведение объекта, поскольку его поведение будет схожим с поведением объектов кластера.
  • Обнаружение аномалий. Содержательный анализ кластеров помогает выявить аномалии. Обычно, это кластеры, в которые попадает мало объектов. [29]

Важно отметить роль содержательной интерпретации каждого кластера. Каждому кластеру необходимо присвоить содержательное название, отражающее суть объектов кластера. Для этого необходимо выявить, признаки, объединяющие объекты в кластер. Это может потребовать статистического анализа свойств объекта кластера. С помощью сетей Кохонена производится кластеризация объектов, описываемых количественными характеристиками. [28]

Карты Кохонена (самоорганизующиеся карты) предназначены для визуального представления многомерных свойств объектов на двумерной карте. [30] Карты Кохонена производят отображение входных данных высокой размерности на элементы регулярного массива малой размерности (обычно, двумерного). Карты Кохонена похожи на сети Кохонена. Отличие состоит в том, что в карте нейроны, являющиеся центрами кластеров, упорядочены в некоторую структуру (обычно двумерную сетку). В процессе обучения карты настраиваются веса не только нейрона-победитель, но и его соседей. В результате близкие по некоторой метрике входные векторы в сети Кохонена относятся к одному нейрону (центру кластера), а в карте Кохонена могут относиться к разным близко расположенным на сетке нейронам. Обычно нейроны располагаются в узлах двумерной сетки с прямоугольными или шестиугольными ячейками. [26] Нейроны-соседи определяются расстоянием между нейронами на карте. Шестиугольные ячейки более корректно отображают декартово расстояние между объектами на карте, т. к. для этих ячеек расстояние между центрами смежных ячеек одинаковы. Каждой ячейке соответствует нейрон сети Кохонена. То есть в карте Кохонена число нейронов равно числу ячеек карты и больше числа нейронов сети Кохонена, равного числу кластеров. Число ячеек карты зависит от требуемой детальности изображения и подбирается экспериментально. Для каждой ячейки вычисляется одна из статистических характеристик выбранного компонента входных векторов, попавших в ячейку. В зависимости от величины этой характеристики ячейка окрашивается в определенный цвет Карты Кохонена только позволяют по раскраске ячеек карты выдвигать гипотезы о наличии кластерной структуры и числе кластеров, зависимостях между значениями отдельных переменных. Выдвинутые гипотезы должны проверяться и подтверждаться иными способами. Карты используются на стадии разведочного анализа данных, скорее для общего понимания задачи, чем для получения каких-либо точных результатов. [28] [29]


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

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

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

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

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

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

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

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

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


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

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

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

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

Метод Хебба.

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

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

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

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

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


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

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

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

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

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

Задача на расход топлива автомобиля.

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

Выходной сигнал: значение величины расхода топлива (большой расход, средний расход, маленький расход).

Правила:

1. Если скорость движения низкая, температура воздуха низкая, то расход топлива маленький.

2. Если скорость движения средняя, температура воздуха низкая, то расход средний.


3. Если скорость высокая, температура воздуха высокая, то расход большой.

Для решения данной задачи будем использовать комплекс MATLABFuzzyLogicToolbox. Будем использовать алгоритм логического вывода mamdani, который по умолчанию предлагает нам система (Рис.3).

Рис.3

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

Рис.4

Зададим функции принадлежности для наших переменных, через редактор функций. Задаем диапазон изменения для переменной «Скорость» от 0 до 150 км\ч, затем зададим 3 функции принадлежности гауссового типа (gaussmf) (Рис.5).

Рис.5

Далее отредактируем функцию переменной для переменной «Температура». Зададим диапазон изменения температуры от -20 до +20 градусов. И задаем 2 функции с соответствующими параметрами «высокая» и «низкая» (Рис.6).

Рис.6

Редактируем последнюю, заданную, переменную «Расход топлива» с диапазоном от 5 до 29 л\100км. Задаем 3 функции принадлежности, треугольной формы (Рис.7).

Рис.7

Сделано все необходимое для конструирования правил. Задаем правила, которые у нас даны в условии задачи (Рис.8).

Рис.8

Откроем окно просмотра правил и посмотрим как при разных значениях входных данных меняется ответ. Машина стоит на месте, но при этом на улице +20 градусов и мы включили кондиционер, расход топлива при этом составит 14,3 л\100км. (Рис.9)

Рис.9

Начали движение и развили скорость до 100км\ч, на улице +20 и кондиционер работает, машина работает на полную мощность и расходует максимальное количество топлива – 25л\100км (Рис.10).

Рис.10

Изменим скорость до 60км\ч и понизим температуру до 0 градусов. Расход уменьшился до приемлемых 14 л\100км.

Fuzzy Logic Toolbox – это мощный инструмент для реализации алгоритмов нечеткой логики. Позволяет строить системы нечеткого вывода для экспертных систем, решения задач идентификации и управления.

Заключение