Friday, July 1, 2022

How the self-organizing map of Kohonen works

 Созданная в 1982 году финским профессором и исследователем доктором Теуво Кохоненом, самоорганизующаяся карта представляет собой модель обучения без учителя, предназначенную для приложений, в которых важно поддерживать топологию между входными и выходными пространствами. Примечательной характеристикой этого алгоритма является то, что входные векторы, которые близки — похожи — в многомерном пространстве, также сопоставляются с соседними узлами в 2D-пространстве. По сути, это метод уменьшения размерности, поскольку он отображает входные данные большой размерности в низкое (обычно двумерное) дискретное представление и сохраняет основную структуру своего входного пространства.Ценной деталью является то, что все обучение происходит без присмотра, т. е. узлы самоорганизуются. Их также называют картами признаков, так как они, по сути, переобучают признаки входных данных и просто группируются в соответствии со сходством между собой. Это имеет прагматическое значение для визуализации сложных или больших объемов многомерных данных и представления отношений между ними в низком, обычно двумерном поле, чтобы увидеть, имеют ли данные немаркированные данные какую-либо структуру.

























Самоорганизующаяся карта (SOM) отличается от типичных ИНС как своей архитектурой, так и алгоритмическими свойствами. Во-первых, его структура состоит из однослойной линейной 2D-сетки нейронов, а не из серии слоев. Все узлы в этой сетке подключены непосредственно к входному вектору, но не друг к другу, что означает, что узлы не знают значений своих соседей и только обновляют вес своих соединений в зависимости от заданных входов. Сама сетка представляет собой карту, которая самоорганизуется на каждой итерации в зависимости от ввода входных данных. Таким образом, после кластеризации каждый узел имеет свою координату (i,j), что позволяет вычислить евклидово расстояние между двумя узлами с помощью теоремы Пифагора.
Кроме того, самоорганизующаяся карта использует конкурентное обучение, а не обучение с исправлением ошибок, чтобы скорректировать свой вес. Это означает, что каждая итерация активируется только одним узлом, в котором свойства включения вектора включают нейронную сеть, поскольку все обнаруживаются за право реакции на ввод.
Выбранный узел — Best Matching Unit (BMU) — выбирается в соответствие с подобием между текущими входными значениями и всеми комплектами в сетке.Узел с наименьшей евклидовой разностью между входным вектором и всеми узлами выбирается вместе с соседними узлами в определенных пределах радиуса, их положение было немного скорректировано, чтобы соответствовать входному вектору.
Проходя через все узлы, присутствующие в сетке, вся сетка в конечном итоге полностью соответствует набору входных данных, с похожими узлами, сгруппированными в одной области, и разнородными, разделенными.

















=============================
Переменные
t — текущая итерация
n - предел итераций, т.е. общее количество итераций, которые может пройти сеть.
λ - постоянная времени, используемая для уменьшения радиуса и скорости обучения.
i - координата строки сетки узлов
j - координата столбца сетки узлов
d - расстояние между узлом и BMU
w - весовой вектор
w_ij(t) — вес связи между узлами i,j в сетке и экземпляром входного вектора на итерации t
x - входной вектор
x(t) — экземпляр входного вектора на итерации t
α(t) — скорость обучения, уменьшающаяся со временем в интервале [0,1], чтобы обеспечить сходимость сети.
β_ij(t) — функция соседства, монотонно убывающая и представляющая узел i, расстояние j от BMU и влияние, которое он оказывает на обучение на шаге t.
σ(t) — радиус функции соседства, который определяет, насколько далеко проверяются соседние узлы в двумерной сетке при обновлении векторов. Со временем она постепенно снижается.
=========================
Алгоритм
1. Инициализировать вес каждого узла w_ij случайным значением
2. Выберите случайный входной вектор x_k
3. Повторите пункты 4 и 5 для всех узлов на карте:
4. Вычислите евклидово расстояние между входным вектором x(t) и весовым вектором w_ij, связанным с первым узлом, где t, i, j = 0.
5. Отследите узел, который дает наименьшее расстояние t.
6. Найдите общий Best Matching Unit (BMU), т.е. узел с наименьшим расстоянием от всех рассчитанных.
7. Определить топологическую окрестность βij(t) ее радиус σ(t) БМУ в карте Кохонена
8. Повторите для всех узлов в окрестности BMU: обновите весовой вектор w_ij первого узла в окрестности BMU, добавив долю разницы между входным вектором x(t) и весом w(t) нейрона.
9. Повторяйте всю эту итерацию до достижения выбранного предела итерации t=n
Шаг 1 — это фаза инициализации, а шаги 2–9 — фаза обучения.
===========================
Формулы
Обновление и изменение переменных выполняется по следующим формулам:
Веса в окрестности обновляются как:







Первое уравнение говорит нам, что новый обновленный вес w_ij (t + 1) для узла i, j равен сумме старого веса w_ij(t) и доли разницы между старым весом и входным вектором x( т). Другими словами, весовой вектор «перемещается» ближе к входному вектору. Еще один важный элемент, который следует отметить, заключается в том, что обновленный вес будет пропорционален двумерному расстоянию между узлами в радиусе соседства и BMU.
Кроме того, то же уравнение 3.1 не учитывает влияние обучения, пропорциональное расстоянию узла от BMU. Обновленный вес должен учитывать тот факт, что эффект обучения близок к нулю на окраинах района, поскольку объем обучения должен уменьшаться с расстоянием. Следовательно, второе уравнение добавляет дополнительный фактор функции соседства βij(t) и является более точным углубленным уравнением.

















Радиус и скорость обучения одинаково и экспоненциально затухают со временем.








Влияние функции соседства β_i(t) рассчитывается по формуле:








Евклидово расстояние между весовым вектором каждого узла и текущим входным экземпляром вычисляется по формуле Пифагора.












BMU выбирается из всех рассчитанных расстояний узла как тот, у которого наименьшее значение.













No comments:

Post a Comment