Машинне навчання · Нейронні мережі
Червень 2026 · 12 хв читання · Конкурентне навчання · BMU · U-матриця · Застосування · Останнє оновлення: 22 червня 2026 р.

Самоорганізовані карти: нейронні мережі зі збереженням топології

Автор: Команда MySimulator · Редакційна перевірка: Редакція MySimulator

Більшість нейронних мереж навчаються на розмічених прикладах. Самоорганізовна карта (SOM), яку 1982 року запропонував Теуво Кохонен, навчається взагалі без міток. Вона бере високовимірні дані та розкладає їх на низьковимірній сітці — зазвичай двовимірній — так, що схожі входи опиняються поруч один з одним. Результат — карта, на яку можна буквально подивитися: плоске зображення, у якому стає видимою геометрія складного набору даних. Ця стаття пояснює, як SOM навчається через конкуренцію, чому вона зберігає топологію і де застосовується.

1. Основна ідея та архітектура

SOM — це єдиний шар нейронів, розташованих на фіксованій сітці — зазвичай прямокутній або гексагональній решітці. Кожен нейрон i несе вектор ваг wi, що живе в тому самому просторі, що й вхідні дані. Якщо входи 50-вимірні, вектор ваг кожного нейрона теж 50-вимірний, хоча самі нейрони сидять на 2D-сітці.

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

Біологічне натхнення: SOM приблизно змодельована за коркових картах мозку, таких як соматосенсорний гомункул або тонотопічні карти в слуховій корі, де сусідні нейрони реагують на сусідні стимули. Алгоритм Кохонена відтворює це впорядковане відображення обчислювально.

2. Конкурентне навчання та BMU

Навчання рухає конкуренція. Для кожного вхідного вектора x кожен нейрон вимірює, наскільки близький його вектор ваг до входу, і перемагає найближчий нейрон. Цей переможець називається найкращим відповідним нейроном (Best Matching Unit, BMU).

Для входу x і ваг нейронів w_i, BMU — це нейрон c з мінімальною відстанню: c = argmin_i ‖ x − w_i ‖ де ‖·‖ зазвичай є евклідовою відстанню: ‖ x − w_i ‖ = √( Σ_j (x_j − w_ij)² )

У чистому конкурентному навчанні («переможець отримує все») оновлювався б лише BMU. Ключове доповнення SOM полягає в тому, що BMU та його сусіди на сітці усі рухаються в бік входу. Саме це оновлення сусідства зшиває карту докупи так, що суміжні нейрони врешті представляють суміжні області даних.

3. Функція сусідства

Функція сусідства hci визначає, наскільки сильно нейрон i тягнеться до входу, коли BMU є нейрон c. Вона залежить від відстані на сітці між c та i і з часом звужується.

Гаусове сусідство: h_ci(t) = exp( − d(c,i)² / (2 σ(t)²) ) де d(c,i) = відстань на сітці між BMU c та нейроном i σ(t) = радіус сусідства, що звужується з часом t І радіус, і швидкість навчання спадають, наприклад: σ(t) = σ₀ · exp( − t / λ ) α(t) = α₀ · exp( − t / λ )

На початку навчання радіус σ великий, тож один вхід зсуває широку смугу сітки. Це фаза впорядкування, коли карта розгортається й розплутується, щоб відповідати загальній формі даних. У міру зменшення σ оновлення стають локальними — фаза збіжності (тонкого налаштування) — дозволяючи кожному нейрону спеціалізуватися. Цей перехід від глобального до локального є ключовим: без звужуваного сусідства карта не впорядкувалась би в чітку структуру.

4. Алгоритм навчання крок за кроком

Повне правило оновлення поєднує пошук BMU, функцію сусідства та спадну швидкість навчання α(t):

Оновлення ваг для кожного нейрона i: w_i(t+1) = w_i(t) + α(t) · h_ci(t) · ( x(t) − w_i(t) ) BMU (h_ci ≈ 1) рухається найбільше; далекі нейрони (h_ci ≈ 0) майже не рухаються.

Процедура, що повторюється протягом багатьох ітерацій:

  1. Ініціалізуйте вектор ваг кожного нейрона (випадково або вибіркою з даних / головних компонент для швидшої збіжності).
  2. Подайте випадково обраний вхідний вектор x.
  3. Знайдіть BMU — нейрон, чиї ваги найближчі до x.
  4. Оновіть BMU та його сусідів у бік x за наведеним вище правилом.
  5. Зменшіть швидкість навчання α та радіус сусідства σ.
  6. Повторюйте, доки ваги не стабілізуються.

Оскільки кожен крок вимагає лише обчислення відстані та локального оновлення, SOM добре масштабується і легко реалізується — саме тому вона лишалась популярною ще довго після свого впровадження.

5. Читання навченої карти: U-матриця

Після навчання SOM — це розкладка, але як побачити в ній кластери? Стандартний інструмент — U-матриця (уніфікована матриця відстаней). Для кожного нейрона вона обчислює середню відстань між вектором ваг цього нейрона та векторами ваг його безпосередніх сусідів на сітці.

U(i) = середнє за сусідами j від ‖ w_i − w_j ‖ Низьке значення U → нейрон схожий на своїх сусідів → усередині кластера Високе значення U → великий стрибок у даних → межа між кластерами

Показана як теплова карта, U-матриця показує кластери як низькі «долини», розділені високими «хребтами». Це перетворює абстрактний високовимірний набір даних на читабельну карту рельєфу, і саме тому аналітики звертаються до SOM, коли хочуть побачити структуру, а не просто обчислити її. Інші корисні представлення включають компонентні площини (одна теплова карта на кожну ознаку входу) та гістограми влучень, що показують, скільки точок даних потрапляє на кожен нейрон.

6. Застосування

SOM цінують усюди, де важлива дослідницька візуалізація складних даних:

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

Пов'язані симуляції

🗺️
Симулятор мережі SOM
Спостерігайте, як карта Кохонена розгортається на даних і формує кластери в реальному часі
🧠
Майданчик нейронної мережі
Порівняйте навчання з учителем із конкурентним підходом SOM без учителя
⚙️
Симулятор перцептрона
Почніть із найпростішої моделі нейрона, щоб закласти інтуїцію для оновлення ваг