Кластеризація за допомогою нейронних мереж

[ виправити ] текст може містити помилки, будь ласка перевіряйте перш ніж використовувати.

скачати

Міністерство освіти і науки Російської Федерації Федеральне агентство з освіти

Амурський гуманітарно-педагогічний державний університет

Фізико-математичний факультет

Кафедра інформатики

ЛАБОРАТОРНА РОБОТА № 3

з дисципліни «Штучні нейронні мережі» на тему «Кластеризація за допомогою нейронних мереж»

2007

Зміст

Введення

  1. Теоретичні відомості

  2. Методика виконання лабораторної роботи

  3. Контрольні питання

Висновок

Список використаних джерел

Введення

Мета лабораторної роботи: освоїти основні принципи розв'язання задачі кластеризації з використанням нейронних мереж з шаром Кохонена та самоорганізованих карт.

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

  1. Теоретичні відомості

Самоорганізовані карти. Самоорганізовані карти (Self Organizing Maps - SOM) це один з різновидів нейромережевих алгоритмів. Основною відмінністю даної технології від розглянутих нами раніше нейромереж, яких навчають за алгоритмом зворотного поширення, є те, що при навчанні використовується метод навчання без вчителя, то є результат навчання залежить тільки від структури вхідних даних. Нейронні мережі денного типу часто застосовуються для вирішення різних завдань, від відновлення пропусків в даних до аналізу даних і пошуку закономірностей, наприклад, у фінансовій завданню.

Основи самоорганізованих карт. Алгоритм функціонування самообучающихся карт представляє собою один з варіантів кластеризації багатовимірних векторів. Прикладом таких алгоритмів може служити алгоритм найближчих середніх (з-means). Важливою відмінністю алгоритму SOM є те, що в ньому всі нейрони (вузли, центри класів) упорядковані в деяку структуру (зазвичай двовимірну сітку). При цьому в ході навчання модифікується не тільки нейрон-переможець, але і його сусіди, але в меншій мірі. За рахунок цього SOM можна вважати одним з методів проектування багатовимірного простору в простір з більш низькою розмірністю При використанні цього алгоритму вектора, схожі у вихідному просторі, виявляються поруч і на отриманій карті.

Структура самоорганізованих карт. SOM увазі використання впорядкованої структури нейронів. Зазвичай використовуються одно-й двовимірні сітки. При цьому кожен нейрон являє собою і-мірний вектор-стовпець w ~ [щ, і; 2 ,..., w n], де п визначається розмірністю початкового простору (розмірністю вхідних векторів). Застосування одно-і двовимірних сіток пов'язано з тим, що виникають проблеми при відображенні просторових структур більшої розмірності (при цьому знову виникають проблеми з пониженням розмірності до двовимірної, представимо на моніторі).

Зазвичай нейрони розташовуються у вузлах двовимірної сітки з прямокутними або шестикутними осередками. При цьому, як було сказано вище, нейрони також взаємодіють один з одним. Величина цієї взаємодії визначається відстанню між нейронами на карті.

Початкова ініціалізація карти. При реалізації алгоритму SOM заздалегідь задається конфігурація сітки (прямокутна або шестикутна), а також кількість нейронів у мережі. Деякі джерела рекомендують використовувати максимально можливу кількість нейронів в карті. При цьому початковий радіус навчання (neighborhood в англомовній літературі) в значній мірі впливає на здатність узагальнення при допомоги, отриманої карти. У випадку, коли кількість вузлів карти перевищує кількість прикладів у навчальній вибірці, то успіх використання алгоритму у великій мірі залежить від відповідного вибору початкового радіуса навчання. Однак у випадку, коли розмір карти складає десятки тисяч нейронів, час, необхідний на навчання карти, зазвичай буває занадто велике для вирішення практичних завдань, таким чином, необхідно досягати допустимого компромісу при виборі кількості вузлів.

Перед початком навчання карти необхідно проініціалізувати вагові коефіцієнти нейронів. Вдало вибраний спосіб ініціалізації може істотно прискорити навчання і привести до одержання більш якісних результатів. Існують три способи ініціювання початкових ваг:

1. ініціалізація випадковими значеннями, коли всім вагам даються малі випадкові величини;

2. ініціалізація прикладами, коли в якості початкових значень задаються значення випадково вибраних прикладів з навчальної вибірки;

3. лінійна ініціалізація. У цьому випадку ваги ініціюються значеннями векторів, лінійно упорядкованих уздовж лінійного підпростору, що проходить між двома головними власними векторами вихідного набору даних. Власні вектори можуть бути знайдені, наприклад, за допомогою процедури Грама-Шмідта.

Навчання самоорганізованих карт. Навчання складається з послідовності корекцій векторів, що представляють собою нейрони. На кожному кроці навчання з вихідного набору даних випадково вибирається один з векторів, а потім здійснюється пошук найбільш схожого на нього вектора коефіцієнтів нейронів. При цьому вибирається нейрон-переможець, який найбільш схожий на вектор входів. Під схожістю в даній задачі розуміється відстань між векторами, звичайно обчислюється в евклідовому просторі. Після того, як знайдено нейрон-переможець, проводиться коригування ваги нейро-мережі. При цьому вектор, що описує нейрон-переможець, і вектори, що описують його сусідів у сітці, переміщаються в напрямку вхідного вектора.

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. нормальний весоростовой показник;

  1. надлишок ваги;

  2. недолік ваги.

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; 0100], 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 С.

Додати в блог або на сайт

Цей текст може містити помилки.

Програмування, комп'ютери, інформатика і кібернетика | Лабораторна робота
46.2кб. | скачати


Схожі роботи:
Моделі нейронних мереж
Властивості основних нейронних мереж
Психологічна інтуїція штучних нейронних мереж
Апроксимація функції з використанням нейронних мереж
Конструювання алгоритмів керування на основі нечіткої логіки і нейронних мереж
Технологія вилучення знань з нейронних мереж апробація проектування ПЗ використання в психолінгвістиці
Дослідження можливості застосування штучних нейронних мереж для автоматичного управління
Зв`язок з допомогою мереж телекомунікації
Імітація процесів гнучких виробничих систем за допомогою апарата мереж Петрі
© Усі права захищені
написати до нас