Читайте также: |
|
Мета роботи
Освоєння методики створення самоорганізованих карт Кохонена і процедури настроювання їхніх параметрів за допомогою пакета прикладних програм 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 | Нарушение авторских прав