Добавлен: 22.05.2023
Просмотров: 290
Скачиваний: 4
Сети (слои) Кохонена относятся к самоорганизующимся нейронным сетям. Самоорганизующаяся сеть позволяет выявлять кластеры (группы) входных векторов, обладающих некоторыми общими свойствами. [26] [28] Кластеризация — это разделение исследуемого множества объектов на группы "похожих" объектов, называемых кластерами. Синонимами термина "кластер" являются термины класс, таксон, сгущение. Задача кластеризации принципиально отличается от задачи классификации. Решением задачи классификации является отнесение каждого из объектов к одному из заранее определенных классов. В задаче кластеризации происходит отнесение объекта к одному из заранее неопределенных классов. Разбиение объектов по кластерам осуществляется при одновременном формировании кластеров. Кластеризация позволяет сгруппировать сходные данные, что облегчает решение ряда задач Data Mining:
- Изучение данных, облегчение анализа. Содержательный анализ полученных кластеров позволяет обнаружить закономерности. Например, можно выявить группы клиентов сети сотовой связи, для которых можно предложить новый тарифный план. Другие примеры — выявление групп покупателей торговой сети, сегментация рынка. Анализ содержания кластера позволяет применить к объектам различных кластеров разные методы анализа.
- Прогнозирование. Относя новый объект к одному из кластеров, можно прогнозировать поведение объекта, поскольку его поведение будет схожим с поведением объектов кластера.
- Обнаружение аномалий. Содержательный анализ кластеров помогает выявить аномалии. Обычно, это кластеры, в которые попадает мало объектов. [29]
Важно отметить роль содержательной интерпретации каждого кластера. Каждому кластеру необходимо присвоить содержательное название, отражающее суть объектов кластера. Для этого необходимо выявить, признаки, объединяющие объекты в кластер. Это может потребовать статистического анализа свойств объекта кластера. С помощью сетей Кохонена производится кластеризация объектов, описываемых количественными характеристиками. [28]
Карты Кохонена (самоорганизующиеся карты) предназначены для визуального представления многомерных свойств объектов на двумерной карте. [30] Карты Кохонена производят отображение входных данных высокой размерности на элементы регулярного массива малой размерности (обычно, двумерного). Карты Кохонена похожи на сети Кохонена. Отличие состоит в том, что в карте нейроны, являющиеся центрами кластеров, упорядочены в некоторую структуру (обычно двумерную сетку). В процессе обучения карты настраиваются веса не только нейрона-победитель, но и его соседей. В результате близкие по некоторой метрике входные векторы в сети Кохонена относятся к одному нейрону (центру кластера), а в карте Кохонена могут относиться к разным близко расположенным на сетке нейронам. Обычно нейроны располагаются в узлах двумерной сетки с прямоугольными или шестиугольными ячейками. [26] Нейроны-соседи определяются расстоянием между нейронами на карте. Шестиугольные ячейки более корректно отображают декартово расстояние между объектами на карте, т. к. для этих ячеек расстояние между центрами смежных ячеек одинаковы. Каждой ячейке соответствует нейрон сети Кохонена. То есть в карте Кохонена число нейронов равно числу ячеек карты и больше числа нейронов сети Кохонена, равного числу кластеров. Число ячеек карты зависит от требуемой детальности изображения и подбирается экспериментально. Для каждой ячейки вычисляется одна из статистических характеристик выбранного компонента входных векторов, попавших в ячейку. В зависимости от величины этой характеристики ячейка окрашивается в определенный цвет Карты Кохонена только позволяют по раскраске ячеек карты выдвигать гипотезы о наличии кластерной структуры и числе кластеров, зависимостях между значениями отдельных переменных. Выдвинутые гипотезы должны проверяться и подтверждаться иными способами. Карты используются на стадии разведочного анализа данных, скорее для общего понимания задачи, чем для получения каких-либо точных результатов. [28] [29]
Глава 5 Обучение нейронных сетей
Способность к обучению является фундаментальным свойством мозга. В контексте искусственных нейронных сетей процесс обучения может рассматриваться как настройка архитектуры сети, а также весов связей для эффективного выполнения поставленной задачи. Обычно нейронная сеть должна настроить веса по предоставленным обучающим примерам. Свойство сети обучаться на примерах делает их более привлекательными по сравнению с системами, которые работают по заранее заложенным правилам. [10]
Среди всех существующих методов обучения можно выделить два класса:
- Детерминированный метод итеративно корректирует параметры сети, основываясь на ее текущих параметрах, величинах входов, фактических и желаемых выходов. Яркой иллюстрацией подобного метода является метод обратного распространения ошибки.
- Стохастические методы обучения изменяют параметры сети случайным образом. При этом сохраняются только те изменения, которые привели к улучшениям. В качестве примера стохастического метода обучения можно привести следующий алгоритм:
- Выбрать параметры сети случайным образом и подкорректировать их на небольшую случайную величину. Предъявить множество входов и вычислить получающиеся выходы.
- Сравнить эти выходы с желаемыми и вычислить разницу между ними. Эта разница называется ошибкой. Цель обучения состоит в том, чтобы минимизировать ошибку.
- Если ошибка уменьшилась, коррекция сохраняется, иначе коррекция отбрасывается и выбирается новая.
Шаги 2 и 3 повторяются до тех пор, пока сеть не обучится.
Необходимо отметить, что стохастический метод обучения может попасть в «ловушку» локального минимума.
Допустим, что первоначальное значение ошибки равно или очень близко к точке А.
Если случайные шаги корректировки малы, то любые отклонения от точки А увеличат ошибку и будут отвергнуты. Таким образом, наименьшее значение ошибки в точке В никогда не будет найдено. Когда случайные коррекции параметров сети очень велики, ошибка будет меняться так резко, что никогда не установится в одном из минимумов.
Чтобы избежать подобных проблем, можно постепенно уменьшать средний размер случайных шагов коррекции. Когда средний размер шагов велик, значение ошибки будет принимать все значения с равной вероятностью. Если плавно уменьшать размер шагов, то будет достигнуто условие, при котором значение ошибки будет на некоторое время «застревать» в точке B. Когда размер шага уменьшится еще больше, значение ошибки будет «останавливаться» на короткое время и в точке А, и в точке B. Если уменьшать размер шага непрерывно, то, в конце концов, будет достигнута величина шага, достаточная для того, чтобы преодолеть локальный минимум А, но не локальный минимум В. [11]
Обучение с учителем.
Алгоритм называется алгоритмом обучения с учителем, если во время обучения сеть располагает правильными ответами (выходами сети) на каждый входной пример, то есть заранее задается множество пар векторов {(xS, d5)}, где xS е X - вектор, задающий условие задачи, а dS е Y - известное решение задачи для вектора xS. В процессе обучения сеть меняет свои параметры таким образом, чтобы давать нужное отображение X ® Y. Необходимо отметить, что размер множества {(xS, dS)} должен быть достаточным для того, чтобы алгоритм обучения смог сформировать нужное отображение [31].
Обучение без учителя.
Хотя метод обучения с учителем успешно применяется для решения прикладных задач, многие исследователи критикуют его за биологическое неправдоподобие. Действительно, трудно вообразить, что в мозге есть некоторый механизм, который сравнивает действительные результаты с желаемыми. Алгоритм обучения без учителя может применяться тогда, когда известны только входные сигналы. На их основе сеть учится давать наилучшие значения выходов. Понятие «наилучшее значение» определяется алгоритмом обучения. Обычно алгоритм подстраивает параметры так, чтобы сеть выдавала одинаковые результаты для достаточно близких входных значений [32].
Метод Хебба.
Самым старым обучающим правилом является постулат обучения Хебба. На основании физиологических и психологических исследований Хебб выдвинул гипотезу о том, как обучаются биологические нейроны. Он предположил, что вес соединения между двумя нейронами усиливается, если оба эти нейрона возбуждены. [10]
Хебб опирался на следующие нейрофизиологические наблюдения: если связанные между собой нейроны активизируются одновременно и регулярно, то сила связи возрастает. Важной особенностью этого правила является то, что изменение веса связи зависит только от активности нейронов, которые соединены данной связью.
Сам алгоритм выглядит следующим образом:
- На стадии инициализации всем весовым коэффициентам присваиваются небольшие случайные значения.
- На вход сети подается входной сигнал и вычисляется выход.
- На основании полученных выходных значений нейронов производится изменение весовых коэффициентов.
- Повтор с шага 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 – это мощный инструмент для реализации алгоритмов нечеткой логики. Позволяет строить системы нечеткого вывода для экспертных систем, решения задач идентификации и управления.