Міністерство освіти і науки України
Національний університет «Львівська політехніка»
Кафедра АСУ
Лабораторні роботи №7
з дисципліни «Системи штучного інтелекту»
на тему:
“Самоорганізовані карти Кохонена”
Теоретичні відомості
Кластеризація – об'єднання в групи схожих об'єктів – є однією із фундаментальних задач в області аналізу даних і видобутку знань (Data Mining). Можна навести довгий список, де використовуються результати кластеризації: сегментація зображень, маркетинг, боротьба із шахрайством, прогнозування, аналіз текстів та багато хто інших.
Завдання кластеризації намагались сформулювати у рамках різних галузей науки, таких як: статистика, розпізнавання образів, оптимізація, машинне навчання, тощо. Це стало причиною такого різноманіття синонімів, що існують до поняття «кластер» – клас, таксон, згущення, і т.д. Нині існує досить велика кількість методів розбивки груп об'єктів на кластери, проте кластеризація з точки зору видобування знань (Data Mining) є цінною тоді, коли вона виступає лише одним із початкових етапів аналізу даних, а після виділення схожих груп застосовуються інші методи, при чому для кожної групи може будуватись своя власна модель. Такий прийом постійно використовують у маркетингу, коли спочатку виділяються групи клієнтів, покупців чи товарів, а потім для кожної з цих груп розробляється окрема стратегія.
Часто дані, з якими працює технологія Data Mining, мають такі важливі особливості:
велика розмірність (може бути до тисячі полів) та значний обсяг (сотні тисяч, або й мільйони записів) таблиць баз даних і сховищ даних (надвеликі бази даних);
набори даних містять велику кількість числових та категорійних атрибутів.
Числові атрибути даних – такі, що можуть бути впорядковані у просторі. Відповідно, категорійні атрибути даних – які не можуть бути впорядковані. Наприклад, атрибут «вік» є числовим, а «колрів» – категорійним.
Більшість алгоритмів кластеризації допускають порівняння об'єктів між собою на основі певної міри близькості (подібності). Мірою подібності називається величина, що є обмеженою та зростає зі збільшенням близькості об'єктів. Міри подібності «винаходяться» за спеціальними правилами, а вибір конкретних мір залежить від завдання, а також від шкали вимірів. Для числових атрибутів в якості міри подібності часто використовується евклідова відстань, що обчислюється за формулою:
.
Для категорійних атрибутів існують свої особливі міри подібності.
Потреба в опрацюванні великих масивів даних привела до формулювання ряду вимог, які повинен задовільняти алгоритм кластеризации:
мінімально можлива кількість проходів по базі даних;
робота за обмеженого об’єму оперативної пам'яті комп'ютера;
роботу алгоритму можна перервати зі збереженням проміжних результатів, щоб продовжити обчислення пізніше;
алгоритм повинен працювати, якщо об'єкти з бази даних можуть витягуватись в режимі односпрямованого курсору (тобто в режимі навігації по записах).
Алгоритм, що задовільняє ці вимоги (особливо другу), називають масштабованим (scalable). При незмінному об’му оперативної пам'яті комп’ютера та зі збільшенням числа записів у базі даних час роботи масштабованого алгоритму зростає лінійно.
Самоорганізовані карти
Алгоритм функціонування самоорганізованих карт (Self Organizing Maps - SOM) є одним із варіантів кластеризації багатомірних векторів – алгоритм проектування зі збереженням топологічної подоби.
Прикладом таких алгоритмів може служити алгоритм k-найближчих середніх (k-means). Важливою відмінністю алгоритму SOM є те, що в ньому всі нейрони (вузли, центри класів) упорядковані в деяку структуру (звичайно двовимірну сітку). При цьому, у ході навчання модифікується не тільки нейрон-переможець (нейрон карти, що найбільшою мірою відповідає вектору входів і визначає до якого класу ставиться приклад), але і його сусіди, хоча й у меншому ступені. За рахунок цього SOM можна вважати одним з методів проектування багатомірного простору в простір з більше низькою розмірністю. При використанні цього алгоритму, вектора, схожі у вихідному просторі, виявляються поруч і на отриманій карті.
SOM має на увазі використання впорядкованої структури нейронів. Звичайно використаються одне- і двовимірні сітки. При цьому, кожний нейрон являє собою n-мірний вектор-стовпець, де n визначається розмірністю вихідного простору (розмірністю вхідних векторів). Застосування одне- і двовимірних сіток пов'язане з тим, що виникають проблеми при відображенні просторових структур більшої розмірності (при цьому знову виникають проблеми зі зниженням розмірності до двовимірної, представимой на моніторі).
Звичайно, нейрони розташовуються у вузлах двовимірної сітки із прямокутними або шестикутними комірками. При цьому, як було сказано вище, нейрони також взаємодіють один з одним. Величина цієї взаємодії визначається відстанню між нейронами на карті.
При реалізації алгоритму SOM заздалегідь задається конфігурація сітки (прямокутна або шестикутна), а також кількість нейронів у мережі. Деякі джерела рекомендують використати максимально можливу кількість нейронів у карті. При цьому початковий радіус навчання (neighborhood в англомовній літературі) у значній мірі впливає на здатність узагальнення за допомогою отриманої карти. У випадку, коли кількість вузлів карти перевищує кількість прикладів у навчальній вибірці, успіх використання алгоритму у великому ступені залежить від підходящого вибору початкового радіуса навчання. Однак, у випадку, коли розмір карти становить десятки тисяч нейронів, час, необхідний на навчання карти, звичайно буває занадто велико для рішення практичних завдань. Таким чином, необхідно досягати припустимий компроміс при виборі кількості вузлів.
Перед початком навчання карти необхідно проинициализировать вагарні коефіцієнти нейронів. Вдало обраний спосіб ініціалізації може істотно прискорити навчання й привести до одержання більше якісних результатів.
Існують три способи ініціювання початкових ваг.
• Ініціалізація випадковими значеннями, коли всім вагам даються малі випадкові величини.
• Ініціалізація прикладами, коли як початкові значення задаються значення випадково обраних прикладів з навчальної вибірки.
• Лінійна ініціалізація, у цьому випадку ваги ініціюються значеннями векторів, лінійно впорядкованих уздовж лінійного підпростори, що проходить між двома головними власними векторами вихідного набору даних.
Навчання карти полягає в послідовності корекції векторів, що представляють собою нейрони. На кожному кроці навчання, з вихідного набору даних випадково вибирається один з векторів, а потім виробляється пошук найбільш схожого на нього вектора коефіцієнтів нейронів. При цьому вибирається нейрон-переможець, що найбільш схож на вектор входів. Під подібністю в даному завданні розуміється відстань між векторами, обчислюється звичайно в евклідовому просторі.
Після того, як знайдений нейрон-переможець, виробляється коректування ваг карти. При цьому вектор, що описує нейрон-переможець і вектори, що описують його сусідів у сітці, переміщаються в напрямку вхідного вектора.
Навчання складається із двох основних фаз: на первісному етапі вибирається досить велике значення швидкості навчання й радіуса навчання, що дозволяє розташувати вектора нейронів відповідно до розподілу прикладів у вибірці, а потім виробляється точне підстроювання ваг, коли значення параметрів швидкості навчання багато менше початкових. У випадку використання лінійної ініціалізації, первісний етап грубого підстроювання може бути пропущений.
У результаті навчання карти, що самоорганізується, у вихідну вибірку даних будуть додані наступні поля:
• <ІМ'Я ПОЛЯ>_OUT - містять значення вихідних полів, розраховані картою.
• Номер комірки - містить номер комірки карти в яку потрапив даний запис.
• Відстань до центра комірки - містить значення відстані від даного запису до центра комірки в яку цей запис потрапив.
• Номер кластера - вказується номер кластера, де розташована комірка в яку потрапив даний запис вихідної вибірки.
• Відстань до центра кластера - вказується значення відстані від комірки, куди потрапив даний запис вихідної вибірки, до центра кластера.
• <ІМ'Я ПОЛЯ>_ERR - містить середньоквадратичну помилку неузгодженості реального значення поля й значення, розрахованого картою.
Процес побудови й навчання карти, що самоорганізується, містить наступні етапи:
1. Вибір визначення полей.
2. Настройка нормалізації полей.
3. Настройка навчальної вибірки.
4. Настройка параметрів навчання.
5. Настройка умов зупинки онавчання.
6. Настройка параметрів навчанняя.
7. Запуск процесу навчання.
8. Вибір способу відображення даних.
9. Данні про вузел.
Мережі, що називаються картами Кохонена – це один з різновидів нейронних мереж, однак вони принципово відрізняються від розглянутих раніше, оскільки використовують неконтрольоване навчання. Нагадаємо, що при такому навчанні навчальна множина складається лише зі значень вхідних змінних, у процесі навчання немає порівняння виходів нейронів з еталонними значеннями. Можна сказати, що така мережа вчиться розуміти структуру даних.
Ідея мережі Кохонена належить фінському вченому Тойво Кохонену (1982 рік). Основний принцип роботи мереж – введення в правило навчання нейрона інформації щодо його розташування.
В основі ідеї мережі Кохонена лежить аналогія із властивостями людського мозку. Кора головного мозку людини являє собою плоский аркуш і згорнута складками. Таким чином, можна сказати, що вона має певні топологічні властивості (ділянки, відповідальні за близькі частини тіла, примикають одна до одної й все зображення людського тіла відображається на цю двовимірну поверхню).
Завдання, що розв'язуються за допомогою карт Кохонена
Карти, що самоорганізуються, можуть використовуватися для розв’язання таких завдань, як моделювання, прогнозування, пошук закономірностей у великих масивах даних, виявлення наборів незалежних ознак і стиск інформації.
Найпоширеніше застосування мереж Кохонена – вирішення завдань класифікації без учителя, тобто кластеризації.
Нагадаємо, що при такій постановці завдання нам задано набір об'єктів, кожному з яких відповідає рядок таблиці (вектор значень ознак). Потрібно розбити вихідну множину на класи, тобто для кожного об'єкта знайти клас, до якого він належить.
У результаті одержання нової інформації про класи можлива корекція існуючих правил класифікації об'єктів.
От два з найбільш розповсюджених застосувань карт Кохонена: розвідницький аналіз даних і виявлення нових явищ.
Розвідницький аналіз даних. Мережа Кохонена здатна розпізнавати кластери в даних, а також встановлювати близькість класів. Таким чином, користувач може поліпшити своє розуміння структури даних, щоб потім уточнити нейромережеву модель. Якщо в даних розпізнані класи, то їх можна позначити, після чого мережа зможе вирішувати завдання класифікації. Мережі Кохонена можна використати й у тих завданнях класифікації, де класи вже задані, – тоді перевага буде в тому, що мережа зможе виявити подібність між різними класами.
Виявлення нових явищ. Мережа Кохонена розпізнає кластери в навчальних даних і відносить всі дані до тих або інших кластерів. Якщо після цього мережа зустрінеться з набором даних, несхожим ні на один з відомих зразків, то вона не зможе класифікувати такий набір і тим самим виявить його новизну.
Навчання мережі Кохонена
Мережа Кохонена, на відміну від багатошарової нейронної мережі, дуже проста; вона являє собою два шари: вхідний і вихідний. Її також називають самоорганізуючою картою. Елементи карти розташовуються в деякому просторі, як правило, двовимірному.Мережа Кохонена зображена на рис.1
/
Вхідні
нейрони
Вихідні
нейрони
Рис. 1. Мережа Кохонена
Карта входів нейронів.
Ваги нейронів підбудовуються під значення вхідних змінних і відображають їх внутрішню структуру. Для кожного входу рисуємо свою карту, яка розфарбована у відповідності зі значенням конкретної ваги нейрона.
При аналізі даних використають кілька карт входів.
На одній з карт виділяють область певного кольору - це означає, що відповідні вхідні приклади мають приблизно однакове значення відповідного входу. Колірний розподіл нейронів із цієї області аналізується на інших картах для визначення схожих або відмітних характеристик. Приклад розглянутих карт входів буде наведено нижче.
Карта виходів нейронів.
На карту виходів нейронів проектується взаємне розташування досліджуваних вхідних даних. Нейрони з однаковими значеннями виходів утворять кластери – замкнуті області на карті, які включають нейрони з однаковими значеннями виходів.
Спеціальні карти.
Це карта кластерів, матриця відстаней, матриця щільності влучення й інших карт, які характеризують кластери, отримані в результаті навчання мережі Кохонена.
Важливо розуміти, що між всіма розглянутими картами існує взаємозв'язок - всі вони є різними розфарбуваннями тих самих нейронів. Кожен приклад з навчальної вибірки має те саме розташування на всіх картах.
/
/
/
До першого кластера належать 37 об’єктів, до другого – 105, до третього - 116 (сумарно 258).
Висновки:
За допомогою Deductor можна побудувати мережу Кохонена та отримати цікаві результати.