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 High Dimensional Data (http://www/csee/umbc/edu/nicolas/clustering/tutorial.pdf)

5. Медведев В.С., Потемкин В.Г. Нейронные сети. MATLAB 6 – М.: ДИАЛОГ-МИФИ, 2002. – 496с.

6. Круглов В. В., Борисов В. В. Искусственные нейронные сети. Теория и практика – М.: Горячая линия - Телеком, 2001. – 382с.

7. Каллан Р. Основные концепции нейронных сетей – «Вильямс», 2001. –288с.


Информация о работе «Моделирование сети кластеризации данных в MATLAB NEURAL NETWORK TOOL»
Раздел: Информатика, программирование
Количество знаков с пробелами: 77313
Количество таблиц: 3
Количество изображений: 20

0 комментариев


Наверх