МОДЕЛИРОВАНИЕ СЕТИКЛАСТЕРИЗАЦИИ ДАННЫХ В MATLAB NEURAL NETWORK TOOL
СОДЕРЖАНИЕ
Введение
1. Общие сведения о кластеризации
1.1 Понятие кластеризации
1.2 Процесс кластеризации
1.3 Алгоритмы кластеризации
1.3.1 Иерархические алгоритмы
1.3.2 k-Means алгоритм
1.3.3 Минимальное покрывающее дерево
1.3.4 Метод ближайшего соседа
1.3.5 Алгоритм нечеткой кластеризации
1.3.6 Применение нейронных сетей
1.3.7 Генетические алгоритмы
1.4 Применение кластеризации
2. Сеть Кохонена
2.1 Структура сети Кохонена
2.2 Обучение сети Кохонена
2.3 Выбор функции «соседства»
2.4 Карта Кохонена
2.5 Задачи, решаемые при помощи карт Кохонена
3. Моделирование сети кластеризации данных в MATLAB NEURAL NETWORK TOOLBOX
3.1 Самоорганизующиеся нейронные сети в MATLAB NNT
3.1.1 Архитектура сети
3.1.2 Создание сети
3.1.3 Правило обучения слоя Кохонена
3.1.4 Правило настройки смещений
3.1.5 Обучение сети
3.1.6 Моделирование кластеризации данных
3.2 Карта Кохонена в MATLABNNT
3.2.1 Топология карты
3.2.2 Функции для расчета расстояний
3.2.3 Архитектура сети
3.2.4 Создание сети
3.2.5 Обучение сети
3.2.6 Моделирование одномерной карты Кохонена
3.2.7 Моделирование двумерной карты Кохонена
Выводы
Перечень ссылок
ВВЕДЕНИЕ
В настоящее время ни у кого не вызывает удивления проникновениекомпьютеров практически во все сферы человеческой деятельности.Совершенствование элементной базы, определяющей архитектуру компьютера, ираспараллеливания вычислений позволяют быстро и эффективно решать задачи всевозрастающей сложности. Решение многих проблем немыслимо без применениякомпьютеров. Однако, обладая огромным быстродействием, компьютер часто не всостоянии справиться с поставленной перед ним задачей так, как бы это сделалчеловек. Примерами таких задач могут быть задачи распознавания, понимания речии текста, написанного от руки, и многие другие. Таким образом, сеть нейронов,образующая человеческий мозг, являясь, как и компьютерная сеть, системойпараллельной обработки информации, во многих случаях оказывается болееэффективной. Идея перехода от обработки заложенным в компьютер алгоритмомнекоторых формализованных знаний к реализации в нем свойственных человекуприемов обработки информации привели к появлению искусственных нейронных сетей(ИНС).
Отличительной особенностью биологических систем является адаптация,благодаря которой такие системы в процессе обучения развиваются и приобретаютновые свойства. Как и биологические нейронные сети, ИНС состоят из связанныхмежду собой элементов, искусственных нейронов, функциональные возможности которыхв той или иной степени соответствуют элементарным функциям биологическогонейрона. Как и биологический прототип, ИНС обладает следующим свойствами:
· адаптивное обучение;
· самоорганизация;
· вычисления в реальном времени;
· устойчивость к сбоям.
Таким образом, можно выделить ряд преимуществ использования нейронныхсетей:
· возможно построениеудовлетворительной модели на нейронных сетях даже в условиях неполноты данных;
· искусственные нейронные сети легкоработают в распределенных системах с большой параллелизацией в силу своейприроды;
· поскольку искусственные нейронныесети подстраивают свои весовые коэффициенты, основываясь на исходных данных,это помогает сделать выбор значимых характеристик менее субъективным.
Сейчас мир переполнен различными данными и информацией — прогнозамипогод, процентами продаж, финансовыми показателями и массой других. Частовозникают задачи анализа данных, которые с трудом можно представить в математическойчисловой форме. Например, когда нужно извлечь данные, принципы отбора которыхзаданы нечетко: выделить надежных партнеров, определить перспективный товар,проверить кредитоспособность клиентов или надежность банков и т.п. И для того,чтобы получить максимально точные результаты решения этих задач необходимоиспользовать различные методы анализа данных. В частности, можно использоватьИНС для кластеризации данных, что, на мой взгляд является наиболееперспективным подходом.
1.ОБЩИЕ СВЕДЕНИЯ О КЛАСТЕРИЗАЦИИ
1.1 Понятиекластеризации
Классификация– наиболее простая и распространенная задача. Врезультате решения задачи классификации обнаруживаются признаки, которыехарактеризуют группы объектов исследуемого набора данных — классы; по этимпризнакам новый объект можно отнести к тому или иному классу.
Кластеризация – это автоматическое разбиение элементовнекоторого множества на группы в зависимости от их схожести. Синонимами термина«кластеризация»являются «автоматическая классификация», «обучение без учителя» и«таксономия».
Задача кластеризации сходна с задачей классификации, является ее логическимпродолжением, но ее отличие в том, что классы изучаемого набора данных заранеене предопределены. Таким образом кластеризацияпредназначена для разбиения совокупности объектов на однородные группы (кластеры иликлассы). Если данные выборки представить как точки в признаковом пространстве,то задача кластеризациисводится к определению «сгущений точек».
Целью кластеризации является поиск существующих структур.
Кластеризация является описательной процедурой,она не делает никаких статистических выводов, но дает возможность провестиразведочный анализ и изучить «структуру данных».
Само понятие «кластер»определено неоднозначно: в каждом исследовании свои «кластеры». Переводится понятие кластер как«скопление», «гроздь». В искусственных нейронных сетях подпонятием кластер понимается подмножество «близких друг к другу» объектов измножества векторов характеристик. Следовательно, кластер можно охарактеризоватькак группу объектов, имеющих общие свойства.
Характеристиками кластера можно назвать два признака:
· внутренняя однородность;
· внешняя изолированность.
В таблице 1.1 приведено сравнение некоторых параметровзадач классификации и кластеризации.
Таблица 1.1
Сравнение классификации и кластеризации
/>Характеристика Классификация Кластеризация Контролируемость обучения Контролируемое обучение Неконтролируемое обучение Стратегия Обучение с учителем Обучение без учителя Наличие метки класса Обучающее множество сопровождается меткой, указывающей класс, к которому относится наблюдение Метки класса обучающего множества неизвестны Основание для классификации Новые данные классифицируются на основании обучающего множества Дано множество данных с целью установления существования классов или кластеров данных
На рисунке 1.1 схематически представлены задачиклассификации и кластеризации
/>/>
Рисунок 1.1 – Сравнениезадач классификации и кластеризации
Кластеры могут быть непересекающимися, илиэксклюзивными, и пересекающимися. Схематическое изображение непересекающихся ипересекающихся кластеровдано на рисунке 1.2
/>
/>Рисунок 1.2 – Непересекающиеся и пересекающиеся кластеры
1.2 Процесс кластеризации
Процесс кластеризации зависит от выбранного метода и почти всегдаявляется итеративным. Он может стать увлекательным процессом и включатьмножество экспериментов по выбору разнообразных параметров, например, меры расстояния,типа стандартизации переменных, количества кластеров и т.д. Однако эксперименты недолжны быть самоцелью — ведь конечной целью кластеризации является получениесодержательных сведений о структуре исследуемых данных. Полученные результатытребуют дальнейшей интерпретации, исследования и изучения свойств ихарактеристик объектов для возможности точного описания сформированных кластеров.
/>
Рисунок 1.3 – Общаясхема кластеризации
Кластеризация данных включает в себя следующие этапы:
а) Выделение характеристик.
Для начала необходимо выбрать свойства, которыехарактеризуют наши объекты, ими могут быть количественные характеристики(координаты, интервалы…), качественные характеристики (цвет, статус, воинскоезвание…) и т.д. Затем стоит попробовать уменьшить размерность пространствахарактеристических векторов, то есть выделить наиболее важные свойстваобъектов. Уменьшение размерности ускоряет процесс кластеризации и в рядеслучаев позволяет визуально оценивать результаты. Выделенные характеристикистоит нормализовать. Далее все объекты представляются в виде характеристическихвекторов. Мы будем полностью отождествлять объект с его характеристическимвектором.
б) Определение метрики.
Следующим этапом кластеризации является выбор метрики,по которой мы будем определять близость объектов. Метрика выбирается взависимости от:
· пространства, в котором расположены объекты;
· неявных характеристик кластеров.
Например, если все координаты объекта непрерывны ивещественны, а кластера должны представлять собой нечто вроде гиперсфер, тоиспользуется классическая евклидова метрика (на самом деле, чаще всего так иесть):
/>. (1.1)
в) Представление результатов.Результатыкластеризации должны быть представлены в удобном для обработки виде, чтобыосуществить оценку качества кластеризации. Обычно используется один изследующих способов:
· представление кластеров центроидами;
· представление кластеров набором характерных точек;
· представление кластеров их ограничениями.
/>
Рисунок 1.4 – Способыпредставления кластеров
Оценка качества кластеризации может быть проведена наоснове следующих процедур:
· ручная проверка;
· установление контрольных точек и проверка наполученных кластерах;
· определение стабильности кластеризации путем добавления в модельновых переменных;
· создание и сравнение кластеров с использованием различныхметодов.
Разные методы кластеризации могут создавать разные кластеры, и этоявляется нормальным явлением. Однако создание схожих кластеров различными методами указываетна правильность кластеризации.
1.3 Алгоритмы кластеризации
Следует отметить, что в результате примененияразличных методов кластерного анализа могут быть получены кластеры различной формы. Например, возможныкластеры«цепочного» типа, когда кластеры представлены длинными «цепочками», кластерыудлиненной формы и т.д., а некоторые методы могут создавать кластерыпроизвольной формы. Различные методы могут стремиться создавать кластерыопределенных размеров (например, малых или крупных), либо предполагать в набореданных наличие кластеровразличного размера. Некоторые методы кластерного анализа особенно чувствительнык шумам или выбросам, другие — менее. В результате применения различных методовкластеризациимогут быть получены неодинаковые результаты, это нормально и являетсяособенностью работы того или иного алгоритма. Данные особенности следуетучитывать при выборе метода кластеризации.На сегодняшний день разработано более сотни различных алгоритмов кластеризации.
Классифицировать алгоритмы можно следующим образом:
· строящие «снизу вверх» и «сверхувниз»;
· монотетические и политетические;
· непересекающиеся и нечеткие;
· детерминированные и стохастические;
· потоковые (оnline) и не потоковые;
· зависящие и не зависящие от порядкарассмотрения объектов.
/>
Рисунок 1.5 – Классификация алгоритмов кластеризации
Далее будут рассмотрены основные алгоритмыкластеризации.
1.3.1 Иерархические алгоритмы
Результатом работы иерархических алгоритмов являетсядендограмма (иерархия), позволяющая разбить исходное множество объектов налюбое число кластеров. Два наиболее популярных алгоритма, оба строят разбиение«снизу вверх»:
· single-link – на каждом шаге объединяет два кластера с наименьшимрасстоянием между двумя любыми представителями;
· complete-link – на каждом шаге объединяет два кластера с наименьшимрасстоянием между двумя наиболее удаленными представителями.
/>
Рисунок 1.6 – Пример single-link алгоритма
/>
Рисунок 1.7 – Пример complete-link алгоритма
1.3.2 k-Means алгоритм
Данный алгоритм состоит из следующих шагов:
1. Случайно выбрать k точек, являющихся начальными координатами «центрами масс»кластеров (любые k из n объектов, или вообще k случайных точек).
2. Отнести каждый объект к кластеру с ближайшим«центром масс».
3. Пересчитать «центры масс» кластеров согласнотекущему членству.
4. Если критерий остановки не удовлетворен, вернутьсяк шагу 2.
В качестве критерия остановки обычно выбирают один издвух: отсутствие перехода объектов из кластера в кластер на шаге 2 илиминимальное изменение среднеквадратической ошибки.
Алгоритм чувствителен к начальному выбору «центрмасс».
/>
Рисунок 1.8 – Пример k-Means алгоритма
1.3.3 Минимальное покрывающее дерево
Данный метод производит иерархическую кластеризацию«сверху вниз». Сначала все объекты помещаются в один кластер, затем на каждомшаге один из кластеров разбивается на два, так чтобы расстояние между ними быломаксимальным.
/>
Рисунок 1.9 – Пример алгоритма минимального покрывающего дерева
1.3.4 Метод ближайшего соседа
Этот метод является одним из старейших методовкластеризации. Он был создан в 1978 году. Он прост и наименее оптимален из всехпредставленных.
Для каждого объекта вне кластера делаем следующее:
1. Находим его ближайшего соседа, кластер которогоопределен.
2. Если расстояние до этого соседа меньше порога, тоотносим его в тот же кластер. Иначе из рассматриваемого объекта создается ещеодин кластер.
Далее рассматривается результат и при необходимостиувеличивается порог, например, если много кластеров из одного объекта.
1.3.5 Алгоритм нечеткой кластеризации
Четкая (непересекающаяся) кластеризация –кластеризация, которая каждый /> из /> относит только к одному кластеру.
Нечеткая кластеризация – кластеризация, при которойдля каждого /> из/> определяется/>. />– вещественноезначение, показывающее степень принадлежности /> к кластеру j.
Алгоритм нечеткой кластеризации таков:
1. Выбрать начальное нечеткое разбиение объектов на nкластеров путем выбора матрицы принадлежности /> размера />. Обычно />.
2. Используя матрицу U, найтизначение критерия нечеткой ошибки. Например,
/>, (1.2)
где /> — «центр масс» нечеткого кластера k,
/>. (1.3)
3. Перегруппировать объекты с целью уменьшения этогозначения критерия нечеткой ошибки.
4. Возвращаться в пункт 2 до тех пор, пока измененияматрицы /> нестанут значительными.
/>
Рисунок 1.10 – Пример алгоритма нечеткой кластеризации
1.3.6 Применение нейронных сетей
Порой для решения задач кластеризации целесообразноиспользовать нейронные сети. У данного подхода есть ряд особенностей:
· искусственные нейронные сети легкоработают в распределенных системах с большой параллелизацией в силу своейприроды;
· поскольку искусственные нейронныесети подстраивают свои весовые коэффициенты, основываясь на исходных данных,это помогает сделать выбор значимых характеристик менее субъективным.
Существует масса ИНС, например, персептрон,радиально-базисные сети, LVQ-сети, самоорганизующиеся карты Кохонена, которые можно использовать длярешения задачи кластеризации. Но наиболее лучше себя зарекомендовала сеть с применением самоорганизующихся картКохонена, которая и выбрана для рассмотрения в данном дипломном проекте.
1.3.7 Генетические алгоритмы
Это алгоритм, используемый для решения задачоптимизации и моделирования путём случайного подбора, комбинирования и вариацииискомых параметров с использованием механизмов, напоминающих биологическуюэволюцию. Является разновидностью эволюционных вычислений. Отличительнойособенностью генетического алгоритма является акцент на использование оператора«скрещивания», который производит операцию рекомбинации решений-кандидатов,роль которой аналогична роли скрещивания в живой природе.
Задача формализуется таким образом, чтобы её решениемогло быть закодировано в виде вектора («генотипа») генов. Где каждый ген можетбыть битом, числом или неким другим объектом. В классических реализациях ГАпредполагается, что генотип имеет фиксированную длину. Однако существуютвариации ГА, свободные от этого ограничения.
Общая схема данного подхода:
1. Выбрать начальную случайную популяцию множестварешений и получить оценку качества для каждого решения (обычно онапропорциональна />).
2. Создать и оценить следующую популяцию решений,используя эволюционные операторы: оператор выбора – с большой вероятностьюпредпочитает хорошие решения; оператор рекомбинации (обычно это «кроссовер») –создает новое решение на основе рекомбинации из существующих; оператор мутации– создает новое решение на основе случайного незначительного изменения одногоиз существующих решений.
3. Повторять шаг 2 до получения нужного результата.
Главным достоинством генетических алгоритмов в данномприменении является то, что они ищут глобальное оптимальное решение. Большинствопопулярных алгоритмов оптимизации выбирают начальное решение, которое затемизменяется в ту или иную сторону. Таким образом получается хорошее разбиение,но не всегда самое оптимальное. Операторы рекомбинации и мутации позволяютполучить решения, сильно не похожее на исходное – таким образом осуществляетсяглобальный поиск.
/>
Рисунок 1.11 – Пример генетического алгоритма
1.4 Применение кластеризации
Кластерный анализ применяется в различных областях. Онполезен, когда нужно классифицировать большое количество информации, например,обзор многих опубликованных исследований, проводимых с помощью кластерногоанализа.
Наибольшее применение кластеризация первоначально получила втаких науках как биология, антропология, психология. Для решения экономическихзадач кластеризациядлительное время мало использовалась из-за специфики экономических данных иявлений. Так, в медицине используется кластеризация заболеваний, лечениязаболеваний или их симптомов, а также таксономия пациентов, препаратов и т.д. Вархеологии устанавливаются таксономии каменных сооружений и древних объектов ит.д. В менеджменте примером задачи кластеризации будет разбиение персонала на различныегруппы, классификацияпотребителей и поставщиков, выявление схожих производственных ситуаций, прикоторых возникает брак. В социологии задача кластеризации — разбиение респондентовна однородные группы. В маркетинговых исследованиях кластерный анализприменяется достаточно широко — как в теоретических исследованиях, так ипрактикующими маркетологами, решающими проблемы группировки различных объектов.При этом решаются вопросы о группах клиентов, продуктов и т.д.
Так, одной из наиболее важных задач при применениикластерного анализа в маркетинговых исследованиях является анализ поведенияпотребителя, а именно: группировка потребителей в однородные классы дляполучения максимально полного представления о поведении клиента из каждойгруппы и о факторах, влияющих на его поведение. Важной задачей, которую можетрешить кластерный анализ, является позиционирование, т.е. определение ниши, вкоторой следует позиционировать новый продукт, предлагаемый на рынке. Врезультате применения кластерного анализа строится карта, по которой можно определитьуровень конкуренции в различных сегментах рынка и соответствующиехарактеристики товара для возможности попадания в этот сегмент. С помощьюанализа такой карты возможно определение новых, незанятых ниш на рынке, вкоторых можно предлагать существующие товары или разрабатывать новые.
Кластерный анализ также может быть удобен, например,для анализа клиентов компании. Для этого все клиенты группируются в кластеры, и длякаждого кластеравырабатывается индивидуальная политика. Такой подход позволяет существенносократить объекты анализа, и, в то же время, индивидуально подойти к каждойгруппе клиентов.
Таким образом, кластеризация, во-первых, применятсядля анализа данных (упрощение работы с информацией, визуализация данных).Использование кластеризации упрощает работу с информацией, так как:
· достаточно работать с k представителями кластеров;
· легко найти «похожие» объекты – такой поиск применяется в ряде поисковыхдвижков;
· происходит автоматическое построение каталогов;
· наглядное представление кластеров позволяет понять структуру множестваобъектов в пространстве.
Во-вторых, для группировки и распознавания объектов.Для распознавания образов характерно:
· построение кластеров на основе большого набора учебных данных;
· присвоение каждому из кластеров соответствующей метки;
· ассоциирование каждого объекта, полученного на вход алгоритмараспознавания, с меткой соответствующего кластера.
Для группировки объектов характерно:
· сегментация изображений
· уменьшение количества информации
/>
Рисунок 1.12 – Примерсегментации изображения
В-третьих, для извлечения и поиска информации,построения удобных классификаторов.
Извлечение и поиск информации можно рассмотреть напримере книг в библиотеке. Это наиболее известная система не автоматическойклассификации – LCC (Library of Congress Classification):
· метка Q означает книги по науке;
· подкласс QA – книги по математике;
· метки с QA76 до QA76.8 – книги по теоретической информатике.
Проблемами такой классификация является то, что иногдаклассификация отстает от быстрого развития некоторых областей науки, а такжевозможность отнести каждую книгу только к одной категории. Однако в этом случаеприходит на помощь автоматическая кластеризация с нечетким разбиением нагруппы, что решает проблему одной категории, также новые кластера вырастаютодновременно с развитием той или иной области науки.
2. СЕТЬКОХОНЕНА
Сеть Кохонена — это одна из разновидностей нейронныхсетей, которые используют неконтролируемое обучение. При таком обученииобучающее множество состоит лишь из значений входных переменных, в процессеобучения нет сравнивания выходов нейронов с эталонными значениями. Можносказать, что такая сеть учится понимать структуру данных.
Идея сети Кохонена принадлежит финскому ученому ТойвоКохонену (1982 год). Основной принцип работы сетей — введение в правилообучения нейрона информации относительно его расположения.
В основе идеи сети Кохонена лежит аналогия сосвойствами человеческого мозга. Кора головного мозга человека представляетсобой плоский лист и свернута складками. Таким образом, можно сказать, что онаобладает определенными топологическими свойствами (участки, ответственные заблизкие части тела, примыкают друг к другу и все изображение человеческого телаотображается на эту двумерную поверхность). Во многих моделях ИНС решающую рольиграют связи между нейронами, определяемые весовыми коэффициентами иуказывающие место нейрона в сети. Однако в биологических системах, на пример,таких как мозг, соседние нейроны, получая аналогичные входные сигналы,реагируют на них сходным образом, т. е. группируются, образуя некоторыеобласти. Поскольку при обработке многомерного входного образа осуществляетсяего проецирование на область меньшей размерности с сохранением его топологии,часто подобные сети называют картами (self-organizing feature map). В такихсетях существенным является учет взаимного расположения нейронов одного слоя.
Сеть Кохонена (самоорганизующаяся карта) относится к самоорганизующимсясетям, которые при поступлении входных сигналов, в отличие от сетей,использующих обучение с учителем, не получают информацию о желаемом выходномсигнале. В связи с этим невозможно сформировать критерий настройки, основанныйна рассогласовании реальных и требуемых выходных сигналов ИНС, поэтому весовыепараметры сети корректируют, исходя из других соображений. Все предъявляемыевходные сигналы из заданного обучающего множества самоорганизующаяся сеть впроцессе обучения разделяет на классы, строя так называемые топологическиекарты.
2.1 Структура сети Кохонена
Сеть Кохонена использует следующую модель (рисунок2.1): сеть состоит из М нейронов, образующих прямоугольную решетку на плоскости— слой.
/>
Рисунок 2.1 – Модельсети Кохонена
К нейронам, расположенным в одном слое, представляющемсобой двумерную плоскость, подходят нервные волокна, по которым поступаетN-мерный входной сигнал. Каждый нейрон характеризуется своим положением в слоеи весовым коэффициентом. Положение нейронов, в свою очередь, характеризуетсянекоторой метрикой и определяется топологией слоя, при которой соседние нейроныво время обучения влияют друг на друга сильнее, чем расположенные дальше.Каждый нейрон образует взвешенную сумму входных сигналов с />, если синапсыускоряющие, и /> - если тормозящие. Наличие связеймежду нейронами приводит к тому, что при возбуждении одного из них можновычислить возбуждение остальных нейронов в слое, причем это возбуждение сувеличением расстояния от возбужденного нейрона уменьшается. Поэтому центрвозникающей реакции слоя на полученное раздражение соответствует местоположениювозбужденного нейрона. Изменение входного обучающего сигнала приводит кмаксимальному возбуждению другого нейрона и соответственно — к другой реакциислоя. Сеть Кохонена может рассматриваться как дальнейшее развитие LVQ (Learning Vector Quantization). Отличие их состоит вспособах обучения.2.2Обучение сети Кохонена
Сеть Кохонена, в отличие от многослойной нейроннойсети, очень проста; она представляет собой два слоя: входной и выходной.Элементы карты располагаются в некотором пространстве, как правило, двумерном.
/>Сеть Кохонена обучается методомпоследовательных приближений. В процессе обучения таких сетей на входы подаютсяданные, но сеть при этом подстраивается не под эталонное значение выхода, а подзакономерности во входных данных. Начинается обучение с выбранного случайнымобразом выходного расположения центров.
В процессе последовательной подачи на вход сетиобучающих примеров определяется наиболее схожий нейрон (тот, у которогоскалярное произведение весов и поданного на вход вектора минимально). Этотнейрон объявляется победителем и является центром при подстройке весов усоседних нейронов. Такое правило обучения предполагает«соревновательное» обучение с учетом расстояния нейронов от«нейрона-победителя».
Обучение при этом заключается не в минимизации ошибки,а в подстройке весов (внутренних параметров нейронной сети) для наибольшегосовпадения с входными данными.
Основной итерационный алгоритм Кохоненапоследовательно проходит ряд эпох, на каждой из которых обрабатывается одинпример из обучающей выборки. Входные сигналы последовательно предъявляютсясети, при этом желаемые выходные сигналы не определяются. После предъявлениядостаточного числа входных векторов синаптические веса сети становятся способныопределить кластеры. Веса организуются так, что топологически близкие узлычувствительны к похожим входным сигналам.
В результате работы алгоритма центр кластера устанавливаетсяв определенной позиции, удовлетворительным образом кластеризующей примеры, длякоторых данный нейрон является «победителем». В результате обучениясети необходимо определить меру соседства нейронов, т.е. окрестность нейрона-победителя, котораяпредставляет собой несколько нейронов, которые окружают нейрон-победитель.
Сначала к окрестности принадлежит большое число нейронов, далее ееразмер постепенно уменьшается. Сеть формирует топологическую структуру, вкоторой похожие примеры образуют группы примеров, близко находящиеся натопологической карте.
Рассмотрим это более подробнее. Кохонен существенноупростил решение задачи, выделяя из всех нейронов слоя лишь один с-й нейрон,для которого взвешенная сумма входных сигналов максимальна:
/>. (2.1)
Отметим, что весьма полезной операцией предварительнойоб работки входных векторов является их нормализация:
/> (2.2)
превращающая векторы входных сигналов в единичные стем же направлением.
/> (2.3)
В этом случае вследствие того, что сумма весов каждогонейрона одного слоя />для всех нейронов этого слояодинакова и />,условие (2.1) эквивалентно условию:
/>. (2.4)
Таким образом, будет активирован только тот нейрон,вектор весов которого w наиболее близок к входному вектору х. А так как передначалом обучения неизвестно, какой именно нейрон будет активироваться припредъявлении сети конкретного входного вектора, сеть обучается без учителя, т.е. самообучается. Вводя потенциальную функцию — функцию расстояния /> («соседства»)между i-м и j-м нейронами с местоположениями /> и /> соответственно, монотонноубывающую с увеличением расстояния между этими нейронами, Кохонен предложилследующий алгоритм коррекции весов:
/>, (2.5)
где /> — изменяющийся во временикоэффициент усиления (обычно выбирают /> на первой итерации, постепенноуменьшая в процессе обучения до нуля); /> — монотонно убывающая функция.
/>, (2.6)
Где /> и /> - векторы, определяющие положениенейронов i и j в решетке. При принятой метрике /> функция /> с ростом времени /> стремится кнулю. На практике вместо параметра времени /> используют параметр расстояния />, задающийвеличину области «соседства» и уменьшающийся с течением времени до нуля. Выборфункции /> такжевлияет на величины весов всех нейронов в слое. Очевидно, что длянейрона-победителя />:
/>. (2.7)
На рисунке 2.2 показан пример изменения двумерных весов карты />, образующейцепь. При появлении входного образа /> наиболее сильно изменяетсявесовой вектор нейрона-победителя 5, менее сильно — веса расположенных рядом сним нейронов 3, 4, 6, 7. А так как нейроны 1, 2, 8, 9 лежат вне области«соседства», их весовые коэффициенты не изменяются.
/>
Рисунок – 2.2 Изменение весов карты Кохонена
Таким образом, алгоритм обучения сети Кохонена можетбыть описан так:
1. Инициализация
Весовым коэффициентам всех нейронов присваиваютсямалые случайные значения и осуществляется их нормализация. Выбираетсясоответствующая потенциальная функция /> и назначается начальное значениекоэффициента усиления />.
2. Выбор обучающего сигнала
Из всего множества векторов обучающих входных сигналовв соответствии с функцией распределения /> выбирается один вектор />, которыйпредставляет «сенсорный сигнал», предъявляемый сети.
3. Анализ отклика (выбор нейрона)
По формуле (2.1) определяется активированный нейрон.
4. Процесс обучения
В соответствии с алгоритмом (2.5) изменяются весовыекоэффициенты активированного и соседних с ним нейронов до тех пор, пока небудет получено требуемое значение критерия качества обучения или не будетпредъявлено заданное число обучающих входных векторов. Окончательное значениевесовых коэффициентов совпадает с нормализованными векторами входов.
Поскольку сеть Кохонена осуществляет проецирование N-мерногопространства образов на М-мерную сеть, анализ сходимости алгоритма обученияпредставляет собой довольно сложную задачу.
Если бы с каждым нейроном слоя ассоциировался одинвходной вектор, то вес любого нейрона слоя Кохонена мог бы быть обучен спомощью одного вычисления, так как вес нейрона-победителя корректировался бы с /> (всоответствии с (2.5) для одномерного случая вес сразу бы попадал в центротрезка [а, b]). Однако обычно обучающее множество включаетмножество сходных между собой входных векторов, и сеть Кохонена должна бытьобучена активировать один и тот же нейрон для каждого из них. Это достигаетсяусреднением входных векторов путем уменьшения величины, а не при предъявлениикаждого последующего входного сигнала. Таким образом, веса, ассоциированные снейроном, усреднятся и примут значение вблизи «центра» входных сигналов, длякоторых данный нейрон является «победителем».
2.3 Выбор функции «соседства»
На рисунке 2.3 показан слой нейронов снейроном-победителем, отмеченным черным кружком. Поскольку веса всехзатемненных нейронов изменяются по-разному, в зависимости от их удаленности отнейрона-победителя, наиболее простым является выбор в качестве /> некоторой величины,равной единице при />, меньшей единицы для затемненныхнейронов, т. е. нейронов, лежащих в непосредственной близости отактивированного нейрона, и нулю для остальных, отмеченных светлыми кружками.
/>
Рисунок 2.3 – Слой нейронов Кохонена
На практике же в качестве /> выбирают функции, использующиеевклидову метрику:
/>, (2.8)
где />, /> — координаты i-гo и j-гонейронов.
К числу наиболее широко используемых потенциальныхфункций относятся:
а) колоколообразная функция Гаусса
/>, (2.9)
где /> — дисперсия отклонения;
/>
Рисунок 2.4 – Колоколообразная функция Гаусса
б) функция «мексиканская шляпа»
/>, (2.10)
/>
Рисунок 2.5 – Функция «мексиканская шляпа»
в) косинусоидная функция
/> (2.11)
/>
Рисунок 2.6 – Косинусоидная функция
г) конусообразная функция
/> (2.12)
/>
Рисунок 2.7 – Конусообразная функция
д) цилиндрическая функция
/> (2.13)
/>
Рисунок 2.8 – Цилиндрическая функция
2.4 Карта Кохонена
Как правило, сначала строят довольно грубую карту(модель разбиения), постепенно уточняя ее в процессе обучения. Для этогонеобходимо медленно изменять не только параметр />, но и, например, параметр /> в формуле(2.9). Одним из эффективных способов изменения этих параметров являетсяследующий:
/>, (2.14)
/>, (2.15)
где />; />; />; /> - параметры, определяющиекрутизну функции />; /> — задаваемое число итераций.
На рисунке 2.9 показан процесс построения картыКохонена, представляющей собой двумерную решетку, образованную путем соединениясоседних нейронов, находящихся в узлах решетки. Исходя из начальных условий ииспользуя алгоритм обучения (2.5), сеть по мере увеличения числа обучающихвходных образов развивается и приобретает вид решетки. Внизу каждого рисункапоставлено количество образов, на основании которых получена соответствующаясеть.
/>
Рисунок 2.9 – Построение карты Кохонена
Уникальность метода самоорганизующихся карт состоит впреобразовании n-мерного пространства в двухмерное. Применение двухмерных сетоксвязано с тем, что существует проблема отображения пространственных структурбольшей размерности. Имея такое представление данных, можно визуальноопределить наличие или отсутствие взаимосвязи во входных данных.
Нейроны карты Кохонена располагают в виде двухмернойматрицы, раскрашивают эту матрицу в зависимости от анализируемых параметровнейронов.
На рисунке 2.10 приведен пример карты Кохонена.
/>/>
Рисунок 2.10 – Примеркарты Кохонена
На рисунке 2.11 приведена раскраска карты, а точнее,ее i-го признака, в трехмерном представлении. Как мы видим, темно-синие участкина карте соответствуют наименьшим значениям показателя, красные — самымвысоким.
/>/>
Рисунок 2.11 –Раскраска i-го признака в трехмерном пространстве
Теперь, возвращаясь к рисунку 2.10, мы можем сказать,какие объекты имеют наибольшие значения рассматриваемого показателя (группаобъектов, обозначенная красным цветом), а какие — наименьшие значения (группаобъектов, обозначенная синим цветом).
Таким образом, карты Кохонена можно отображать:
· в двухмерном виде, тогда карта раскрашивается в соответствии с уровнемвыхода нейрона;
· в трехмерном виде.
В результате работы алгоритма получаем такие карты:
а) Карта входовнейронов.
Веса нейронов подстраиваются под значения входныхпеременных и отображают их внутреннюю структуру. Для каждого входа рисуетсясвоя карта, раскрашенная в соответствии со значением конкретного веса нейрона.При анализе данных используют несколько карт входов. На одной из карт выделяютобласть определенного цвета — это означает, что соответствующие входные примерыимеют приблизительно одинаковое значение соответствующего входа. Цветовоераспределение нейронов из этой области анализируется на других картах дляопределения схожих или отличительных характеристик.
б) Картавыходов нейронов.
На картувыходов нейронов проецируется взаимное расположение исследуемыхвходных данных. Нейроны с одинаковыми значениями выходов образуют кластеры — замкнутые области на карте, которые включают нейроны с одинаковыми значениямивыходов.
в) Специальные карты.
Это карта кластеров, матрица расстояний, матрицаплотности попадания и другие карты, которые характеризуют кластеры, полученныев результате обучения сети Кохонена.
Координаты каждой карты определяют положение одногонейрона. Так, координаты [15:30] определяют нейрон, который находится напересечении 15-го столбца с 30-м рядом в матрице нейронов. Важно понимать, чтомежду всеми рассмотренными картами существует взаимосвязь — все они являютсяразными раскрасками одних и тех же нейронов. Каждый пример из обучающей выборкиимеет одно и то же расположение на всех картах.
Полученную карту можно использовать как средствовизуализации при анализе данных. В результате обучения карта Кохоненаклассифицирует входные примеры на кластеры (группы схожих примеров) и визуальноотображает многомерные входные данные на плоскости нейронов.
При реализации сети Кохонена возникают следующиепроблемы:
1. Выбор коэффициента обучения />
Этот выбор влияет как на скорость обучения, так и наустойчивость получаемого решения. Очевидно, что процесс обучения ускоряется(скорость сходимости алгоритма обучения увеличивается) при выборе /> близким кединице. Однако в этом случае предъявление сети различных входных векторов,относящихся к одному классу, приведет к изменениям соответствующего вектора весовыхкоэффициентов. Напротив, при />0 скорость обучения будетмедленной, однако вектор весовых коэффициентов, достигнув центра класса, приподаче на вход сети различных сигналов, относящихся к одному классу, будетоставаться вблизи этого центра. Поэтому одним из путей ускорения процессаобучения при одновременном обеспечении получения устойчивого решения являетсявыбор переменного /> с /> 1 на начальных этапах обучения и /> 0 — назаключительных. К сожалению, такой подход не применим в тех случаях, когда сетьдолжна непрерывно подстраиваться к предъявляемым ей новым входным сигналам.
2. Рандомизация весов
Рандомизация весов слоя Кохонена может породитьсерьезные проблемы при обучении, так как в результате этой операции весовыевекторы распределяются равномерно по поверхности гиперсферы. Как правило,входные векторы распределены неравномерно и группируются на относительно малойчасти поверхности гиперсферы. Поэтому большинство весовых векторов окажутсянастолько удаленными от любого входного вектора, что не будут активированы истанут бесполезными. Более того, оставшихся активированных нейронов можетоказаться слишком мало, чтобы разбить близко расположенные входные векторы накластеры.
3. Выбор начальных значений векторов весовыхкоэффициентов и нейронов.
Если начальные значения выбраны неудачно, т. е.расположенными далеко от предъявляемых входных векторов, то нейрон не окажетсяпобедителем ни при каких входных сигналах, а, следовательно, не обучится.
На рисунке 2.12 показан случай, когда начальноерасположение весов /> и /> привело к тому, что послеобучения сети все предъявляемые образы классифицируют нейроны с весами />, />, и />. Веса же /> и /> не изменилисьи могут быть удалены из сети.
/>
а б
Рисунок 2.12 – Начальное (а) и конечное (б) положениявекторов весов
4. Выбор параметра расстояния />
Если сначала параметр /> выбран малым или очень быстроуменьшается, то далеко расположенные друг от друга нейроны не могут влиять другна друга. Хотя две части в такой карте настраиваются правильно, общая картабудет иметь топологический дефект (рисунок 2.13).
5. Количество нейронов в слое
Число нейронов в слое Кохонена должно соответствоватьчислу классов входных сигналов. Это может быть недопустимо в тех задачах, когдачисло классов заранее известно.
/>
Рисунок 2.13 – Топологический дефект карты
6. Классы входных сигналов
Слой Кохонена может формировать только классы,представляющие собой выпуклые области входного пространства.2.5Задачи, решаемые при помощи карт Кохонена
Самоорганизующиесякарты могутиспользоваться для решения задач моделирования, прогнозирования, кластеризации,поиска закономерностей в больших массивах данных, выявления наборов независимыхпризнаков и сжатии информации.
Наиболее распространенное применение сетей Кохонена — решение задачи классификации без учителя, т.е. кластеризации.
Напомним, что при такой постановке задачи нам даннабор объектов, каждому из которых сопоставлена строка таблицы (вектор значенийпризнаков). Требуется разбить исходное множество на классы, т.е. для каждогообъекта найти класс, к которому он принадлежит.
В результате получения новой информации о классахвозможна коррекция существующих правил классификации объектов.
Самым распространенным применением карт Кохоненаявляется:
· разведочный анализ данных
· обнаружение новых явлений
В первом случае сеть Кохонена способна распознаватькластеры в данных, а также устанавливать близость классов. Таким образом,пользователь может улучшить свое понимание структуры данных, чтобы затемуточнить нейросетевую модель. Если в данных распознаны классы, то их можнообозначить, после чего сеть сможет решать задачи классификации. Сети Кохоненаможно использовать и в тех задачах классификации, где классы уже заданы, — тогда преимущество будет в том, что сеть сможет выявить сходство междуразличными классами.
Во втором случае сеть Кохонена распознает кластеры вобучающих данных и относит все данные к тем или иным кластерам. Если послеэтого сеть встретится с набором данных, непохожим ни на один из известныхобразцов, то она не сможет классифицировать такой набор и тем самым выявит егоновизну.
кластеризация нейронный сеть кохонен
3. МОДЕЛИРОВАНИЕ СЕТИ КЛАСТЕРИЗАЦИИ ДАННЫХ В MATLAB NEURAL NETWORK TOOLBOX
Программное обеспечение, позволяющее работать скартами Кохонена, сейчас представлено множеством инструментов. Это могут бытькак инструменты, включающие только реализацию метода самоорганизующихся карт, так инейропакеты с целым набором структур нейронных сетей, среди которых — и картыКохонена; также данный метод реализован в некоторых универсальных инструментаханализа данных.
К инструментарию, включающему реализацию метода картКохонена, относятся MATLAB NeuralNetwork Toolbox, SoMine, Statistica, NeuroShell, NeuroScalp, Deductor имножество других.
3.1 Самоорганизующиеся нейронные сети в MATLAB NNT
Для создания самоорганизующихся нейронных сетей,являющихся слоем или картой Кохонена, предназначены М-функции newc и newsomcooтветственно.
По команде help selforg можно получить следующуюинформацию об М-функциях, входящих в состав ППП Neural Network Toolbox иотносящихся к построению сетей Кохонена (таблица 3.1):
Таблица 3.1
М-функции, входящие в состав ППП Neural Network ToolboxSelf-organizing networks Самоорганизующиеся сети New networks Формирование сети
newc
newsom
Создание слоя Кохонена
Создание карты Кохонена Using networks Работа с сетью
sim
init
adapt
train
Моделирование
Инициализация
Адаптация
Обучение Weight functions Функции расстояния и взвешивания negdist Отрицательное евклидово расстояние Net input functons Функции накопления netsum Сумма взвешенных входов Transfer functions Функции активации compet Конкурирующая функция активации
Topology
functions Функции описания топологии сети
gridtop
hextop
randtop
Прямоугольная сетка
Гексагональная сетка
Сетка со случайно распределенными узлами Distance functions Функции расстояния
dist
boxdist
mandist
linkdist
Евклидово расстояние
Расстояние максимального координатного смещения
Расстояние суммарного координатного смешения Расстояние связи Initialization functions Функции инициализации сети
initlay
initwb
initcon
midpoint
Послойная инициализация
Инициализация весов и смещений
Инициализация смещений с учетом чувствительности нейронов
Инициализация весов по правилу средней точки Learning functions функции настройки параметров
learnk
learncon
learnsom Правило настройки весов для слоя Кохонена Правило настройки смещений для слоя Кохонена Правило настройки весов карты Кохонена Adapt functions Функции адаптации adaptwb Адаптация весов и смещений Training functions Функции обучения trainwb1 Повекторное обучение весов и смещений Demonstrations Демонстрационные примеры
democ1
demosm1
demosm2
Настройка слоя Кохонена
Одномерная карта Кохонена
Двумерная карта Кохонена
3.1.1 Архитектура сети
Промоделированная архитектура слоя Кохонена в MATLAB NNT показана на рисунке 3.1.
/>
Рисунок 3.1 – Архитектура слоя Кохонена
Нетрудно убедиться, что это слой конкурирующего типа,поскольку в нем применена конкурирующая функция активации. Кроме того,архитектура этого слоя очень напоминает архитектуру скрытого слоя радиальнойбазисной сети. Здесь использован блок ndist для вычисления отрицательногоевклидова расстояния между вектором входа /> и строками матрицы весов />. Вход функцииактивации /> -это результат суммирования вычисленного расстояния с вектором смещения />. Если всесмещения нулевые, максимальное значение /> не может превышать 0. Нулевоезначение /> возможнотолько, когда вектор входа /> оказывается равным вектору весаодного из нейронов. Если смещения отличны от 0, то возможны и положительныезначения для элементов вектора />.
Конкурирующая функция активации анализирует значенияэлементов вектора /> и формирует выходы нейронов,равные 0 для всех нейронов, кроме одного нейрона-победителя, имеющего на входемаксимальное значение. Таким образом, вектор выхода слоя /> имеет единственныйэлемент, равный 1, который соответствует нейрону-победителю, а остальные равны0. Такая активационная характеристика может быть описана следующим образом;
/> (3.1)
Заметим, что эта активационная характеристикаустанавливается не на отдельный нейрон, а на слой. Поэтому такая активационнаяхарактеристика и получила название конкурирующей. Номер активного нейрона /> определяет тугруппу (кластер), к которой наиболее близок входной вектор.
3.1.2 Создание сети
Для формирования слоя Кохонена предназначена М-функцияnewc. Покажем, как она работает, на простом примере. Предположим, что заданмассив из четырех двухэлементных векторов, которые надо разделить на 2 класса:
р = [.1 .8 .1 .9; .2 .9 .1 .8]
р =
0.1000 0.8000 0.1000 0.9000
0.2000 0.9000 0.1000 0.8000.
В этом примере нетрудно видеть, что 2 векторарасположены вблизи точки (0,0) и 2 вектора — вблизи точки (1,1). Сформируемслой Кохонена с двумя нейронами для анализа двухэлементных векторов входа сдиапазоном значений от 0 до 1:
net = newc([0 1; 0 1],2).
Первый аргумент указывает диапазон входных значений,второй определяет количество нейронов в слое. Начальные значения элементовматрицы весов задаются как среднее максимального и минимального значений, т. е.в центре интервала входных значений; это реализуется по умолчанию с помощьюМ-функции midpoint при создании сети. Убедимся, что это действительно так:
wts = net.IW{l,l}
wts =
0.5000 0.5000
0.5000 0.5000.
Определим характеристики слоя Кохонена:
net.layers{1}
ans =
dimensions: 2
distanсeFcn: 'dist'
distances:[2x2 double]
initFcn:' initwb '
netinputFcn:'netsum'
positions:[0 1]
size:2
topologyFcn:'hextop'
transferFcn:'compet'
userdata:[1x1 struct].
Из этого описания следует, что сеть использует функциюевклидова расстояния dist, функцию инициализации initwb, функцию обработкивходов netsum, функцию активации compet и функцию описания топологии hextop.
Характеристики смещений следующие:
net.biases{1}
ans =
initFcn:'initcon'
learn:1
learnFcn:'learncon'
learnParam:[1x1 struct]
size:2
userdata:[1x1 struct].
Смещения задаются функцией initcon и дляинициализированной сети равны
net.b{l}
ans =
5.4366
5.4366.
Функцией настройки смещений является функция lеаrcon,обеспечивающая настройку с учетом параметра активности нейронов.
Элементы структурной схемы слоя Кохонена показаны нарисунке 3.2, а-б и могут быть получены с помощью оператора:
gensim(net)
Они наглядно поясняют архитектуру и функции,используемые при построении слоя Кохонена.
Теперь, когда сформирована самоорганизующаясянейронная сеть, требуется обучить сеть решению задачи кластеризации данных.Напомним, что каждый нейрон блока compet конкурирует за право ответить навектор входа />. Если все смещения равны 0, тонейрон с вектором веса, самым близким к вектору входа />, выигрывает конкуренцию ивозвращает на выходе значение 1; все другие нейроны возвращают значение 0.
/> />
а б
Рисунок 3.2 – Элементы структурной схемы слоя Кохонена
3.1.3 Правило обучения слоя Кохонена
Правило обучения слоя Кохонена, называемое такжеправилом Кохонена, заключается в том, чтобы настроить нужным образом элементыматрицы весов. Предположим, что нейрон /> победил при подаче входа /> на шагесамообучения />, тогда строка /> матрицы весовкорректируется в соответствии с правилом Кохонена следующим образом:
/>. (3.2)
Правило Кохонена представляет собой рекуррентноесоотношение, которое обеспечивает коррекцию строки /> матрицы весов добавлениемвзвешенной разности вектора входа и значения строки на предыдущем шаге. Такимобразом, вектор веса, наиболее близкий к вектору входа, модифицируется так,чтобы расстояние между ними стало еще меньше. Результат такого обучения будетзаключаться в том, что победивший нейрон, вероятно, выиграет конкуренцию и втом случае, когда будет представлен новый входной вектор, близкий кпредыдущему, и его победа менее вероятна, когда будет представлен вектор,существенно отличающийся от предыдущего. Когда на вход сети поступает всебольшее и большее число векторов, нейрон, являющийся ближайшим, сновакорректирует свой весовой вектор. В конечном счете, если в слое имеетсядостаточное количество нейронов, то каждая группа близких векторов окажетсясвязанной с одним из нейронов слоем. В этом и заключается свойствосамоорганизации слоя Кохонена.
Настройка параметров сети по правилу Кохоненареализована в виде М-функции learnk.
3.1.4 Правило настройки смещений
Одно из ограничений всякого конкурирующего слоясостоит в том, что некоторые нейроны оказываются незадействованными. Этопроявляется в том, что нейроны, имеющие начальные весовые векторы, значительноудаленные от векторов входа, никогда не выигрывают конкуренции, независимо оттого как долго продолжается обучение. В результате оказывается, что такиевекторы не используются при обучении и соответствующие нейроны никогда неоказываются победителями. Такие нейроны-неудачники называются«мертвыми» нейронами, поскольку они не выполняют никакой полезнойфункции. Чтобы исключить такую ситуацию и сделать нейроны чувствительными кпоступающим на вход векторам, используются смещения, которые позволяют нейронустать конкурентным с нейронами-победителями. Этому способствует положительноесмещение, которое добавляется к отрицательному расстоянию удаленного нейрона.
Соответствующее правило настройки, учитывающеенечувствительность мертвых нейронов, реализовано в виде М-функции learncon изаключается в следующем — в начале процедуры настройки всем нейронам конкурирующегослоя присваивается одинаковый параметр активности:
/>, (3.3)
где /> — количество нейроновконкурирующего слоя, равное числу кластеров. В процессе настройки М-функцияlearncon корректирует этот параметр таким образом, чтобы его значения дляактивных нейронов становились больше, а для неактивных нейронов меньше.Соответствующая формула для вектора приращений параметров активности выглядитследующим образом:
/>, (3.4)
где /> — параметр скорости настройки; />-вектор,элемент /> которогоравен 1, а остальные — 0.
Нетрудно убедиться, что для всех нейронов, кроменейрона-победителя, приращения отрицательны. Поскольку параметры активностисвязаны со смещениями соотношением (в обозначениях системы MATLAB):
/>, (3.5)
то из этого следует, что смещение длянейрона-победителя уменьшится, а смещения для остальных нейронов немногоувеличатся.
М-функция learnсon использует следующую формулу длярасчета приращений вектора смещений:
/>. (3.6)
Параметр скорости настройки /> по умолчанию равен 0.001, и еговеличина обычно на порядок меньше соответствующего значения для М-функцииlearnk. Увеличение смещений для неактивных нейронов позволяет расширитьдиапазон покрытия входных значений, и неактивный нейрон начинает формироватькластер. В конечном счете он может начать притягивать новые входные векторы — это дает два преимущества. Первое преимущество, если нейрон не выигрываетконкуренции, потому что его вектор весов существенно отличается от векторов,поступающих на вход сети, то его смещение по мере обучения становитсядостаточно большим и он становится конкурентоспособным. Когда это происходит,его вектор весов начинает приближаться к некоторой группе векторов входа. Кактолько нейрон начинает побеждать, его смещение начинает уменьшаться. Такимобразом, задача активизации «мертвых» нейронов оказывается решенной.Второе преимущество, связанное с настройкой смещений, состоит в том, что они позволяютвыровнять значения параметра активности и обеспечить притяжение приблизительноодинакового количества векторов входа. Таким образом, если один из кластеровпритягивает большее число векторов входа, чем другой, то более заполненнаяобласть притянет дополнительное количество нейронов и будет поделена на меньшиепо размерам кластеры.
3.1.5 Обучение сети
Реализуем 10 циклов обучения. Для этого можноиспользовать функции train или adapt:
net.trainParam.epochs = 10
net = train(net,p)
net.adaptParam.passes = 10
[net,y,e] = adapt(net,mat2cell(p)).
Заметим, что для сетей с конкурирующим слоем поумолчанию используется обучающая функция trainwbl, которая на каждом циклеобучения случайно выбирает входной вектор и предъявляет его сети; после этогопроизводится коррекция весов и смещений.
Выполним моделирование сети после обучения:
а =sim(net,p)
ас =vec2ind(a)
ас = 2 1 2 1.
Видим, что сеть обучена классификации векторов входана 2 кластера: первый расположен в окрестности вектора (0,0), второй — в окрестностивектора (1,1). Результирующие веса и смещения равны:
wtsl = net.IW{l,l}
b1 = net.b{l}
wts1 =
0.58383 0.58307
0.41712 0.42789
b1=
5.4152
5.4581.
Заметим, что первая строка весовой матрицыдействительно близка к вектору (1,1), в то время как вторая строка близка кначалу координат. Таким образом, сформированная сеть обучена классификациивходов. В процессе обучения каждый нейрон в слое, весовой вектор которогоблизок к группе векторов входа, становится определяющим для этой группывекторов. В конечном счете, если имеется достаточное число нейронов, каждаягруппа векторов входа будет иметь нейрон, который выводит 1, когда представленвектор этой группы, и 0 в противном случае, или, иными словами, формируетсякластер. Таким образом, слой Кохонена действительно решает задачу кластеризациивекторов входа.
3.1.6 Моделирование кластеризации данных
Функционирование слоя Кохонена можно пояснить болеенаглядно, используя графику системы MATLAB. Рассмотрим 48 случайных векторов наплоскости, формирующих 8 кластеров, группирующихся около своих центров. Награфике, приведенном на рисунке 3.3, показано 48 двухэлементных векторов входа.
Сформируем координаты случайных точек и построим планих расположения на плоскости:
с = 8
n = 6 % Число кластеров, векторов в кластере
d = 0.5 % Среднеквадратичное отклонение от центракластера
х = [-10 10;-5 5] % Диапазон входных значений
[r,q] = size(x); minv = min(x1)1; maxv = mах(х1)1
v = rand(r, e).С{maxv — minv) *ones(l,c) + xninv*ones(l,c) )t = c*n % Число точек
v= [v v v v v]; v=v+randn{r,t)*d % Координаты точек
Р = v
plot(P(l,:),P(2,:),'+k') % (рисунок 3.3)
title('Векторывхода'), xlabel('Р(1,:)'), ylabel('P(2,:)').
Векторы входа, показанные на рисунке 3.3, относятся кразличным классам.
/>
Рисунок 3.3 – Двухэлементные векторы входа
Применим конкурирующую сеть из восьми нейронов длятого, чтобы распределить их по классам:
net = newc([-2 12;-1 6], 8 ,0.1)
w0 =net.IW{l}
b0 = net.b{l}
c0 = exp(l)./b0.
Начальные значения весов, смещений и параметровактивности нейронов представлены ниже:
w0 =b0 =с0 =
0.50.2521.7460.125
0.50.2521,7460.125
0.50.2521.7460.125
0-50.2521.7460.125
0.50.2521.7460.125
0.50.2521.7460.125
0.50.2521.7460.125
0.50.2521.7460.125.
После обучения в течение 500 циклов получим:
net.trainParam.epochs = 500
net = train(net,P)
w = net.IW{l} bn = net.b{l}
cn = exp(1)./bn
wn=bn=cn=
6.2184 2.423922.1370,123
1.3277 0.9470121.7180.125
0.31139 0.4093521.1920.128
3.543 4.584521.4720.127
3.4617 2.8S9621.9570.124
4 3171 1.427821.1850.128
6.7065 0.4369623.0060.118
0.97S17 0.1724221.420.127.
Как следует из приведенных таблиц, центрыкластеризации распределились по восьми областям, показанным на рисунке 3.4, а;смещения отклонились в обе стороны от исходного значения 21.746 также, как ипараметры активности нейронов, показанные на рисунке 3.4, б.
/>
Рисунок 3.4 – Полученные центры кластеризации
Рассмотренная самонастраивающаяся сеть Кохоненаявляется типичным примером сети, которая реализует процедуру обучения безучителя.
3.2 Карта Кохонена в MATLABNNT
Самоорганизующаяся сеть в виде карты Кохоненапредназначена для решения задач кластеризации входных векторов. В отличие отслоя Коконена карта Кохонена поддерживает такое топологическое свойство, когдаблизким кластерам входных векторов соответствуют близко расположенные нейроны.
Первоначальная топология размещения нейронов в слоеКохонена задается М-функциями gridtop, hextop или randtop, что соответствуетразмещению нейронов в узлах либо прямоугольной, либо гексагональной сетки, либов узлах сетки со случайной топологией. Расстояния между нейронами вычисляются спомощью специальных функций вычисления расстояний dist, boxdist, linkdist иmandist.
Карта Кохонена для определения нейрона-победителяиспользует ту же процедуру, какая применяется и в слое Кохонена. Однако накарте Кохонена одновременно изменяются весовые коэффициенты соседних нейронов всоответствии со следующим соотношением:
/>. (3.7)
В этом случае окрестность нейрона-победителя включаетвсе нейроны, которые находятся в пределах некоторого радиуса />:
/>. (3.8)
Чтобы пояснить понятие окрестности нейрона, обратимсяк рисунку 3.5.
/>
Рисунок 3.5 – Окрестности нейрона
Левая часть рисунка соответствует окрестности радиуса1 для нейрона-победителя с номером 13; правая часть — окрестности радиуса 2 длятого же нейрона. Описания этих окрестностей выглядят следующим образом:
/>
Заметим, что топология карты расположения нейронов необязательно должна быть двумерной. Это могут быть и одномерные и трехмерныекарты, и даже карты больших размерностей. В случае одномерной карты Кохонена,когда нейроны расположены вдоль линии, каждый нейрон будет иметь только двухсоседей в пределах радиуса 1 или единственного соседа, если нейрон расположенна конце линии. Расстояния между нейронами можно определять различнымиспособами, используя прямоугольные или гексагональные сетки, однако это никакне влияет на характеристики сети, связанные с классификацией входных векторов.
3.2.1 Топология карты
Как уже отмечалось выше, можно задать различныетопологии для карты расположения нейронов, используя М-функции gridtop, hextop,randtop.
Рассмотрим простейшую прямоугольную сетку размера 2x3для размещения шести нейронов, которая может быть сформирована с помощьюфункции gridtop:
pos = gridtop(2,3)
pos =
0 1 01 0 1
0 0 1 1 2 2
plotsom(pos) % (рисунок 3.6).
Соответствующая сетка показана на рисунке 3.6. Меткиposition(1, i) и position(2,i) вдоль координатных осей генерируются функциейplotsom и задают позиции расположения нейронов по первой, второй и т. д.размерностям карты.
/>
Рисунок 3.6 – Прямоугольная сетка
Здесь нейрон 1 расположен в точке с координатами(0,0), нейрон 2 — в точке (1,0), нейрон 3 — в точке (0,1) и т. д. Заметим, что,если применить команду gridtop, переставив аргументы местами, получим иноеразмещение нейронов;
pos=gridtop(3,2)pos =
0 1 2 0 1 2
0 0 0 1 1 1.
Гексагональную сетку можно сформировать с помощьюфункции hextop:
pos = hextop(2,3)
pos =
0 1.0000 0.5000 1.5000 0 1.0000
0 0 0.8660 0.8660 1.7321 1.7321.
plotsom (pos) % (рисунок 3.7).
/>
Рисунок 3.7 – Гексагональная сетка
Заметим, что М-функция hextop используется поумолчанию при создании карт Кохонена при применении функции newsom.
Сетка со случайным расположением узлов может бытьсоздана с помощью функции randtop:
pos = randtop(2,3)
pos =
0.061787 0.64701 0.40855 0.94383 0 0.65113
0 0.12233 0.90438 0.54745 1.4015 1.5682
plotsom(pos) % (рисунок 3.8).
/>
Рисунок 3.8 – Сетка со случайным расположением узлов
3.2.2 Функции для расчета расстояний
В ППП NNT используется 4 функции для расчета расстояниймежду узлами сетки.
Функция dist вычисляет евклидово расстояние междунейронами, размещенными в узлах сетки, в соответствии с формулой:
/>, (3.9)
где />, /> - векторы положения нейронов сномерами i и j.
Обратимся к прямоугольной сетке из шести нейронов(рисунок 3.6) и вычислим соответствующий массив расстояний:
pos = gridtop(2,3)
d = disе(pos)
d =
0 1 1 1.4142 2 2.2361
1 0 1.4142 1 2.2361 2
1 1.4142 0 1 1 1.4142
1.4142 1 1 0 1.4142 1
2 2.2361 1 1.4142 0 1
2.2361 2 1.4142 1 1 0.
Этот массив размера 6х6 описывает расстояния междунейронами и содержит на диагонали нули, поскольку они определяют расстояниенейрона до самого себя, а затем, двигаясь вдоль строки, до второго, третьего ит. д.
На рисунке 3.9 показано расположение нейронов в узлахпрямоугольной сетки. Введем понятие окрестности для прямоугольной сетки. В этомслучае окрестность размера 1, или просто окрестность 1, включает базовый нейрони его непосредственных соседей; окрестность 2 включает нейроны из окрестности 1и их соседей.
/>
Рисунок 3.9 – Расположение нейронов в узлахпрямоугольной сетки
Размер, а соответственно и номер окрестности,определяется максимальным значением координаты смещения нейрона от базового.Вводимое таким способом расстояние между нейронами называется расстояниеммаксимального координатного смещения и может быть вычислено по формуле:
/>, (3.10)
где />, /> - векторы положения нейронов сномерами i и j.
Для вычисления этого расстояния в ППП NNTпредназначена М-функция boxdist. Для конфигурации нейронов, показанной нарисунке 3.6, эти расстояния равны:
роs = gridtop(2,3)
d = boxdist(pos)
d=
0 1 1 1 2 2
1 0 1 1 2 2
1 1 0 1 1 1
1 1 1 0 1 1
2 2 1 1 0 1
2 2 1 1 1 0.
Расстояние максимального координатного смещения междубазовым нейроном 1 и нейронами 2, 3 и 4 равно 1, поскольку они находятся вокрестности 1, а расстояние между базовым нейроном и нейронами 5 и 6 равно 2, иони находятся в окрестности 2. Расстояние максимального координатного смещенияот нейронов 3 и 4 до всех других нейронов равно 1.
Определим другое расстояние между нейронами, котороеучитывает то количество связей, которое необходимо установить, чтобы задатьпуть движения от базового нейрона. Если задано /> нейронов, положение которыхопределяется векторами />, i = 1,..., S, то расстояниесвязи между ними определяется соотношением:
/> (3.11)
Если евклидово расстояние между нейронами меньше илиравно 1, то расстояние связи принимается равным 1; если между нейронами сномерами i и j имеется единственный промежуточный нейрон с номером />, то расстояниесвязи равно 2, и т. д.
Для вычисления расстояния связи в ППП NNTпредназначена функции linkdist. Для конфигурации нейронов, доказанной на рисунке3.6, эти расстояния равны:
pos = gridtop{2,3)
d = linkdist(pos)
d =
0 1 1 2 2 3
1 0 2 1 3 2
1 2 0 1 1 2
2 1 1 0 2 1
2 3 1 2 0 1
3 2 2 1 1 0.
Расстояние связи между базовым нейроном 1 и нейронами2, 3 равно 1, между базовым нейроном и нейронами 4 и 5 равно 2, между базовымнейроном и нейроном 6 равно 3. Наконец, определим расстояние максимальногокоординатного смещении по формуле:
/>, (3.12)
где />, /> — векторы расположения нейронов сномерами i и j.
Для вычисления расстояния максимального координатногосмещения в ППП NNT предназначена функции mandist.
Вновь обратимся к конфигурации нейронов на рисунке3.6:
pos = gridtop(2,3)
d = mandist(pos)
d =
0 1 1 2 2 3
1 0 2 1 3 2
1 2 0 1 1 2
2 1 1 0 2 1
2 3 1 2 0 1
3 2 2 1 1 0.
В случае прямоугольной сетки оно совпадает срасстоянием связи.
3.2.3 Архитектура сети
Промоделированная архитектура самоорганизующейся картыКохонена в MATLAB NNT показана на рисунке 3.10.
/>
Рисунок 3.10 – Архитектура самоорганизующейся картыКохонена
Эта архитектура аналогична структуре слоя Кохонена заисключением того, что здесь не используются смещения. Конкурирующая функцияактивации возвращает 1 для элемента выхода />, соответствующего победившемунейрону; все другие элементы вектора /> равны 0.
Однако в сети Кохонена выполняется перераспределениенейронов, соседствующих с победившим нейроном. При этом можно выбиратьразличные топологии размещения нейронов и различные меры для вычислениярасстояний между нейронами.
3.2.4 Создание сети
Для создания самоорганизующейся карты Кохонена всоставе ППП MATLAB NNT предусмотрена М-функция newsom. Допустим, чтотребуется создать сеть для обработки двухэлементных векторов входа с диапазономизменения элементов от 0 до 2 и от 0 до 1 соответственно. Предполагаетсяиспользовать гексагональную сетку размера 2x3. Тогда для формирования такойнейронной сети достаточно воспользоваться оператором:
net = newsom([0 2; 0 1], [2 3])
net.layers{l}
ans =
dimensions:[2 3]
distanceFcn:'linkdist'
distances:[6x6 double]
initFcn:'initwb'
netInputFcn:'netsum'
positions:[2x6 double]
size:6
topologyFcn:'hextop'
transferFcn:'compet'
userdata:[1x1 struct].
Из анализа характеристик этой сети следует, что онаиспользует по умолчанию гексагональную топологию hextop и функцию расстоянияlinkdist.
Для обучения сети зададим следующие 12 двухэлементныхвекторов входа:
Р = [0.1 0.3 1.2 1.1 1.8 1.7 0.1 0.3 1.2 1.1 1.8 1.7;...
0.2 0.1 0.3 0.1 0.3 0.2 1.8 1.8 1.9 1.9 1.7 1.8].
Построим на топографической карте начальноерасположение нейронов карты Кохонена и вершины векторов входа (рисунок 3.11):
plotsom(net.iw{1,1},net.layers{1}.distances)
hold on
plot(P(1,;),P(2,:), '*к','markersize',10)
/>
Рисунок 3.11 – Начальное расположение нейронов
Векторы входа помечены символом * и расположены попериметру рисунка, а начальное расположение нейронов соответствует точке скоординатами (1, 0.5).
3.2.5 Обучение сети
Обучение самоорганизующейся карты Кохонена реализуетсяповекторно независимо от того, выполняется обучение сети с помощью функцииtrainwbl или адаптация с помощью функции adaptwb. В любом случае функцияlearnsom выполняет настройку элементов весовых векторов нейронов.
Прежде всего определяется нейрон-победитель икорректируются его вектор весов и векторы весов соседних нейронов согласносоотношению:
/>, (3.13)
где /> — параметр скорости обучения; /> — массивпараметров соседства для нейронов, расположенных в окрестностинейрона-победителя i, который вычисляется по соотношению:
/> (3.14)
где /> - элемент выхода нейронной сети; /> - расстояниемежду нейронами i и j; /> — размер окрестностинейрона-победителя.
Весовые векторы нейрона-победителя и соседних нейроновизменяются в зависимости от значения параметра соседства. Весанейрона-победителя изменяются пропорционально параметру скорости обучения, авеса соседних нейронов — пропорционально половинному значению этого параметра.
Процесс обучения карты Кохонена включает 2 этапа: этапупорядочения векторов весовых коэффициентов в пространстве признаков и этапподстройки. При этом используются следующие параметры обучения сети (таблица2.1):
Таблица 2.1
Параметры обучения сетиПараметры обучения и настройки карты Кохонена Значение по умолчанию Количество циклов обучения neе.trainParamepochs N >1000 Количество циклов на этапе упорядочения netinputWeights{1,1}.learnParam.order_steps S 1000 Параметр скорости обучения на этапе упорядочения net.inputWeights{1,1}.leamParam.order_lr order_lr 0.9 Параметр скорости обучения на этапе подстройки net.inputWeights{1,1}.learnParam.tune_lr tune 0.02 Размер окрестности на этапе подстройки net.inputWeights(1,1).learnParam.tune_nd tune_nd 1
В процессе построения карты Кохонена изменяются 2 параметра:размер окрестности и параметр скорости обучения.
Этап упорядочения. На этом этапе используетсяфиксированное количество шагов. Начальный размер окрестности назначается равныммаксимальному расстоянию между нейронами для выбранной топологии и затемуменьшается до величины, используемой на этапе подстройки в соответствии соследующим правилом:
/>, (3.15)
где /> - максимальное расстояние междунейронами; /> -номер текущего шага.
Параметр скорости обучения изменяется по правилу:
/>. (3.16)
Таким образом, он уменьшается от значения order_lr дозначения tune_lr.
Этап подстройки. Этот этап продолжается в течениеоставшейся части процедуры обучения. Размер окрестности на этом этапе остаетсяпостоянным и равным:
/>. (3.17)
Параметр скорости обучения изменяется по следующемуправилу:
/>. (3.18)
Параметр скорости обучения продолжает уменьшаться, ноочень медленно, и именно поэтому этот этап именуется подстройкой. Малоезначение окрестности и медленное уменьшение параметра скорости обучения хорошо настраиваютсеть при сохранении размещения, найденного на предыдущем этапе. Число шагов наэтапе подстройки должно значительно превышать число шагов на этапе размещения.На этом этапе происходит тонкая настройка весов нейронов по отношению к наборувекторов входа.
Как и в случае слоя Кохонена, нейроны карты Кохоненабудут упорядочиваться так, чтобы при равномерной плотности векторов входанейроны карты Кохонена также были распределены равномерно. Если векторы входараспределены неравномерно, то и нейроны на карте Кохонена будут иметь тенденциюраспределяться в соответствии с плотностью размещения векторов входа.
Таким образом, при обучении карты Кохонена решается нетолько задача кластеризации входных векторов, но и выполняется частичнаяклассификация.
Выполним обучение карты Кохонена размера 2x3 сгексагональной сеткой и с мерой, определяемой расстоянием связи:
net = newsom([0 2; 0 1], [2 3]).
Для обучения сети зададим 12 двухэлементных вектороввхода
Р = [0.1 0.3 1.2 1.1 1.8 1.7 0.1 0.3 1.2 1.1 1.8 1.7; ...
0.2 0.1 0.3 0.1 0.3 0,2 1,8 1.8 1.9 1.9 1.7 1.8].
Зададим количество циклов обучения равным 2000:
net.trainParam.epochs = 2000
net.trainParam.show = 100
net = train (net, P)
plot(p(l,:),P(2,:), '*', 'markersize',10)
hold on
plotsom(net.iw{1*1},net.layers{l).distances).
Результат обучения представлен на рисунке 3.12.
/>
Рисунок 3.12 – Карты Кохонена с гексагональной сеткой
Положение нейронов и их нумерация определяютсямассивом весовых векторов, который для данного примера имеет вид:
net.IW{l}
ans =
1.2163 0.20902
0.73242 0.46577
1.0645 0.99103
0.4551 1.3893
1.5359 1.8079
1.0888 1.8433.
Если промоделировать карту Кохонена на массивеобучающих векторов входа, то будет получен следующий выход сети:
а = sim(net,P)
а =
(2,1)1
(2,2)1
(1,3) 1
(1,4) 1
(1,5) 1
(1,6) 1
(4,7) 1
(4,8) 1
(6,9) 1(6.10) 1
(5.11) 1
(5.12) 1.
Это означает, что векторы входов 1 и 2 отнесены ккластеру с номером 2, векторы 3-6 — к кластеру 1, векторы 7-8 — к кластеру 4,векторы 9-10 — к кластеру 6, а векторы 11-12 — к кластеру 5. Номер кластера нарисунке соответствует номеру соответствующего нейрона на карте Кохонена.
Если сформировать произвольный вектор входа, то картаКохонена должна указать его принадлежность к тому или иному кластеру:
а = sim(net,[1.5; 1])
а = (3,1) 1.
В данном случае представленный вектор входа отнесен ккластеру с номером 3. Обратите внимание, что векторов такого сорта в обучающейпоследовательности не было. Рассмотрим еще 2 модели одномерной и двумерной картКохонена.
3.2.6 Моделирование одномерной карты Кохонена
Рассмотрим 100 двухэлементных входных векторовединичной длины, распределенных равномерно в пределах от 0 до 90°:
angles = 0:0.5*pi/99:0.5*pi
Р =[sin(angles);cos(angles)]
plot(P(1,1:10:end), P(2,l:10:end), 'b')
hold on.
График входных векторов приведен на рисунке 3.13, а, ина нем символом * отмечено положение каждого 10-го вектора.
/>
Рисунок 3.13 – График входных векторов
Сформируем самоорганизующуюся карту Кохонена в видеодномерного слоя из 10 нейронов и выполним обучение в течение 2000 циклов:
net = newsom( [0 1;0 1], [10])
net.trainParam.epochs = 2000;net.trainParam.show = 100
[net, tr] = train(net,P)
plotsom (net .IW{1,1},net.layers{1}.distances) % (рисунок 3.13 ,a)
figure ( 2) a = sim(net,P); bar(sum(a1)) %(рисунок 3.13, б).
Весовые коэффициенты нейронов, определяющих центрыкластеров, отмечены на рисунке 3.13, а цифрами. На рисунке 3.13, б показанораспределение обучающих векторов по кластерам. Как и ожидалось, онираспределены практически равномерно с разбросом от 8 до 12 векторов в кластере.
Таким образом, сеть подготовлена к кластеризациивходных векторов. Определим, к какому кластеру будет отнесен вектор [1; 0]:
а = sim(net,[1;0])
а = (10,1)1.
Как и следовало ожидать, он отнесен к кластеру сномером 10.
3.2.7 Моделирование двумерной карты Кохонена
Этот пример демонстрирует обучение двумерной картыКохонена. Сначала создадим обучающий набор случайных двумерных векторов,элементы которых распределены по равномерному закону в интервале [-1, 1]:
P = rands(2,1000)
plot(P(l,:), Р(2, :),'+') % (рисунок 3.14).
/>
Рисунок 3.14 – Обучающий набор случайных двумерныхвекторов
Для кластеризации векторов входа создадимсамоорганизующуюся карту Кохонена размера 5x6 с 30 нейронами, размещенными нагексагональной сетке:
net = newsom([-1 1; -1 1],[5,6])
net.trainParam.epochs = 1000
net.trainParam.show = 100
net = train(net,P);plotsom(net.IW{1,1},net.layers{l}.distances).
Результирующая карта после этапа размещения показанана рисунке 3.15, а. Продолжим обучение и зафиксируем карту после 1000 шаговэтапа подстройки (рисунок 3.15, б), а затем после 4000 шагов (рисунок 3.15, в).Нетрудно убедиться, что нейроны карты весьма равномерно покрывают областьвекторов входа.
/>
Рисунок 3.15 – Результирующая карта после этапаразмещения
Определим принадлежность нового вектора к одному изкластеров карты Кохонена и построим соответствующую вершину вектора на рисунке3.15, в:
а =sim(net,[0.5;0.3])
а = (19.1)1
hold on, plot(0.5,0.3,'*k') %(риcунок3.15, в).
Нетрудно убедиться, что вектор отнесен к 19-мукластеру.
Промоделируем обученную карту Кохонена, используямассив векторов входа:
а =sim(net,P)
bar(sum(a')) % (рисунок 3.16).
Из анализа рисунка 3.16 следует, что количествовекторов входной последовательности отнесенных к определенному кластеру,колеблется от 13 до 50.
/>
Рисунок 3.16 – Промоделированная карта Кохонена
Таким образом, в процессе обучения двумернаясамоорганизующаяся карта Кохонена выполнила кластеризацию массива вектороввхода. Следует отметить, что на этапе размещения было выполнено лишь 20% отобщего числа шагов обучения, т, е. 80% общего времени обучения связано с тонкойподстройкой весовых векторов. Фактически на этом этапе выполняется вопределенной степени классификация входных векторов.
Слой нейронов карты Кохонена можно представлять, ввиде гибкой сетки, которая натянута на пространство входных векторов. В процессеобучения карты, в отличие от обучения слоя Кохонена, участвуют сосединейрона-победителя, и, таким образом, топологическая карта выглядит болееупорядоченной, чем области кластеризации слоя Кохонена.
ВЫВОДЫ
Современный мир переполнен различными данными и информацией — прогнозамипогод, процентами продаж, финансовыми показателями и массой других. Частовозникают задачи анализа данных, которые с трудом можно представить вматематической числовой форме. Например, когда нужно извлечь данные, принципыотбора которых заданы неопределенно: выделить надежных партнеров, определитьперспективный товар, проверить кредитоспособность клиентов или надежностьбанков и т.п. И для того, чтобы получить максимально точные результаты решенияэтих задач необходимо использовать различные методы анализа данных.
Одним из ведущих методов анализа данных являетсякластеризация. Задачей кластеризацииявляется разбиения совокупности объектов на однородные группы (кластеры иликлассы), а целью — поиск существующих структур. Решается данная задача припомощи различных методов, выбор метода должен базироваться на исследованииисходного набора данных. Сложностью кластеризации является необходимость ееэкспертной оценки.
На данный момент существует большое количество методов кластеризации.Так, например, наиболее очевидным является применение методов математическойстатистики. Но тут возникает проблема с количеством данных, ибо статистическиеметоды хорошо работают при большом объеме априорных данных, а у нас может бытьограниченное их количество. Поэтому статистические методы не могутгарантировать успешный результат, что делает их малоэффективными в решениимногих практических задач.
Другим путем решения этой задачи может быть применение нейронных сетей,что является наиболее перспективным подходом. Можно выделить ряд преимуществиспользования нейронных сетей:
· возможно построениеудовлетворительной модели на нейронных сетях даже в условиях неполноты данных;
· искусственные нейронные сети легкоработают в распределенных системах с большой параллелизацией в силу своейприроды;
· поскольку искусственные нейронныесети подстраивают свои весовые коэффициенты, основываясь на исходных данных,это помогает сделать выбор значимых характеристик менее субъективным.
Кластеризация является задачей, относящейся кстратегии «обучение без учителя», т.е. не требует наличия значенияцелевых переменных в обучающей выборке. Для нейросетевой кластеризации данныхмогут использоваться различные модели сетей, но наиболее эффективным являетсяиспользование сетей Кохонена или самоорганизующихся карт.
В данной магистерской работе подробно на примерахрассмотрена такая парадигма нейронных сетей как карты Кохонена. Основноеотличие этих сетей от других моделей состоит в наглядности и удобствеиспользования. Эти сети позволяют упростить многомерную структуру, их можносчитать одним из методов проецирования многомерного пространства в пространствос более низкой размерностью. Интенсивность цвета в определенной точке картыопределяется данными, которые туда попали: ячейки с минимальными значениямиизображаются темно-синим цветом, ячейки с максимальными значениями — красным.
Другое принципиальное отличие карт Кохонена от другихмоделей нейронных сетей — иной подход к обучению, а именно — неуправляемое илинеконтролируемое обучение. Этот тип обучения позволяет данным обучающей выборкисодержать значения только входных переменных. Сеть Кохонена учится пониматьсаму структуру данных и решает задачу кластеризации.
ПЕРЕЧЕНЬССЫЛОК
1.Руденко О.Г., Бодянский Е.В. Искусственные нейронные сети – Харьков, 2005. –407с.
2.Котов А., Красильников Н. Кластеризация данных
3. Jain A.K., Murty M.N., Flynn P.J. Data Clustering: A Review"(http://www/csee/umbc/edu/nicolas/clustering/p264-jain.pdf)
4. Kogan J., Nicholas C., Teboulle M. Clustering Large and HighDimensional Data (http://www/csee/umbc/edu/nicolas/clustering/tutorial.pdf)
5.Медведев В.С., Потемкин В.Г. Нейронные сети. MATLAB 6 –М.: ДИАЛОГ-МИФИ, 2002. – 496с.
6.Круглов В. В., Борисов В. В. Искусственные нейронные сети. Теория и практика –М.: Горячая линия — Телеком, 2001. – 382с.
7.Каллан Р. Основные концепции нейронных сетей – «Вильямс», 2001. –288с.