From 670035ac30a0cc639094f5590cdbb24269b91fc4 Mon Sep 17 00:00:00 2001 From: Dmitry Date: Thu, 7 May 2026 22:48:05 +0300 Subject: [PATCH] vault backup: 2026-05-07 22:48:05 --- .obsidian/workspace.json | 8 +- .../Алгоритм обучения сети Кохонена.md | 91 +++++++++++++++++++ .../Нейронная сеть Кохонена.md | 61 +++++++++++++ .../Алгоритм обучения сети Кохонена.md | 2 +- .../Archive}/Нейронная сеть Кохонена.md | 0 5 files changed, 157 insertions(+), 5 deletions(-) create mode 100644 01 Library/11 Machine Learning/Алгоритм обучения сети Кохонена.md create mode 100644 01 Library/11 Machine Learning/Нейронная сеть Кохонена.md rename {00 Inbox => 99 System/Archive}/Алгоритм обучения сети Кохонена.md (96%) rename {00 Inbox => 99 System/Archive}/Нейронная сеть Кохонена.md (100%) diff --git a/.obsidian/workspace.json b/.obsidian/workspace.json index 78548b5..42bc9ab 100644 --- a/.obsidian/workspace.json +++ b/.obsidian/workspace.json @@ -257,6 +257,10 @@ }, "active": "cb9f1037ae0492db", "lastOpenFiles": [ + "01 Library/11 Machine Learning/Алгоритм обучения сети Кохонена.md", + "01 Library/11 Machine Learning/Нейронная сеть Кохонена.md", + "99 System/Archive/Алгоритм обучения сети Кохонена.md", + "99 System/Archive/Нейронная сеть Кохонена.md", "00 Inbox/Алгоритм обучения сети Кохонена.md", "00 Inbox/Untitled.md", "99 System/Cache/Pasted image 20260507222244.png", @@ -282,10 +286,6 @@ "01 Library/07 HomeLab/Проблемы дистрибутивов.md", "01 Library/02 DevOps/Контейнеризация/Docker/Docker - Дополнительные знания.md", "01 Library/02 DevOps/Контейнеризация/Docker/Основы - Docker.md", - "01 Library/01 Admin/CA и NGINX.md", - "CODEX.md", - "99 System/Archive/Шаблонизатор Helm.md", - "99 System/Archive/УИР.md", "00 Inbox/Archive", "01 Library/03 Math/Теория нечетких множеств/Теория нечетких множеств.md.tmp.254945.1777751883191", "01 Library/02 DevOps/Ansible/Ansible - основы.md.tmp.254945.1777751876503", diff --git a/01 Library/11 Machine Learning/Алгоритм обучения сети Кохонена.md b/01 Library/11 Machine Learning/Алгоритм обучения сети Кохонена.md new file mode 100644 index 0000000..a983396 --- /dev/null +++ b/01 Library/11 Machine Learning/Алгоритм обучения сети Кохонена.md @@ -0,0 +1,91 @@ +--- +status: seed +type: concept +tags: + - machine-learning + - neural-networks + - clustering + - self-organizing-maps +created: 2026-05-07 +updated: 2026-05-07 +title: Алгоритм обучения сети Кохонена +--- + +# Алгоритм обучения сети Кохонена + +**Алгоритм обучения сети Кохонена** - процедура самообучения, при которой нейроны топологической карты постепенно становятся прототипами групп похожих входных объектов. Алгоритм относится к [[Нейронная сеть Кохонена|сетям Кохонена]] и связан с задачами [[Кластерный анализ|кластеризации]]. + +## Общая схема + +1. Инициализировать веса нейронов небольшими случайными значениями. +2. Подать на вход очередной обучающий объект. +3. Найти нейрон-победитель, чей вектор весов лучше всего соответствует входному вектору. +4. Скорректировать веса нейрона-победителя и, в классической SOM, нейронов из его окрестности. +5. Повторять предъявление объектов до стабилизации карты или достижения заданного числа эпох. + +Базовая формула корректировки веса: + +$$ +w_{ij}(t)=w_{ij}(t-1)+\alpha(x_i-w_{ij}(t-1)) +$$ + +где: + +- $w_{ij}$ - вес связи между входом $i$ и нейроном $j$; +- $x_i$ - значение входного признака; +- $\alpha$ - скорость обучения; +- $t$ - номер шага обучения. + +## Выбор нейрона-победителя + +Нейрон-победитель можно выбирать через меру близости входного вектора и вектора весов нейрона. + +### Через скалярное произведение + +Если векторы нормализованы, близость можно оценивать скалярным произведением: + +$$ +S_j=\sum\limits_{i=1}^{m}x_iw_{ij}=||x||\cdot||w^j||\cdot cos(\phi) +$$ + +Побеждает нейрон с максимальным значением $S_j$. + +### Через евклидово расстояние + +Чаще победителем считают нейрон с минимальным расстоянием до входного объекта: + +$$ +D_j=\sqrt{\sum\limits_{i=1}^{m}(x_i-w_{ij})^2} +$$ + +где $j$ - индекс нейрона, $i$ - индекс входного признака, $m$ - размерность входного вектора. + +Такой способ напрямую связан с заметкой [[Расстояние между объектами]]. + +## Нормализация + +Перед обучением часто нормализуют входные данные и начальные веса, чтобы признаки с крупным масштабом не доминировали при выборе победителя. + +Нормализация входного вектора: + +$$ +x_j=\frac{x_j}{\sqrt{\sum\limits_{l=1}^{m}x_l^2}} +$$ + +Нормализация весов: + +$$ +w_{ij}=\frac{w_{ij}}{\sqrt{\sum\limits_{l=1}^{k}w_{lj}^2}} +$$ + +## Отличие от K-means + +Алгоритм похож на [[Итерационная классификация. Метод K-средних (K-means)|K-means]] тем, что объект влияет на ближайший прототип. Главное отличие SOM - наличие топологической карты: обновляется не только победитель, но и его соседи, поэтому карта сохраняет отношения близости между областями данных. + +## Связанные заметки + +- [[Нейронная сеть Кохонена]] +- [[Нейронные сети]] +- [[Кластерный анализ]] +- [[Расстояние между объектами]] +- [[Итерационная классификация. Метод K-средних (K-means)]] diff --git a/01 Library/11 Machine Learning/Нейронная сеть Кохонена.md b/01 Library/11 Machine Learning/Нейронная сеть Кохонена.md new file mode 100644 index 0000000..6217ede --- /dev/null +++ b/01 Library/11 Machine Learning/Нейронная сеть Кохонена.md @@ -0,0 +1,61 @@ +--- +status: seed +type: concept +tags: + - machine-learning + - neural-networks + - clustering + - self-organizing-maps +created: 2026-05-07 +updated: 2026-05-07 +title: Нейронная сеть Кохонена +--- + +# Нейронная сеть Кохонена + +**Нейронная сеть Кохонена** - класс нейронных сетей, основанный на самоорганизующихся картах (*Self-Organizing Maps*, SOM). Такие сети применяются для [[Кластерный анализ|кластеризации]] и проецирования многомерных данных на пространство меньшей размерности с сохранением топологической близости объектов. + +Если два объекта близки в исходном пространстве признаков, после обучения они обычно попадают в близкие области карты. Поэтому сеть Кохонена удобна не только для разбиения данных на группы, но и для визуального анализа структуры выборки. + +## Идея + +Сеть Кохонена объединяет две задачи: + +1. Выделение кластеров в многомерных данных. +2. Отображение многомерных объектов на двумерную или одномерную карту. + +В отличие от многих сетей, обучающихся с учителем, сеть Кохонена обычно работает в режиме самообучения: ей предъявляют входные объекты, а сеть постепенно настраивает веса нейронов так, чтобы разные области карты отвечали за разные группы похожих объектов. + +## Архитектура + +Сеть состоит из двух основных слоев: + +- **входной слой** - принимает вектор признаков объекта; +- **выходной слой** - содержит нейроны топологической карты. + +Каждый нейрон выходного слоя связан со всеми входными признаками и имеет собственный вектор весов. Количество нейронов выходного слоя связано с желаемой детализацией карты и числом обнаруживаемых областей данных. + +![[Pasted image 20260507222244.png|500]] + +## Обучение + +Обучение сети Кохонена сводится к последовательной подстройке весов. На каждом шаге сети предъявляется входной объект, после чего выбирается нейрон-победитель - нейрон, чей вектор весов ближе всего к входному вектору. + +После выбора победителя корректируются: + +- веса самого нейрона-победителя; +- веса нейронов, лежащих в его окрестности на карте. + +Подробная процедура вынесена в [[Алгоритм обучения сети Кохонена]]. + +## Связь с кластеризацией + +По смыслу сеть Кохонена близка к итерационным методам кластеризации: веса нейронов играют роль прототипов групп, а входные объекты притягивают ближайшие прототипы к себе. Поэтому рядом полезно держать заметки про [[Кластерный анализ]], [[Классификация]] и [[Итерационная классификация. Метод K-средних (K-means)]]. + +## Связанные заметки + +- [[Нейронные сети]] +- [[Алгоритм обучения сети Кохонена]] +- [[Кластерный анализ]] +- [[Классификация]] +- [[Итерационная классификация. Метод K-средних (K-means)]] diff --git a/00 Inbox/Алгоритм обучения сети Кохонена.md b/99 System/Archive/Алгоритм обучения сети Кохонена.md similarity index 96% rename from 00 Inbox/Алгоритм обучения сети Кохонена.md rename to 99 System/Archive/Алгоритм обучения сети Кохонена.md index 807ac2c..f3bc027 100644 --- a/00 Inbox/Алгоритм обучения сети Кохонена.md +++ b/99 System/Archive/Алгоритм обучения сети Кохонена.md @@ -25,4 +25,4 @@ $j$ - индекс нейрона, $i$ - индекс входа, $w_{ij}$ - в ## Нормализация входных значений При использовании обучения по алгоритму Кохонена на стадии инициализации существует практика нормализации: - входных образов$$x_{j}=\frac{x_{j}}{\sqrt{\sum\limits_{l=1}^{m}x_{l}^{2}}}$$ -- начальных значений весовых коэффициентов$$w_{ij}=w_{ij}/\sqrt{\sum\limits_{l=1}^}$$ \ No newline at end of file +- начальных значений весовых коэффициентов$$w_{ij}=\frac{w_{ij}}{\sqrt{\sum\limits_{l=1}^{k}w_{lj}^{2}}}$$ diff --git a/00 Inbox/Нейронная сеть Кохонена.md b/99 System/Archive/Нейронная сеть Кохонена.md similarity index 100% rename from 00 Inbox/Нейронная сеть Кохонена.md rename to 99 System/Archive/Нейронная сеть Кохонена.md