Когда речь заходит о системах, способных самостоятельно находить структуру в хаосе данных без явного указания на «правильный» ответ, на ум сразу приходят самоорганизующиеся карты Кохонена (SOM). Представьте, что в огромном массиве информации — будь то финансовые транзакции, медицинские показания или параметры космических объектов — внезапно проявляются скрытые закономерности, кластеры похожих объектов, которые человек не смог бы обнаружить. Именно эту задачу — превращение абстрактных многомерных данных в наглядную, топологически упорядоченную двумерную карту — виртуозно решают SOM. С момента своего появления в 1982 году благодаря финскому учёному Теуво Кохонену, эти нейронные сети стали краеугольным камнем в области машинного обучения без учителя, предлагая уникальные возможности для визуализации, кластеризации и разведочного анализа данных.
Цель данной работы — создать всестороннее и глубоко структурированное исследование по программе для обучения нейронной сети по алгоритму Кохонена. Мы погрузимся в теоретические основы, разберём математический аппарат, изучим практическую реализацию в ведущих программных средствах и освоим методы оценки эффективности. Наш путь пройдёт через детали архитектуры, тонкости алгоритмов обучения, специфику программных платформ, таких как Deductor, MATLAB и Python-библиотеки, и завершится анализом прикладных задач и методов преодоления возникающих проблем. В итоге, читатель получит исчерпывающее понимание того, как эти мощные инструменты позволяют «увидеть» невидимые связи в данных, делая сложный мир больших данных более доступным и понятным.
Введение в нейронные сети Кохонена и самоорганизующиеся карты
В эпоху экспоненциального роста объёмов данных способность извлекать из них полезные знания становится критически важной, и в этом контексте нейронные сети Кохонена, или самоорганизующиеся карты (SOM), представляют собой элегантное и мощное решение для задач кластеризации, визуализации и разведочного анализа. Они относятся к классу нейронных сетей, обучающихся без учителя, что означает их способность самостоятельно выявлять структуру в данных, не требуя предварительной разметки.
Идея самоорганизующихся карт была предложена финским учёным Теуво Кохоненом в 1982 году, и с тех пор они нашли широкое применение в различных областях. Основной принцип работы SOM заключается в создании двумерной «карты», на которой высокоразмерные входные данные проецируются таким образом, чтобы близкие по своим характеристикам объекты располагались на карте рядом. Это позволяет визуализировать сложные взаимосвязи и закономерности, которые иначе остались бы скрытыми. Что из этого следует для аналитика? SOM становятся незаменимым инструментом для предварительного исследования больших массивов данных, где традиционные методы анализа могут быть неэффективны.
Далее мы детально рассмотрим эти концепции, углубимся в их исторический контекст, архитектуру, математические основы, а также практические аспекты реализации и оценки эффективности.
Основные определения и исторический контекст
Для полноценного понимания самоорганизующихся карт Кохонена необходимо чётко определить ключевые термины, лежащие в основе их функционирования.
- Нейронная сеть — это вычислительная система, вдохновлённая структурой и функциями биологических нейронных сетей, способная обучаться на данных и выполнять такие задачи, как классификация, регрессия и кластеризация.
- Алгоритм Кохонена — это метод обучения нейронной сети, который позволяет ей формировать топологически упорядоченное отображение входных данных на выходной слой.
- Самоорганизующиеся карты (SOM) — это разновидность нейронных сетей Кохонена, разработанная Теуво Кохоненом в 1982 году. Их ключевая особенность — способность к обучению без учителя, в результате которого формируется двумерная карта, где схожие входные данные группируются в соседние области. SOM сочетают в себе элементы векторного квантования (разбиения пространства возможных значений векторной величины на конечное число областей) и проецирования, позволяя находить и анализировать закономерности в данных.
- Обучение без учителя — это парадигма машинного обучения, при которой обучающее множество состоит только из входных данных, и в процессе обучения сеть самостоятельно выявляет скрытые структуры, паттерны или зависимости, не используя предварительно размеченные эталонные значения.
- Кластеризация — это задача разбиения множества объектов на группы (кластеры) таким образом, чтобы объекты в одном кластере были более схожи между собой, чем с объектами из других кластеров. SOM является одним из эффективных инструментов для решения этой задачи.
Идея сети Кохонена была предложена финским учёным Теуво Кохоненом в 1982 году, и она вдохновлена биологическими процессами. Основной принцип работы сетей Кохонена заключается во введении в правило обучения нейрона информации относительно его расположения на карте. В основе этой идеи лежит аналогия со свойствами человеческого мозга, где сенсорная информация отображается в линейные или планарные структуры коры головного мозга с сохранением топологического порядка. Это означает, что нейроны, расположенные рядом в коре головного мозга, обрабатывают информацию, поступающую из соседних областей сенсорных рецепторов (например, сетчатки глаза или кожного покрова). SOM воспроизводит этот принцип, создавая карту, где топологические отношения входных данных сохраняются в пространственной организации нейронов на выходном слое. Таким образом, сложная многомерная информация визуализируется в понятной двумерной форме, что упрощает её анализ и интерпретацию.
Архитектура и структура самоорганизующихся карт Кохонена
Для понимания принципов работы самоорганизующихся карт Кохонена важно детально рассмотреть их внутреннее устройство и компоненты. В отличие от многих других типов нейронных сетей, SOM обладают относительно простой, но в то же время эффективной архитектурой, разработанной специально для решения задач кластеризации и визуализации многомерных данных.
Слои сети Кохонена
Сеть Кохонена в своей простейшей и наиболее распространённой форме состоит всего из двух основных слоёв:
- Входной (распределительный) слой: Этот слой предназначен для приёма исходных данных. Он состоит из нейронов, количество которых равно размерности входного вектора признаков. Основная функция входных нейронов — распределение входного сигнала по нейронам следующего слоя. Важно отметить, что входные нейроны не участвуют в процессе обучения, то есть их веса не корректируются. Они просто передают полученные значения дальше по сети.
- Выходной слой (слой Кохонена, топологическая карта, «экран»): Этот слой является сердцем SOM. Он состоит из некоторого количества параллельно действующих адаптивных линейных элементов, часто называемых нейронами Кохонена. Каждый нейрон входного слоя связан со всеми нейронами выходного слоя, тогда как внутри слоёв — как во входном, так и в выходном — связей нет. Каждый нейрон выходного слоя имеет свой собственный вектор весов, который имеет ту же размерность, что и входной вектор, и именно эти весовые векторы адаптируются в процессе обучения.
Принцип работы выходного слоя основан на конкуренции, которая часто описывается как принцип «победитель получает всё» (Winner-Take-All). Это означает, что для каждого поданного на вход вектора данных только один нейрон Кохонена на выходном слое становится «победителем» (Best Matching Unit, BMU) — тот, чей весовой вектор наиболее близок к входному вектору. Все остальные нейроны в этот момент выдают на выходе ноль. Именно этот нейрон-победитель и его ближайшие соседи будут корректировать свои веса в процессе обучения, чтобы лучше соответствовать текущему входному образцу.
Топология слоя Кохонена
Одной из уникальных особенностей самоорганизующихся карт Кохонена является их способность сохранять топологический порядок входных данных. Это достигается за счёт специфической организации нейронов на выходном слое:
- Расположение нейронов: Нейроны выходного слоя располагаются в узлах двумерной сетки. Эта сетка может иметь различные топологии, наиболее распространёнными из которых являются прямоугольная (квадратная) и шестиугольная.
- Выбор топологии: Шестиугольная топология применяется чаще, поскольку в этом случае расстояния между центрами смежных ячеек одинаковы. Это способствует более корректной визуализации карты и более равномерному распределению нейронов в пространстве признаков, уменьшая искажения при проецировании многомерных данных на двумерную плоскость.
- Количество нейронов в сетке: Количество нейронов в сетке (обозначаемое как p) является одним из ключевых параметров SOM. Оно определяет:
- Степень детализации результата работы алгоритма: Чем больше нейронов, тем более детализированной и точной будет карта, способная различать более тонкие нюансы в данных.
- Обобщающая способность карты: Слишком большое количество нейронов может привести к избыточной детализации и снижению обобщающей способности, тогда как слишком малое количество может не уловить важные структуры.
- Количество кластеров: Количество нейронов может соответствовать максимальному количеству кластеров, на которые карта может разбить данные.
Каждый узел или нейрон на карте Кохонена описывается двумя основными векторами:
- Вектор веса (m): Имеет ту же размерность, что и входные данные, и представляет собой «прототип» кластера или области данных, которую этот нейрон представляет. Эти векторы весов корректируются в процессе обучения.
- Вектор координат (r): Представляет собой координаты узла на самой карте (например, (x, y) в двумерной сетке). Эти координаты остаются фиксированными и используются для определения соседства между нейронами.
Таким образом, архитектура SOM представляет собой элегантное решение, позволяющее не только кластеризовать данные, но и визуализировать их структуру, сохраняя при этом топологические взаимосвязи, что делает её незаменимым инструментом для исследователей и аналитиков.
Математические основы и алгоритм обучения самоорганизующихся карт
Понимание математических основ и алгоритма обучения является ключевым для эффективного использования и настройки самоорганизующихся карт Кохонена. В основе SOM лежит итеративный процесс настройки весовых коэффициентов нейронов таким образом, чтобы карта топологически правильно отражала структуру входных данных.
Инициализация и нормализация
Первым шагом в любом алгоритме обучения нейронной сети, включая SOM, является инициализация.
- Инициализация весовых коэффициентов: На стадии инициализации всем весовым коэффициентам wij (где i — номер нейрона, j — номер признака) присваиваются небольшие случайные значения. Часто эти значения равномерно распределены в определённом диапазоне, например, от 0 до 1. Это обеспечивает начальное разнообразие и позволяет каждому нейрону «захватывать» свою область пространства признаков.
- Нормализация: Для корректной работы алгоритма и ускорения сходимости обучение весовые векторы нейронов и входные векторы часто нормализуются. Нормализация данных приводит все признаки к одному масштабу, что предотвращает доминирование признаков с большими значениями.
- Для нормализации выборки в пределах [-1; 1] начальные значения весов должны удовлетворять соотношению `|wij| ≤ 1/√n`, где n — число признаков (число входных нейронов).
- Для нормализации выборки в пределах [0; 1] начальные значения весов должны удовлетворять соотношению `0.5 — 1/√n ≤ |wij| ≤ 0.5 + 1/√n`.
- Важно отметить, что используются нормированные входные векторы, что означает приведение их к единичной длине или определённому диапазону, например, [0; 1] или [-1; 1]. Это гарантирует, что при вычислении расстояний (например, евклидова) все признаки вносят соразмерный вклад.
Итерационный процесс обучения: шаги алгоритма
Обучение сети Кохонена заключается в итеративной настройке вектора весовых коэффициентов wj каждого нейрона. Процесс обучения состоит из ряда проходов, называемых эпохами. В каждой k-й эпохе (итерации t) выполняются следующие шаги:
- Подача входного вектора и вычисление расстояний: На вход сети подаётся один из N входных векторов X(t) из обучающего множества. Для каждого нейрона i на выходном слое вычисляется евклидово расстояние между текущим входным вектором X(t) и его весовым вектором Wi(t). Евклидово расстояние определяется как:
d(X, Wi) = √ Σj=1n (Xj - Wij)2
где n — размерность входного вектора. - Определение нейрона-победителя (BMU): Из всех нейронов на выходном слое выбирается тот, чей весовой вектор имеет наименьшее евклидово расстояние до текущего входного вектора X(t). Этот нейрон называется Best Matching Unit (BMU), или нейроном-победителем. Пусть его индекс будет c.
- Корректировка весов: Веса нейрона-победителя c и его соседей корректируются. Цель корректировки — сделать их весовые векторы более похожими на текущий входной вектор X(t). Этот шаг осуществляется по правилу Кохонена.
Функция соседства и скорость обучения
Корректировка весов нейрона-победителя и его соседей осуществляется по следующей формуле обновления весов:
Wi(t + 1) = Wi(t) + η(t) ⋅ hi,c(t) ⋅ (X(t) - Wi(t))
Где:
- Wi(t + 1) — новый весовой вектор i-го нейрона на следующей итерации t + 1.
- Wi(t) — текущий весовой вектор i-го нейрона на итерации t.
- η(t) — скорость обучения, функция, убывающая от времени. Она определяет, насколько сильно веса нейронов корректируются на каждой итерации. На начальных этапах обучения η(t) обычно высока, позволяя весам быстро адаптироваться, а затем постепенно уменьшается, обеспечивая точную настройку. Часто используется экспоненциальное уменьшение.
- hi,c(t) — функция соседства нейронов. Это невозрастающая функция от времени t и расстояния между нейроном i и нейроном-победителем c в топологической сетке. Она отражает пространственное влияние BMU на его соседей. Функция соседства обычно состоит из двух частей:
- Функция расстояния между нейронами на карте: Определяет, насколько далеко расположен нейрон i от нейрона-победителя c в двумерной сетке.
- Функция, зависящая от времени: Определяет радиус обучения (radius of learning), то есть размер окружения вокруг нейрона-победителя, нейроны внутри которого будут корректировать свои веса.
Наиболее часто применяются две основные функции от расстояния: простая константа (когда все соседи в радиусе обучения корректируются одинаково) или Гауссова функция.
Гауссова функция соседства описывается как:
hi,c(t) = exp(-Ri,c2 / (2 ⋅ σ(t)2))
Где:
- Ri,c — евклидово расстояние между нейроном i и нейроном-победителем c на топологической карте.
- σ(t) — радиус соседства (или радиус влияния), который также является функцией, убывающей от времени.
На начальном этапе обучения радиус обучения σ(t) выбирается достаточно большим, охватывая значительную часть карты, что позволяет карте быстро «схватить» общую структуру данных. Постепенно σ(t) уменьшается, так что в конечном итоге обучается только нейрон-победитель (или очень небольшое количество его ближайших соседей), и такое поведение обеспечивает тонкую настройку и специализацию нейронов, формируя чёткие кластеры.
| Параметр | Описание | Динамика в процессе обучения |
|---|---|---|
| Скорость обучения η(t) | Определяет, насколько сильно корректируются веса нейронов. Большие значения приводят к быстрой, но менее точной адаптации, малые — к медленной, но более точной. | На начальном этапе η(t) высока (например, 0.5-1.0), обеспечивая общую адаптацию карты к входным данным. Постепенно экспоненциально или линейно уменьшается до нуля или очень малого значения, что позволяет карте стабилизироваться и производить тонкую настройку. |
| Радиус соседства σ(t) | Определяет размер области вокруг нейрона-победителя, в которой нейроны также корректируют свои веса. Важен для сохранения топологии. | Начинается с большого значения, охватывающего значительную часть карты (например, половину ширины/высоты карты), позволяя сформировать общую топологическую структуру. Постепенно уменьшается (линейно или экспоненциально) до нуля или значения, охватывающего только самого нейрона-победителя. Это обеспечивает сначала глобальную организацию, а затем локальную специализацию. |
| Функция соседства hi,c(t) | Отражает степень влияния нейрона-победителя на соседние нейроны в зависимости от расстояния между ними на карте и радиуса соседства. Гауссова функция (exp(-R2/(2⋅σ2))) является наиболее распространённой и часто даёт лучшие результаты, поскольку обеспечивает плавное убывание влияния. | Меняется опосредованно через σ(t). Когда σ(t) велико, функция соседства имеет широкий «колокол», влияя на множество нейронов. По мере уменьшения σ(t), «колокол» сужается, и влияние распространяется на меньшее количество нейронов, пока не останется только BMU. |
| Количество эпох | Общее количество итераций обучения, то есть сколько раз весь обучающий набор данных будет подан на вход сети. | Зависит от сложности данных и размера карты. Обычно обучение проходит в две фазы: фаза упорядочивания (большой радиус, высокая скорость) и фаза тонкой настройки (малый радиус, низкая скорость). Может составлять от нескольких сотен до десятков тысяч эпох. |
Тщательный выбор и настройка этих параметров критически важны для успешного обучения SOM и формирования корректной топологической карты.
Практическая реализация: Программные средства для моделирования и обучения SOM
Для работы с самоорганизующимися картами Кохонена существует несколько программных средств, каждое из которых обладает своими уникальными возможностями и преимуществами. Выбор инструмента зависит от специфики задачи, требуемого уровня гибкости и предпочтений разработчика. Рассмотрим наиболее популярные платформы.
MATLAB
MATLAB, будучи мощной платформой для численных расчётов и визуализации, предлагает богатые возможности для работы с нейронными сетями, в том числе с SOM.
- Neural Network Toolbox: Этот тулбокс является основным инструментом для создания и обучения нейронных сетей в MATLAB. Он включает в себя специализированные функции для сетей Кохонена:
newc: Функция для создания слоя Кохонена (Kohonen layer).newsom: Функция для создания самоорганизующейся карты (Self-Organizing Map).LEARNK: Реализует правило обучения Кохонена, позволяя настраивать веса нейронов в соответствии с алгоритмом.
- «Kohonen and CPANN toolbox for MATLAB»: Помимо встроенных функций, существует отдельный пакет, разработанный сторонними исследователями. Этот тулбокс представляет собой коллекцию модулей для разработки карт Кохонена, а также сетей встречного распространения (Counterpropagation Networks) и контролируемых сетей Кохонена (CPANN). Его отличительной особенностью является наличие графического пользовательского интерфейса (GUI), что значительно упрощает расчёты, визуализацию и анализ результатов даже для пользователей без глубоких навыков программирования.
Deductor
Аналитическая платформа Deductor, разработанная BaseGroup Labs (ныне Loginom Company), является комплексным решением для интеллектуального анализа данных (Data Mining) и включает мощный обработчик для работы с SOM.
- Обработчик «Карта Кохонена»: Deductor предоставляет специализированный обработчик «Карта Кохонена», который активно используется для кластеризации, поиска закономерностей и разведочного анализа данных. Это позволяет пользователям быстро применять алгоритм SOM к своим данным без необходимости написания сложного кода.
- Визуализация и анализ: Одной из сильных сторон Deductor является развитая система визуализации. Платформа позволяет визуализировать результаты кластеризации в виде двумерных карт, где расстояния между объектами на карте соответствуют расстояниям между их векторами в многомерном пространстве. Более того, Deductor Studio предоставляет уникальную возможность менять «уровень значимости» и количество классов уже после обучения карты, что позволяет интерактивно исследовать структуру данных.
- Обнаружение аномалий: В Deductor также реализована функция обнаружения аномалий. Если карта не может классифицировать набор данных, непохожий ни на один из известных образцов, это сигнализирует об аномалии, что является крайне полезной возможностью для выявления необычных или мошеннических паттернов.
Python-библиотеки
Python с его огромной экосистемой библиотек стал де-факто стандартом для машинного обучения и искусственного интеллекта. Для реализации SOM существует несколько высококачественных библиотек:
sklearn-som: Предоставляет минималистичную и простую в использовании реализацию самоорганизующейся карты Кохонена. Основное применение — кластеризация и уменьшение размерности данных. Поддерживает планарную (прямоугольную) топологию.lightSOM: Отличается быстрой онлайн-тренировкой SOM, что делает её подходящей для работы с большими потоками данных. Включает мощные средства визуализации, такие как плоскости компонентов (component planes), тепловые карты (heatmaps) и U-Matrix (Unified Distance Matrix), которая позволяет визуализировать расстояния между нейронами и идентифицировать границы кластеров.sompy: Библиотека, построенная на основе NumPy, ориентированная на высокопроизводительные вычисления для карт самоорганизации. Предлагает расширенные возможности для анализа и визуализации.SimpSOMиpython-som: Другие популярные библиотеки, предоставляющие различные подходы к реализации SOM, с акцентом на простоту использования или определённые вычислительные оптимизации.- TensorFlow: Благодаря своей гибкости и высокой производительности, библиотека TensorFlow также может быть использована для построения и обучения нейронных сетей, включая пользовательские реализации SOM. Это позволяет создавать более сложные и настраиваемые модели, интегрировать SOM в более крупные архитектуры глубокого обучения.
| Критерий / Средство | MATLAB | Deductor | Python (библиотеки) |
|---|---|---|---|
| Интерфейс | Командная строка, GUI (для тулбоксов), интерактивная среда | Полностью графический, интуитивно понятный интерфейс Drag-and-Drop | Командная строка, Jupyter Notebook, IDE; визуализация через Matplotlib, Seaborn и встроенные функции библиотек |
| Простота освоения | Средняя (требует знания синтаксиса MATLAB) | Высокая (для аналитиков без навыков программирования) | Средняя (требует знания Python и принципов работы с библиотеками) |
| Гибкость | Высокая (позволяет тонкую настройку алгоритмов) | Средняя (предоставляет готовые обработчики, но ограничена в глубокой кастомизации) | Очень высокая (позволяет создавать кастомные реализации, интегрировать с другими ML-моделями) |
| Визуализация | Встроенные функции, сторонние тулбоксы с GUI (хорошая) | Отличная, интерактивные карты, возможность изменения параметров после обучения, U-Matrix | Зависит от библиотеки (от минималистичной до продвинутой: U-Matrix, тепловые карты, плоскости компонентов в lightSOM, sompy) |
| Функционал SOM | newc, newsom, LEARNK; Kohonen and CPANN toolbox с GUI |
Обработчик «Карта Кохонена» для кластеризации, разведочного анализа, обнаружения аномалий, интерактивное изменение уровня значимости и количества классов | sklearn-som (минималистичная, планарная топология), lightSOM (быстрая онлайн-тренировка, расширенная визуализация), sompy, SimpSOM, python-som; возможность реализации на TensorFlow |
| Производительность | Хорошая (оптимизированные функции) | Хорошая (оптимизирована для работы с большими данными) | Высокая (особенно с использованием NumPy, TensorFlow, PyTorch; возможность GPU-ускорения) |
| Применение | Научные исследования, прототипирование, образование | Бизнес-аналитика, Data Mining, разведочный анализ, быстрая разработка решений без программирования | Исследования, разработка Production-ready систем, глубокое обучение, анализ данных, кастомизация под специфические задачи |
| Дополнительные возможности | Расширенные тулбоксы, интеграция с другими инструментами MATLAB | Обнаружение аномалий, интеграция в аналитические конвейеры, интерактивная настройка результатов после обучения | Широчайшая экосистема ML/AI, интеграция с Big Data, облачными платформами, возможность создавать комплексные пайплайны обработки данных, TensorFlow для глубоких нейросетей |
Каждое из этих средств предоставляет свои уникальные преимущества, и выбор в конечном итоге определяется конкретными требованиями проекта и уровнем подготовки пользователя.
Этапы разработки, реализации и тестирования программы для обучения SOM
Создание программы для обучения нейронной сети по алгоритму Кохонена — это многоступенчатый процесс, требующий последовательного выполнения ключевых этапов. От качества проработки каждого шага зависит итоговая эффективность и надёжность построенной модели.
1. Подготовка данных
Этот этап является фундаментом для успешного обучения любой нейронной сети. Ошибки или неточности здесь могут привести к некорректным результатам на всех последующих стадиях.
- Отбор выборки объектов для кластеризации: Необходимо тщательно выбрать данные, которые будут использоваться для обучения. Важно, чтобы выборка была репрезентативной и содержала достаточное количество примеров для выявления скрытых закономерностей.
- Определение множества переменных (признаков): Выбираются те характеристики объектов, по которым будет оцениваться их взаимная близость и формироваться кластеры. Чем более информативны и независимы признаки, тем лучше качество кластеризации.
- Нормализация данных: Одним из наиболее критичных шагов является нормализация (или масштабирование) переменных. Это процесс приведения значений всех признаков к единому диапазону (например, от 0 до 1 или от -1 до 1). Нормализация предотвращает доминирование признаков с большими числовыми значениями над признаками с меньшими значениями при вычислении расстояний. Например, для нормализации в диапазон [0; 1] часто используется формула:
Xнорм = (X - Xmin) / (Xmax - Xmin)
где X — исходное значение, Xmin и Xmax — минимальное и максимальное значения признака соответственно.
2. Инициализация и конфигурация сети
На этом этапе происходит «строительство» самой нейронной сети и задание её основных параметров.
- Инициализация весов нейронов: Как уже упоминалось, веса нейронов, соединяющие входной слой с выходным, инициализируются небольшими случайными значениями. Это позволяет избежать симметрии и дать каждому нейрону уникальную отправную точку для обучения.
- Выбор архитектуры карты: Определяется размер карты (количество нейронов по каждой из осей), а также её топология (прямоугольная или шестиугольная сетка). Выбор шестиугольной топологии часто предпочтителен, так как обеспечивает более равномерное распределение соседей.
- Конфигурация параметров обучения: Задаются начальные значения для скорости обучения сети (η) и радиуса соседства (σ), а также их функции уменьшения со временем (линейная, экспоненциальная и т.д.). Также определяется общее количество эпох обучения.
3. Итерационное обучение и анализ результатов
Это основной этап, где сеть учится и самоорганизуется.
- Проведение процесса обучения: Сеть проходит через заданное количество эпох. В каждой эпохе:
- Все входные векторы последовательно подаются на вход.
- Для каждого входного вектора определяется нейрон-победитель (BMU).
- Веса BMU и его соседей корректируются в соответствии с правилом Кохонена, приближаясь к входному вектору.
- Скорость обучения и радиус соседства постепенно уменьшаются.
- Анализ и визуализация результатов: После завершения обучения формируется обученная карта. Важным шагом является визуализация этой карты, например, с помощью U-Matrix (Unified Distance Matrix), которая показывает расстояния между соседними нейронами и помогает выявить границы кластеров. Анализируются сформированные кластеры, их расположение на карте и соответствие исходным данным. Возможно представление карты с цветовой кодировкой, отражающей значения тех или иных признаков для каждого нейрона.
4. Тестирование и оценка эффективности
Последний, но не менее важный этап, подтверждающий качество работы модели.
- Использование метрик качества кластеризации: Для оценки соответствия построенной структуры данных используются различные метрики качества кластеризации (подробнее см. следующий раздел). Эти метрики помогают количественно оценить, насколько хорошо сеть справилась с задачей кластеризации и сохранила топологические свойства данных.
- Корректировка и оптимизация: После получения и анализа результатов возможна корректировка выбранной метрики и метода кластеризации. Если результаты неудовлетворительны, может потребоваться пересмотреть параметры сети (количество нейронов, начальные значения η и σ, функцию соседства) или даже вернуться к этапу подготовки данных. Этот итерационный процесс продолжается до получения оптимального результата.
- Тестирование моделей: При реализации на Python с использованием TensorFlow, тестирование может включать использование алгоритмов ресэмплинга (например, кросс-валидации) и оценку точности прогнозирования класса объектов (если SOM используется как часть более сложной системы классификации). Python выбирается для таких реализаций благодаря его читаемому синтаксису и обширной экосистеме, а TensorFlow — для построения и обучения нейронных сетей благодаря гибкости и высокой производительности.
Следуя этим этапам, можно разработать, реализовать и эффективно протестировать программу для обучения нейронной сети по алгоритму Кохонена, добиваясь надёжных и интерпретируемых результатов.
Метрики и методы оценки эффективности обучения и качества кластеризации
Оценка качества кластеризации является более сложной задачей по сравнению с оценкой качества классификации, поскольку в кластеризации, как правило, отсутствуют «истинные» метки объектов. Это означает, что нет прямого «правильного ответа», с которым можно было бы сравнить результаты. Поэтому для оценки эффективности SOM используются специфические метрики, которые делятся на внутренние (использующие только данные) и внешние (использующие дополнительную информацию, если она доступна).
Внутренние меры оценки
Внутренние метрики оценивают качество кластеризации, основываясь исключительно на структуре данных и результатах самой кластеризации, не требуя предварительно размеченных классов. Для SOM основными внутренними метриками являются:
- Ошибка квантования (Quantization Error, QE):
- Описание: Это среднее расстояние между каждой точкой данных из входного набора и её нейроном-победителем (BMU) на карте. QE характеризует точность отображения данных, показывая, насколько хорошо каждый входной вектор «представлен» ближайшим нейроном на карте. Чем меньше QE, тем точнее карта воспроизводит исходное распределение данных.
- Интерпретация: Высокая QE может указывать на то, что карта недостаточно детализирована (слишком мало нейронов) или плохо обучена.
- Формула:
QE = (1/N) Σk=1N ||xk - wBMU(xk)||
Где N — количество входных векторов, xk — k-й входной вектор, wBMU(xk) — весовой вектор нейрона-победителя для xk, ||.|| — евклидово расстояние.
- Топографическая ошибка (Topographic Error, TE):
- Описание: Измеряет, насколько хорошо карта сохраняет топологический порядок входных данных. TE — это доля всех входных данных, для которых первый и второй нейроны-победители (BMU) не являются соседними на карте. Идеальная топология подразумевает, что если два входных вектора близки в исходном пространстве, то их BMU должны быть либо одним и тем же нейроном, либо соседними на карте.
- Интерпретация: Низкая TE свидетельствует о хорошем сохранении топологических отношений, то есть карта корректно проецирует структуру данных. Высокая TE может указывать на то, что карта искажает топологию, что может быть результатом некорректных параметров обучения или неподходящей архитектуры.
- Формула:
TE = (1/N) Σk=1N I(BMU1(xk), BMU2(xk))
Где I(.) — индикаторная функция, которая равна 1, если BMU1 и BMU2 для xk не являются соседями, и 0 в противном случае.
- Коэффициент Силуэта (Silhouette Coefficient):
- Описание: Предложенный Питером Руссо в 1987 году, Коэффициент Силуэта — это метрика, которая оценивает, насколько хорошо объект соответствует своему кластеру по сравнению с другими кластерами. Он измеряет плотность и разделённость кластеров.
- Расчёт: Для каждого объекта i вычисляются два значения:
- a(i): Среднее расстояние от i до всех других объектов в том же кластере. Это мера «сплочённости» объекта со своим кластером.
- b(i): Минимальное среднее расстояние от i до объектов в любом другом кластере (то есть до ближайшего «соседнего» кластера). Это мера «отделённости» объекта от других кластеров.
Коэффициент Силуэта для объекта i вычисляется как:
S(i) = (b(i) - a(i)) / max(a(i), b(i)) - Диапазон и интерпретация: Значения коэффициента Силуэта находятся в диапазоне от -1 до 1:
- 1: Означает, что кластеры плотные и хорошо разделены.
- 0: Указывает на наложение кластеров или их неопределённость.
- -1: Свидетельствует о плохой кластеризации, когда объект, скорее всего, был отнесён не к своему кластеру.
Общий коэффициент Силуэта для всего набора данных — это среднее значение S(i) по всем объектам.
- Индекс Данна (Dunn Index) и обобщённый Индекс Данна (Generalized Dunn Index):
- Описание: Индекс Данна измеряет соотношение между минимальным расстоянием между кластерами и максимальным диаметром кластера.
- Принцип: Чем больше значение индекса Данна, тем лучше кластеризация. Это означает, что кластеры компактны (малый диаметр) и хорошо отделимы друг от друга (большое расстояние между ними).
- Формула (базовый вид):
DI = mini≠j (dist(Ci, Cj)) / maxk (diam(Ck))
Где dist(Ci, Cj) — расстояние между кластерами Ci и Cj, а diam(Ck) — диаметр кластера Ck (максимальное расстояние между любыми двумя точками внутри кластера).
- Индекс Дэвиса-Болдина (Davies-Bouldin Index):
- Описание: Метрика, которая вычисляется как среднее значение «схожести» каждого кластера с его наиболее похожим кластером. «Схожесть» определяется как отношение внутрикластерного расстояния к межкластерному расстоянию.
- Принцип: Чем меньше значение индекса Дэвиса-Болдина, тем лучше кластеризация. Это указывает на то, что кластеры более компактны (малое внутрикластерное расстояние) и дальше друг от друга (большое межкластерное расстояние).
Внешние меры оценки и меры близости
- Внешние меры оценки: Используются, когда доступны некоторые дополнительные знания о кластеризуемом множестве, например, о «истинном» распределении по кластерам или количестве кластеров. Примерами таких мер являются F-мера, Adjusted Rand Index, Normalized Mutual Information. Они сравнивают полученную кластеризацию с эталонной, но в контексте SOM, где обучение идёт без учителя, они применяются реже, если только нет доступных эталонных меток для валидации.
- Меры близости (функции расстояния): Лежат в основе всех алгоритмов кластеризации, включая SOM, поскольку определяют, насколько объекты схожи.
- Евклидово расстояние: Наиболее распространённая метрика, вычисляющая прямое расстояние в многомерном пространстве.
- Квадрат евклидова расстояния: Усиливает влияние больших различий, часто используется для избегания операции извлечения квадратного корня.
- Манхэттенское расстояние (L1-норма): Сумма абсолютных разностей координат. Менее чувствительно к выбросам.
- Расстояние Чебышева (L-бесконечность норма): Максимальная разница по одной из координат.
- Расстояние Минковского: Обобщение евклидова и манхэттенского расстояний.
- Косинусная мера близости: Популярная альтернатива евклидовой метрике, особенно в задачах анализа текстов и высокоразмерных данных. Измеряет косинус угла между двумя векторами, что указывает на их направление, а не на величину. Чем ближе косинус к 1, тем более схожи векторы по направлению.
Выбор метрик для оценки качества SOM зависит от конкретной задачи и доступности эталонных данных. Комбинирование нескольких внутренних метрик позволяет получить более полное представление о качестве и топологической корректности обученной карты.
Прикладные задачи и области применения нейронных сетей Кохонена
Самоорганизующиеся карты Кохонена, благодаря своей способности к обучению без учителя и сохранению топологического порядка данных, нашли широкое применение в самых разнообразных областях. Их универсальность позволяет решать задачи, начиная от визуализации и заканчивая сложным анализом данных.
- Классификация без учителя и кластеризация: Это наиболее распространённое применение SOM. Сети Кохонена идеально подходят для задачи разбиения конечного множества объектов на группы (кластеры) по их взаимной близости. Они эффективно выявляют естественные группировки в неразмеченных данных, что особенно ценно в условиях, когда заранее неизвестно количество классов или их характеристики. Например, в маркетинге SOM может кластеризовать клиентов по их покупательскому поведению, а в биологии — группы генов по их экспрессии.
- Разведочный анализ данных и обнаружение новых явлений: SOM превращают хаотичные многомерные данные в упорядоченную двумерную карту, что позволяет исследователям визуализировать скрытые закономерности и структуры. На карте схожие паттерны группируются вместе, облегчая обнаружение аномалий, необычных трендов или новых, ранее неизвестных явлений. Это незаменимый инструмент для предварительного анализа больших массивов информации.
- Применение в финансовой сфере:
- Анализ заёмщиков: В банковском секторе SOM может кластеризовать заёмщиков со схожими характеристиками (доход, кредитная история, возраст) в один кластер. Это позволяет банкам применять для них одинаковые правила выдачи кредита, оптимизировать скоринг-модели и принимать более обоснованные решения.
- Торговые советники: В области высокочастотного трейдинга и алгоритмической торговли, как демонстрируется в реализации торговых советников MQL5, SOM могут анализировать огромные объёмы рыночных данных. Они способны выявлять повторяющиеся паттерны движения цен, объёмов и индикаторов, упорядочивая их на карте. Это помогает принимать решения о покупке или продаже активов, основываясь на распознанных рыночных состояниях.
- Распознавание образов и обработка сигналов: SOM используются для снижения размерности данных и выделения ключевых признаков в изображениях и звуковых сигналах. Они могут кластеризовать схожие фрагменты изображений или звуков, что полезно для систем распознавания речи, идентификации объектов на изображениях или медицинской диагностики (например, анализ ЭКГ или МРТ).
- Прогнозирование: Сети Кохонена могут применяться для прогнозирования различных явлений. Например, их используют для прогнозирования природных катастроф, таких как селевые потоки. Карта может анализировать метеорологические данные, данные о почве и осадках, выявляя условия, предшествующие селям, и тем самым помогая в создании систем раннего оповещения.
- Медицина и биоинформатика: В медицине SOM помогают кластеризовать пациентов по симптомам, реакциям на лечение или генетическим профилям, что способствует персонализированной медицине. В биоинформатике они используются для анализа экспрессии генов, классификации белков и поиска связей между различными биологическими данными.
- Обнаружение аномалий: Это критически важное применение SOM. Обученная карта распознает кластеры в обучающих данных. Если на неё подаются новые данные, непохожие ни на один из известных образцов или кластеров, она не может их классифицировать. Это отсутствие «соответствия» на карте сигнализирует об аномалии. Такой механизм применяется для выявления мошеннических транзакций, атак на компьютерные сети, дефектов производства или необычных медицинских показателей.
Таким образом, нейронные сети Кохонена представляют собой мощный и гибкий инструмент для интеллектуального анализа данных, способный находить порядок в сложных и высокоразмерных информационных пространствах, а также выявлять уникальные паттерны и аномалии, что делает их незаменимыми во многих научных и прикладных областях.
Проблемы, ограничения и методы их преодоления при работе с SOM
Несмотря на все свои преимущества, самоорганизующиеся карты Кохонена не лишены определённых проблем и ограничений. Понимание этих трудностей и знание методов их преодоления является критически важным для успешной практической реализации и получения надёжных результатов.
Проблема «мертвых нейронов»
Одна из наиболее распространённых проблем при работе с SOM — это возникновение так называемых «мёртвых нейронов».
- Описание проблемы: «Мёртвые нейроны» — это нейроны на карте Кохонена, которые, даже при длительном и многоэпоховом обучении, никогда не становятся нейронами-победителями (BMU) и, следовательно, не участвуют в процессе обучения. Их веса остаются неизменными или почти неизменными, и они не выполняют никакой полезной функции в кластеризации или отображении данных.
- Причины возникновения: Проблема возникает, когда веса нейронов слишком удалены от всех входных векторов в обучающей выборке. В результате, независимо от подаваемого входного сигнала, расстояние до этих нейронов всегда будет больше, чем до других нейронов. Они оказываются в «мёртвых зонах» пространства признаков, где нет входных данных, или же их соседи постоянно «перетягивают» веса в свою сторону, не давая «мёртвому» нейрону возможности приблизиться к какому-либо кластеру.
- Методы преодоления: Для борьбы с проблемой «мертвых нейронов» используются различные стратегии:
- Смещение нейронов: Один из подходов заключается в периодическом перемещении весов неактивных нейронов (тех, которые долгое время не были BMU) в области с высокой плотностью входных данных. Это даёт им «второй шанс» стать нейронами-победителями. При обучении смещение нейронов-победителей уменьшается, а смещение остальных нейронов увеличивается, что позволяет увеличить диапазон допустимых входных значений для неактивных нейронов.
- Метод выпуклой комбинации: Вместо случайной инициализации, начальные веса могут быть инициализированы как выпуклая комбинация случайных входных векторов. Это гарантирует, что веса изначально будут находиться в пределах пространства, занимаемого входными данными.
- Добавление шумов к входным векторам: Небольшой шум, добавляемый к входным векторам на этапе обучения, может помочь «вытянуть» веса «мёртвых» нейронов из их пассивного состояния. Это позволяет каждому нейрону в конечном итоге «захватить» свой весовой вектор и активно участвовать в формировании карты.
- Правильная инициализация весов: Более тщательно продуманная начальная инициализация, например, с использованием главных компонент или случайных выборок из входных данных, может значительно снизить вероятность появления «мёртвых нейронов».
- Изменение параметров обучения: Иногда изменение скорости обучения или радиуса соседства на определённых этапах может помочь оживить нейроны.
Интерпретация топологии и выбор параметров
Помимо «мёртвых нейронов», существуют и другие трудности, связанные с настройкой и интерпретацией SOM:
- Трудности смысловой интерпретации топологии сети: Основная трудность применения SOM заключается в смысловой интерпретации топологии сети и связывании её отдельных участков с конкретными обобщениями из предметной области. Особенно это актуально при высокой размерности исходных данных. Когда входные данные имеют десятки или сотни признаков, становится крайне сложно понять, какие именно признаки определяют формирующиеся на карте кластеры и почему определённые области карты схожи или различны. Для преодоления этой проблемы используются визуализационные методы, такие как U-Matrix, плоскости компонентов (component planes), которые показывают распределение значений каждого признака по карте, а также методы постобработки для выделения и наименования кластеров.
- Важность правильного выбора параметров: Эффективность SOM крайне чувствительна к правильному выбору начального приближения для весов, скорости обучения сети и функции соседства между нейронами.
- Начальные веса: Неудачная инициализация может привести к медленной сходимости или к появлению «мёртвых нейронов».
- Скорость обучения (η): Слишком высокая скорость может привести к нестабильности, слишком низкая — к медленному обучению и застреванию в локальных минимумах.
- Функция соседства (h): Неправильный выбор радиуса соседства или его динамики может исказить топологию карты или привести к плохому сохранению локальных отношений.
Решение этих проблем часто требует эмпирического подбора параметров, многократного обучения и тестирования, а также глубокого понимания как алгоритма, так и предметной области. Современные программные средства и библиотеки предлагают инструменты для упрощения этого процесса, но роль аналитика в интерпретации и валидации результатов остаётся ключевой. Неужели эти сложности настолько велики, что перечёркивают все преимущества SOM?
Заключение
В рамках данного исследования мы совершили глубокое погружение в мир нейронных сетей Кохонена, от их теоретических основ до практической реализации и оценки эффективности. Мы выяснили, что самоорганизующиеся карты (SOM), разработанные Теуво Кохоненом, представляют собой уникальный и мощный класс нейронных сетей, способных к обучению без учителя. Их ключевая особенность — способность трансформировать сложные многомерные данные в наглядную двумерную карту, сохраняя при этом топологические отношения между объектами.
Мы детально рассмотрели двухслойную архитектуру SOM, проанализировали важность выбора шестиугольной топологии для корректности визуализации и изучили принцип «победитель получает всё». Особое внимание было уделено математическим основам алгоритма обучения, включая инициализацию весов, пошаговый итерационный процесс с вычислением евклидова расстояния и определением нейрона-победителя. Мы подробно разобрали формулу обновления весов, роль функции соседства (особенно Гауссовой) и динамику скорости обучения, подчеркнув, как эти параметры влияют на процесс самоорганизации карты.
Практическая реализация алгоритма была проанализирована через призму ведущих программных средств, таких как MATLAB (с его Neural Network Toolbox и дополнительными пакетами), аналитическая платформа Deductor (с её уникальными возможностями визуализации и обнаружения аномалий) и обширная экосистема Python-библиотек (sklearn-som, lightSOM, sompy, TensorFlow). Сравнительный анализ этих инструментов выявил их сильные стороны и области применения, позволяя сделать осознанный выбор для конкретной задачи.
Мы также систематизировали основные этапы разработки программы, начиная от критически важной подготовки и нормализации данных, через инициализацию и конфигурацию сети, и заканчивая итерационным обучением. Отдельное внимание было уделено метрикам и методам оценки эффективности, таким как ошибка квантования, топографическая ошибка, коэффициент Силуэта, Индекс Данна и Индекс Дэвиса-Болдина, что позволяет объективно судить о качестве кластеризации и сохранении топологии.
Наконец, были рассмотрены прикладные задачи, демонстрирующие широту применения SOM — от кластеризации заёмщиков и анализа рыночных данных до распознавания образов и обнаружения аномалий. Мы также обсудили типовые проблемы, такие как «мёртвые нейроны» и сложности интерпретации высокоразмерных данных, предложив эффективные методы их преодоления.
В целом, детальное понимание алгоритмов, правильный выбор программных средств и тщательная настройка параметров являются фундаментом для успешной реализации и эффективного применения самоорганизующихся карт Кохонена. SOM продолжают оставаться незаменимым инструментом в арсенале аналитиков и исследователей, предоставляя мощные возможности для визуализации, кластеризации и извлечения ценных знаний из сложных и неструктурированных данных.
Список использованной литературы
- Галушкин, А. И. Нейронные сети: основы теории. Москва: Горячая линия -Телеком, 2012. 496 с.
- Асеева, Т. В. Системы искусственного интеллекта. Нейронные сети: конспект лекций. Тверь: Тверской гос. техн. ун-т, Каф. ЭВМ, 2006.
- Терехов, В. А., Ефимов, Д. В., Тюкин, И. Ю. Нейросетевые системы управления: учебное пособие для вузов по специальности «Управление и информатика в технических системах». Москва: Высшая школа, 2002. 183 с.
- Методические указания по лабораторным работам по дисциплине «Интеллектуальные информационные системы» на тему: «Нейронные сети в MATLAB 6.1» для специальностей 080801 «Прикладная информатика (в экономике)» и 230201 «Информационные системы и технологии». Тверь: Тверской гос. техн. ун-т, Каф. ИС, 2005. Разработчик: Семенов Н. А.
- Маслова А. Ю. Использование нейронной сети карты Кохонена для распознавания образов // Информационно-вычислительные технологии и их применение: сборник статей. Пенза, 2010. Ч. 2.
- Нейронные сети: история развития теории: учебное пособие для вузов по направлению «Прикладная математика и физика». Кн. 5. Под редакцией А. И. Галушкина, Я. З. Цыпкина. Москва: ИПРЖР, 2001. 840 с.
- Галушкин, А. И. Нейрокомпьютеры: учебное пособие для студентов по направлению «Прикладная математика и физика». Москва: Журнал «Радиотехника», 2000. 524 с.
- Самоорганизующиеся карты Кохонена (SOM) — Классификация, регрессия и другие алгоритмы Data Mining с использованием R.
- Сеть Кохонена (Kohonen network). URL: https://wiki.loginom.ru/articles/kohonen-network.html (дата обращения: 30.10.2025).
- Data Mining. Лекция 12: Нейронные сети. Самоорганизующиеся карты Кохонена. URL: https://www.intuit.ru/studies/courses/2301/409/lecture/9972?page=5 (дата обращения: 30.10.2025).
- Самоорганизующиеся карты Кохонена — математический аппарат. URL: https://wiki.loginom.ru/articles/kohonen-som-math.html (дата обращения: 30.10.2025).
- Карта Кохонена. URL: https://www.basegroup.ru/deductor/solutions/kohonen (дата обращения: 30.10.2025).
- Самоорганизующиеся карты Кохонена. URL: https://foresight.ru/solutions/self-organizing-maps-kohonen/ (дата обращения: 30.10.2025).
- ЛЕКЦИЯ. Нейронные сети Кохонена. URL: https://mipt.ru/upload/medialibrary/29e/neironnye-seti-kohonena.pdf (дата обращения: 30.10.2025).
- Сети и карты Кохонена — САМООРГАНИЗАЦИЯ В НЕЙРОННЫХ СЕТЯХ. URL: https://n-t.ru/tp/ii/sk.htm (дата обращения: 30.10.2025).
- Нейронная сеть Кохонена, самоорганизующиеся карты, обучение. MicroTechnics. URL: https://microtechnics.ru/nejronnaya-set-koxonena-samoorganizuyushhiesya-karty-obuchenie/ (дата обращения: 30.10.2025).
- Самоорганизующаяся карта Кохонена (алгоритм кластеризации). AlgoWiki. URL: https://algowiki-project.org/ru/%D0%A1%D0%B0%D0%BC%D0%BE%D1%80%D0%B3%D0%B0%D0%BD%D0%B8%D0%B7%D1%83%D1%8E%D1%89%D0%B0%D1%8F%D1%81%D1%8F_%D0%BA%D0%B0%D1%80%D1%82%D0%B0_%D0%9A%D0%BE%D1%85%D0%BE%D0%BD%D0%B5%D0%BD%D0%B0_(%D0%B0%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%BA%D0%BB%D0%B0%D1%81%D1%82%D0%B5%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8) (дата обращения: 30.10.2025).
- Построение самоорганизующейся карты Кохонена (SOM) для прогнозирования. Известия КБНЦ РАН, 2024, № 5, с. 131-139. URL: https://kbnc.ru/wp-content/uploads/2024/11/Izvestiya-KBNC-RAN-2024-5-131-139.pdf (дата обращения: 30.10.2025).
- MQL5: трейдинг, автоматические торговые системы, тестирование стратегий и технические индикаторы на MetaTrader. URL: https://www.mql5.com/ru/articles/10948 (дата обращения: 30.10.2025).
- АНАЛИЗ СТРУКТУРЫ САМООРГАНИЗУЮЩИХСЯ КАРТ КОХОНЕНА. Актуальные направления научных исследований XXI века. Studref.com. URL: https://studref.com/495039/informatika/analiz_struktury_samoorganizuyuschihsya_kart_kohonena (дата обращения: 30.10.2025).
- Нейронная сеть Кохонена. MachineLearning.ru. URL: https://www.machinelearning.ru/wiki/index.php?title=%D0%9D%D0%B5%D0%B9%D1%80%D0%BE%D0%BD%D0%BD%D0%B0%D1%8F_%D1%81%D0%B5%D1%82%D1%8C_%D0%9A%D0%BE%D1%85%D0%BE%D0%BD%D0%B5%D0%BD%D0%B0 (дата обращения: 30.10.2025).
- Kohonen and CPANN toolbox for MATLAB. File Exchange. MathWorks. URL: https://www.mathworks.com/matlabcentral/fileexchange/24699-kohonen-and-cpann-toolbox-for-matlab (дата обращения: 30.10.2025).
- Kohonen and CPANN toolbox for MATLAB. Zenodo. URL: https://zenodo.org/record/4915993 (дата обращения: 30.10.2025).
- Kohonen and CPANN Toolbox (for Matlab). Milano Chemometrics and QSAR Research Group. URL: http://www.michem.unimib.it/somcpann/ (дата обращения: 30.10.2025).
- Neural Network Toolbox User’s Guide (MathWorks).
- Neural Network Toolbox™ 6 User’s Guide (MathWorks).
- Методы повышения эффективности обучения нейронной сети Кохонена. КиберЛенинка. URL: https://cyberleninka.ru/article/n/metody-povysheniya-effektivnosti-obucheniya-neyronnoy-seti-kohonena (дата обращения: 30.10.2025).
- ПРИМЕНЕНИЕ НЕЙРОННЫХ СЕТЕЙ ПРИ КЛАСТЕРИЗАЦИИ ДАННЫХ. Mathnet.RU. URL: http://www.mathnet.ru/php/archive.phtml?wshow=paper&jrnid=izvkbnc&paperid=1130&option_lang=rus (дата обращения: 30.10.2025).
- Кластеризатор на основе нейронной сети Кохонена.
- ПРИМЕНЕНИЕ РЕКУРРЕНТНОЙ НЕЙРОННОЙ СЕТИ ДЛЯ РЕШЕНИЯ ЗАДАЧИ КЛАСТЕРИЗАЦИИ. CORE. URL: https://core.ac.uk/download/pdf/197171542.pdf (дата обращения: 30.10.2025).
- sklearn-som. PyPI. URL: https://pypi.org/project/sklearn-som/ (дата обращения: 30.10.2025).
- lightSOM. PyPI. URL: https://pypi.org/project/lightSOM/ (дата обращения: 30.10.2025).
- sompy. PyPI. URL: https://pypi.org/project/sompy/ (дата обращения: 30.10.2025).
- sklearn-som v. 1.1.0 — sklearn-som 0.0.1 documentation. URL: https://sklearn-som.readthedocs.io/en/latest/ (дата обращения: 30.10.2025).
- ПРИМЕНЕНИЕ КАРТЫ КОХОНЕНА ДЛЯ АНАЛИЗА СТАТИСТИЧЕСКИХ ДАННЫХ РЕГИОНОВ ДЛЯ ПОДДЕРЖКИ ПРИНЯТИЯ РЕШЕНИЙ ПО ИХ ОПТИМИЗАЦИИ. КиберЛенинка. URL: https://cyberleninka.ru/article/n/primenenie-karty-kohonena-dlya-analiza-statisticheskih-dannyh-regionov-dlya-podderzhki-prinyatiya-resheniy-po-ih-optimizatsii (дата обращения: 30.10.2025).
- Кластеризация. Яндекс Образование. URL: https://yandex.ru/support/education/data-science/ml-clustering.html (дата обращения: 30.10.2025).
- Мастер-класс: Самоорганизующиеся карты Кохонена: Руководство по исследованию данных с помощью Python.