Самоорганизующиеся карты - Карты Кохонена

Опубликовано: 18 Февраля, 2022

Самоорганизующаяся карта (или карта Кохонена или SOM) - это тип искусственной нейронной сети, который также вдохновлен биологическими моделями нейронных систем 1970-х годов. Он следует подходу к обучению без учителя и обучил свою сеть с помощью алгоритма конкурентного обучения. SOM используется для методов кластеризации и сопоставления (или уменьшения размерности) для сопоставления многомерных данных с более низкоразмерными, что позволяет людям сокращать сложные проблемы для легкой интерпретации. SOM имеет два уровня: один - входной, а второй - выходной. Архитектура самоорганизующейся карты с двумя кластерами и n входными функциями любого образца приведена ниже:

Как работает SOM?

Скажем, входные данные размера (m, n), где m - номер обучающего примера, а n - количество функций в каждом примере. Во-первых, он инициализирует веса размера (n, C), где C - количество кластеров. Затем, перебирая входные данные, для каждого обучающего примера он обновляет вектор выигрыша (вектор веса с кратчайшим расстоянием (например, евклидово расстояние) из обучающего примера). Правило обновления веса задается:

 w ij = w ij (старый) - alpha (t) * (x i k - w ij (старый))

где альфа - скорость обучения в момент времени t, j обозначает выигрышный вектор, i обозначает i- ю особенность обучающего примера, а k обозначает k- й обучающий пример из входных данных. После обучения сети SOM обученные веса используются для кластеризации новых примеров. Новый пример попадает в кластер выигрышного вектора.

Алгоритм

Вовлеченные шаги:

  • Инициализация веса
  • Для количества эпох от 1 до N
  • Выберите пример обучения
  • Вычислить выигрышный вектор
  • Обновить выигрышный вектор
  • Повторите шаги 3, 4, 5 для всех обучающих примеров.
  • Кластеризация тестового образца

Ниже представлена реализация вышеуказанного подхода:

Внимание компьютерщик! Укрепите свои основы с помощью базового курса программирования Python и изучите основы.

Для начала подготовьтесь к собеседованию. Расширьте свои концепции структур данных с помощью курса Python DS. А чтобы начать свое путешествие по машинному обучению, присоединяйтесь к курсу Машинное обучение - базовый уровень.