Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Модель карти Кохонена

Читайте также:
  1. I. Картина распятия
  2. IV. Две картины
  3. Samasource: модель стрекозы в действии
  4. Y видит во сне две картины, написанные скандинавским художником Германом Кристианом Лундом.
  5. А) Опыты с пониманием сюжетных картин
  6. Алгоритм Кохонена
  7. Американская модель

Мета роботи

Освоєння методики створення самоорганізованих карт Кохонена і процедури настроювання їхніх параметрів за допомогою пакета прикладних програм SOM Toolbox у середовищі MATLAB. Освоєння особливостей кластеризації за допомогою карт Кохонена.

 

3.2 Методичні вказівки з організації самостійної роботи студентів

 

Рекомендується повторити лекційний матеріал з самоорганізованих карт Кохонена.

 

3.2.1 Побудова самоорганізованих карт Кохонена

 

Самоорганізована карта Кохонена є мережею прямої передачі сигналів і складається з одного обчислювального слою, всі нейрони якого з’єднані з вузлами вхідного слою. Самоорганізовані карти навчаються послідовно і мають топологічно впорядковану форму. Карти Кохонена призначені для кластеризації неперервної множини вхідних образів.

За допомогою команди help <назва функції> можна одержати додаткову інформацію про М-функції, що входять до складу ППП SOM Toolbox:

 

Self-organizing map Самоорганізовані карти Кохонена
Reading the data Зчитування даних
som_read_data Зчитування даних з ascii файлу у форматі SOM_PAK
Creating of SOM Toolbox structures Створення структур пакета SOM Toolbox
som_set Створення та перевірка структур пакета SOM Toolbox, присвоєння значень їх полям
som_data_struct Створення структури даних
som_make Створення, ініціалізація та навчання карти
   
Data (de)normalization (Де)нормалізація даних
som_normalize (Ре)нормалізація даних або виконання нових нормалізацій
som_denormalize Денормалізація даних
som_lininit Лінійна ініціалізація самоорганізованої карти
som_randinit Ініціалізація карти випадковими значеннями
som_seqtrain Послідовний алгоритм навчання карти Кохонена
som_batchtrain Пакетний алгоритм навчання карти Кохонена
Vizualization Візуалізація
som_show Базова візуалізація SOM: компонентні площини, ортогональна матриця і т.д.
som_show_add Відображає додаткову інформацію на графіку, створеному за допомогою функції som_show
som_cplane Візуалізація 2D компонентної площини, ортогональної матриці чи кольорової площини.
som_pieplane Візуалізація векторів карти у вигляді секторних діаграм
som_barplane Візуалізація векторів карти у вигляді гістограм
som_plotplane Візуалізація векторів карти у вигляді лінійчатих графіків
som_grid Візуалізація решітки карти Кохонена
Labeling Робота з мітками структур даних та карт
som_autolabel Автоматичне присвоєння або усунення позначок
som_label Присвоєння або усунення позначок
Examples Приклади
som_demo1 Основні властивості та режим роботи SOM
som_demo2 Основне використання пакету SOM Toolbox
som_demo3 Візуалізація SOM
som_demo4 Аналіз даних за допомогою SOM
Standard functions Стандартні функції MatLab

3.2.2 Архітектура самоорганізованої карти

Кожний елемент вектора входу зважений з відповідною вагою . Всі нейрони решітки мають зв’язки з вузлами вхідного слою. Зв’язки між нейронами відображають сусідство кожного нейрона.

Рисунок 3.1 – Модель мережі Кохонена

 

 

Рисунок 3.2 – Візуалізація карти Кохонена

 

Карта має вигляд решітки, вузлами якої є нейрони, а лініями – зв’язки між нейронами. Рисунок 6.2 наочно ілюструє вигляд самоорганізованої карти у 3D вимірі.

Модель карти Кохонена

 

Функція формування моделі карти Кохонена:

sM = som_lininit(D)

з таким вхідним аргументом: ‑ навчальні образи (структура: som_data).

Приклад:

sM = som_lininit([5 3;12 1]); % створює самоорганізовану карту

% з двома входами [5 3] та [12 1].

Тепер визначимо, як відгукується мережа на вхідні вектори й , розташовані по різні сторони від поділяючої лінії.

 

Функція створення, ініціалізації та навчання самоорганізованої карти.

Для швидкого програмування карти Кохонена використовується команда som_make:

sM = som_make(D);

Приклад:

sM = som_make([5 3;12 1]); % створює, ініціалізує та настроює само організовану

% карту з двома входами [5 3] та [12 1].

Ця функція створює та ініціалізує карту за допомогою функції som_lininit (лінійна ініціалізація) та настроює за допомогою som_batchtrain (пакетний алгоритм навчання).

 

Функції присвоєння/усунення позначок нейронів карти Кохонена або вхідних векторів

Приклад присвоєння позначок:

sD = som_label(sD, 'add', 1:3, ['3'; '4'; '5']);

додає позначки ‘3’, ‘4’ та ‘5’ записам 1, 2 та 3 структури даних sD (dat_struct) відповідно.

Приклад автоматичного перенесення позначок:

sD = som_autolabel(sD, sM, 'vote');

присвоює позначки записам структури даних sD за допомогою голосування між векторами вагових коефіцієнтів карти sM.

 

Функція візуалізації решітки самоорганізованої карти

Приклад:

som_grid('rect', [5 1], 'Line', 'none', 'Coord', sD.data, 'Label', sD.labels, 'labelColor', 'k', 'marker', 'x', 'markerColor', 'b');

візуалізує матрицю sD.data (Nx2 чи Nx3) з решіткою розміром 5х1 з прямокутними топологічними зв’язками між нейронами без відображення ліній зв’язків, позначками sD.labels чорного кольору та маркером ‘x’ синього кольору.

Приклад:

som_grid(sM, 'Coord', sM.codebook, 'MarkerColor', 'y', 'Label', sM.labels, 'LabelColor', 'k');

візуалізує карту sM з координатами sM.codebook (Nx2 чи Nx3 матриця) з маркером жовтого кольору та позначками sM.labels чорного кольору.

 

Нормалізація даних

Приклад:

sD = som_normalize(sD, 'var');

одинична нормалізація даних матриці, структури даних (data struct) чи карти (map struct) sD.

 

Ініціалізація самоорганізованої карти

Лінійна ініціалізація передбачає рівномірний розподіл початкових векторів вагових коефіцієнтів.

Приклад лінійної ініціалізації можна побачити на рисунку 6.3. Вхідні дані позначені синіми «х», а початкові ваги нейронів – чорними «о».

 

Рисунок 3.3 –Лінійна ініціалізація карти Кохонена

 

Приклад ініціалізації карти Кохонена випадковими значеннями можна побачити на рисунку 6.4. Вхідні дані позначені синіми «х», а початкові ваги нейронів – чорними «о».

 

 

Рисунок 3.4 – Ініціалізація карти Кохонена випадковими значеннями

 

3.2.4 Процедури настроювання параметрів

 

Визначимо процес навчання карти Кохонена як процедуру настроювання ваг і швидкості навчання з метою зменшення помилки кластеризації, використовуючи деяке правило настроювання (навчання). Карта Кохонена призначена для кластеризації образів, тому відноситься до алгоритмів навчання без вчителя.

При навчанні без вчителя ваги змінюються тільки у зв'язку зі змінами входів мережі.

 

Правила настроювання

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

 

Навчання мережі Кохонена

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

(6.1)

Досить корисною операцією попередньої обробки вхідних векторів є їх нормалізація

, i = 1,N (6.2)

 

Алгоритм навчання мережі Кохонена:

1. Ініціалізація.

2. Вибір навчального сигналу.

3. Аналіз відклику (вибір нейрону).

Визначається активований нейрон за формулою 6.1.

4. Процес навчання.

 

Приклад програми кластеризації:

%створення та ініціалізація нової структури даних

sD = som_data_struct([-2 100; -1 0; 0 0; 0.5 -100; 0.5 100]);

%створення, ініціалізація та навчання карти Кохонена

sM = som_make(sD);

%присвоєння позначок першим 12 векторам вагових коефіцієнтів карти

sM = som_label(sM, 'add', 1:12, ['a';'b';'c';'d';'e';'f';'g';'h';'i';'j';'k';'l']);

%присвоєння позначок вхідним образам на основі голосування

%між векторами вагових коефіцієнтів карти

sD = som_autolabel(sD, sM, 'vote');

%візуалізація вхідних даних

som_grid('rect', [5 1], 'Line', 'none', 'Coord', sD.data, 'Label', sD.labels, 'labelColor', 'k', 'marker', 'x', 'markerColor', 'b');

%утримання поточного графіку

Hold on

%візуалізація карти

som_grid(sM,'Coord',sM.codebook, 'MarkerColor','y', 'marker', 'o', 'Label',sM.labels,'LabelColor','k');

 


Дата добавления: 2015-11-30; просмотров: 54 | Нарушение авторских прав



mybiblioteka.su - 2015-2024 год. (0.014 сек.)