2 Методика выполнения лабораторной работы

 

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

Для создания нейронной сети со слоем Кохонена воспользуемся встроенной в среду Matlab функцией newc:

1.

X=[0 1; 0 1];

clusters=5;

points=5; %3адание количества точек в кластере

std_dev=0.01;

p=nngenc(X,clusters,points,std_dev);%Моделирование входных данных

h=newc([0 1;0 1],5,.1); % создание слоя Кохонена

h.trainParam.epochs=50; %3адание количества циклов обучения

h=init(h);

h=train(h,p);

w=h.IW{1}; % вывод графиков исходных данных и выявленных центров кластеров

plot(p(1,:),p(2,:),'^r'),grid;

hold on;

plot(w(:,1),w(:,2),'ob');

xlabel('p(1)');

ylabel('p(2)');

A=0.6

B=0.5

p=[A;B];

plot(A,B,'^k')

y=sim(h,p) %Onpoc сети

A =0.6000

B =0.5000

y = (2,1) 1

Результат работы программы представлен на рис. 1. Кроме того, его можно увидеть в командном окне: У= (2,1) 1

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

1)  нормальный весоростовой показатель;

2)  избыток веса;

3)  недостаток веса.

2. %входные данные (первая строка матрицы - рост; вторая - вес)

p=[175 180 182 175 183 176 183 176 183 176 175 180 178 180 178 182 178 182 179 174 172 179;

70 75 100 99 42 48 76 72 40 45 92 96 70 69 95 90 79 82 80 50 96 91] %создаем НС Кохонена с 3 кластерами (нормальный весоростовой показатель, избыток веса и недостаток веса)

h=newc([0 200;0 100],3,.1)

h.trainParam.epochs=500; %3адание количества циклов обучения

h=train(h,p)

w=h.IW{1};

plot(p(1,:),p(2,:),'^r');

hold on;

plot(w(:,1),w(:,2),'ob');

xlabel('Rost');

ylabel('Ves');

% Задание нового входного вектора

%Опрос сети

A=181

B=65

p=[A;B];

plot(A,B,'+r')

y=sim(h,p)

A =181

B = 65

y = (2,1) 1

Результат работы программы представлен на рис. 2. Кроме того, его можно увидеть в командном окне: у= (2,1) 1

Предъявленный вектор отнесен ко второму кластеру.

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

3.

P=rands(2,100) %3адание случайных двухмерных входных векторов

figure(1)

hold on

plot(P(1,:),P(2,:),'+r') %визуальное изображение входных векторов

%Создание НС с 3*4 нейронами

%По умолчанию функция TFCN = 'hextop', то есть нейроны располагаются в узлах двумерной сетки с шестиугольными ячейками

net=newsom([0 1;0 1],[3 4]);

net.trainParam.epoch=1 %3адание числа циклов настройки

net=train(net,P) % настройка сети

A=0.5

B=0.3

p=[A;B]; % Задание нового входного вектора

plot(A,B,'^k') %прорисовка на рисунке входного вектора (черный треугольник)

figure(2)

plotsom(net.iw{1,1},net.layers{1}.distances)

a=sim(net,p) %опрос сети

A = 0.5000

B = 0.3000

a = (5,1) 1

Результат работы программы представлен на рис. 3 - 4.

Результат работы программы можно увидеть и в командном окне: a = (5,1) 1

Предъявленный вектор отнесен к пятому кластеру.


3 Контрольные вопросы

 

1. Что понимается под кластеризацией? Задача кластеризации (категоризации, классификации "без учителя") - задача размещения входных векторов (образов) по категориям (кластерам) так, чтобы близкие векторы (схожие образы) оказались в одной категории. Отличие задачи кластеризации от похожей на нее задачи классификации заключается в том, что набор категорий изначально не задан и определяется в процессе обучения нейронной сети. Примером задачи кластеризации служит задача сжатия информации путем уменьшения разнообразия данных.

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

·      обработки изображения;

·      классификации;

·      тематического анализа коллекций документов;

·      построения репрезентативной выборки.

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

Закон обучения Кохонена

На рис. 1 приведена базовая структура слоя Кохонена. Слой состоит из N обрабатывающих элементов, каждый из которых получает п входных сигналов Х[,Х2,...,х„ из нижестоящего слоя, который является прямым передатчиком сигналов. Входу х, и связи (ij) припишем вес w/j.

Рис. 1. Нейронная сеть со слоем Кохонена

2. Опишите встроенные операторы Matlab для кластеризации.

Newc – создание конкурентного слоя.

Net=newc(PR,S,KLR,CLR) – функция создания слоя Кохонена.

Аргументы функции:

PR – R х 2 матрица минимальных и максимальных значений для R входных элементов,

S – число нейронов,

KLR – коэффициент обучения Кохонена (по умолчанию 0,01)

CLR – Коэффициент «справедливости»(по умолчанию 0,001)

Опишите сеть Кохонена.

3. Зачем используются самоорганизующиеся карты? Самоорганизующиеся карты (Self Organizing Maps - SOM) это одна из разновидностей нейросетевых алгоритмов.

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

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


Заключение

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


Список использованных источников

1.   О.С. Амосов

2.   О С. Амосов «Интеллектуальные информационные системы. Нейронные сети и нечеткие системы»: Учеб. Пособие. - Комсомольск-на-Амуре: ГОУВПО «КнАГТУ», 2004. -104 с.


Информация о работе «Кластеризация с помощью нейронных сетей»
Раздел: Информатика, программирование
Количество знаков с пробелами: 12040
Количество таблиц: 0
Количество изображений: 1

Похожие работы

Скачать
60598
0
10

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

Скачать
110516
5
18

... МП к некритическому экстраполированию результата считается его слабостью. Сети РБФ более чувствительны к «проклятию размерности» и испытывают значительные трудности, когда число входов велико. 5. МОДЕЛИРОВАНИЕ НЕЙРОННЫХ СЕТЕЙ ДЛЯ ПРОГНОЗИРОВАНИЯ СТОИМОСТИ НЕДВИЖИМОСТИ   5.1 Особенности нейросетевого прогнозирования в задаче оценки стоимости недвижимости Использование нейронных сетей можно ...

Скачать
63100
1
8

... Весовые коэффициенты нейронов карты Кохонена для примера 1. Заключение В результате проделанной работы создана интеллектуальная система анализа входящего трафика по классам опасности. Система построена на использовании нейронной сети конкурирующего типа. Реализовано обучение сети пятью методами самоорганизации: классический (с настройкой соседей и без неё), механизм утомления (с настройкой ...

Скачать
77313
3
20

... , непохожим ни на один из известных образцов, то она не сможет классифицировать такой набор и тем самым выявит его новизну. кластеризация нейронный сеть кохонен 3. МОДЕЛИРОВАНИЕ СЕТИ КЛАСТЕРИЗАЦИИ ДАННЫХ В MATLAB NEURAL NETWORK TOOLBOX Программное обеспечение, позволяющее работать с картами Кохонена, сейчас представлено множеством инструментов. Это могут быть как инструменты, включающие ...

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


Наверх