vault backup: 2026-05-07 22:48:05
This commit is contained in:
Vendored
+4
-4
@@ -257,6 +257,10 @@
|
|||||||
},
|
},
|
||||||
"active": "cb9f1037ae0492db",
|
"active": "cb9f1037ae0492db",
|
||||||
"lastOpenFiles": [
|
"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/Алгоритм обучения сети Кохонена.md",
|
||||||
"00 Inbox/Untitled.md",
|
"00 Inbox/Untitled.md",
|
||||||
"99 System/Cache/Pasted image 20260507222244.png",
|
"99 System/Cache/Pasted image 20260507222244.png",
|
||||||
@@ -282,10 +286,6 @@
|
|||||||
"01 Library/07 HomeLab/Проблемы дистрибутивов.md",
|
"01 Library/07 HomeLab/Проблемы дистрибутивов.md",
|
||||||
"01 Library/02 DevOps/Контейнеризация/Docker/Docker - Дополнительные знания.md",
|
"01 Library/02 DevOps/Контейнеризация/Docker/Docker - Дополнительные знания.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",
|
"00 Inbox/Archive",
|
||||||
"01 Library/03 Math/Теория нечетких множеств/Теория нечетких множеств.md.tmp.254945.1777751883191",
|
"01 Library/03 Math/Теория нечетких множеств/Теория нечетких множеств.md.tmp.254945.1777751883191",
|
||||||
"01 Library/02 DevOps/Ansible/Ansible - основы.md.tmp.254945.1777751876503",
|
"01 Library/02 DevOps/Ansible/Ansible - основы.md.tmp.254945.1777751876503",
|
||||||
|
|||||||
@@ -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)]]
|
||||||
@@ -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)]]
|
||||||
+1
-1
@@ -25,4 +25,4 @@ $j$ - индекс нейрона, $i$ - индекс входа, $w_{ij}$ - в
|
|||||||
## Нормализация входных значений
|
## Нормализация входных значений
|
||||||
При использовании обучения по алгоритму Кохонена на стадии инициализации существует практика нормализации:
|
При использовании обучения по алгоритму Кохонена на стадии инициализации существует практика нормализации:
|
||||||
- входных образов$$x_{j}=\frac{x_{j}}{\sqrt{\sum\limits_{l=1}^{m}x_{l}^{2}}}$$
|
- входных образов$$x_{j}=\frac{x_{j}}{\sqrt{\sum\limits_{l=1}^{m}x_{l}^{2}}}$$
|
||||||
- начальных значений весовых коэффициентов$$w_{ij}=w_{ij}/\sqrt{\sum\limits_{l=1}^}$$
|
- начальных значений весовых коэффициентов$$w_{ij}=\frac{w_{ij}}{\sqrt{\sum\limits_{l=1}^{k}w_{lj}^{2}}}$$
|
||||||
Reference in New Issue
Block a user