Участник:Emaksimov/Кластеризация сетями Кохонена: различия между версиями
Emaksimov (обсуждение | вклад) |
|||
Строка 29: | Строка 29: | ||
<center> <math> ||x(t)-w_c||=\min\limits_{i}(||x(t)-w_i(t)||)</math> </center>. | <center> <math> ||x(t)-w_c||=\min\limits_{i}(||x(t)-w_i(t)||)</math> </center>. | ||
# Веса всех нейронов обновляются по формуле: <math> w_i(t+1)=w_i(t)+\alpha(t)h_{ic}(t)||x(t)-w_i(t)||</math>, где | # Веса всех нейронов обновляются по формуле: <math> w_i(t+1)=w_i(t)+\alpha(t)h_{ic}(t)||x(t)-w_i(t)||</math>, где | ||
− | <math>t</math> - номер эпохи, <math> h_{ic}(t)</math>- функция соседства нейронов | + | <math>t</math> - номер эпохи, <math> h_{ic}(t)</math>- функция соседства нейронов, |
<math>\alpha (t)</math> - функция скорости обучения сети. | <math>\alpha (t)</math> - функция скорости обучения сети. | ||
Строка 38: | Строка 38: | ||
Инициализация примерами, когда в качестве начальных значений задаются значения случайно выбранных примеров из обучающей выборки. | Инициализация примерами, когда в качестве начальных значений задаются значения случайно выбранных примеров из обучающей выборки. | ||
− | ''' | + | '''Функция соседства нейронов''' |
+ | |||
+ | |||
+ | \begin{equation*} | ||
+ | X(\omega) = | ||
+ | \begin{cases} | ||
+ | 1 &\text{se $\omega\in A$}\\ | ||
+ | 1250 &\text{se $\omega \in A^c$} | ||
+ | \end{cases} | ||
+ | \end{equation*} | ||
Часто в качестве функции соседства используется гауссовская функция: | Часто в качестве функции соседства используется гауссовская функция: |
Версия 00:23, 15 октября 2016
Кластеризация сетями Кохонена
Содержание
- 1 Свойства и структура алгоритма
- 1.1 Общее описание алгоритма
- 1.2 Математическое описание алгоритма
- 1.3 Вычислительное ядро алгоритма
- 1.4 Макроструктура алгоритма
- 1.5 Схема реализации последовательного алгоритма
- 1.6 Последовательная сложность алгоритма
- 1.7 Информационный граф
- 1.8 Ресурс параллелизма алгоритма
- 1.9 Входные и выходные данные алгоритма
- 1.10 Свойства алгоритма
1 Свойства и структура алгоритма
1.1 Общее описание алгоритма
Искусственная нейронная сеть Кохонена или самоорганизующаяся карта признаков (SOM) была предложена финским исследователем Тойво Кохоненом в начале 1980-х годов.
Она представляет собой двухслойную сеть. Каждый нейрон первого (распределительного) слоя соединен со всеми нейронами второго (выходного) слоя, которые расположены в виде двумерной решетки. Нейроны выходного слоя называются кластерными элементами, их количество определят максимальное количество групп, на которые система может разделить входные данные. Увеличивая количество нейронов второго слоя можно увеличивать детализацию результатов процесса кластеризации.
Система работает по принципу соревнования – нейроны второго слоя соревнуются друг с другом за право наилучшим образом сочетаться с входным вектором сигналов, побеждает тот элемент-нейрон, чей вектор весов ближе всего к входному вектору сигналов. За меру близости двух векторов можно взять квадрат евклидова расстояния. Таким образом, каждый входной вектор относится к некоторому кластерному элементу.
Для обучения сети Кохонена используется соревновательный метод. На каждом шаге обучения из исходного набора данных случайно выбирается один вектор. Затем производится поиск нейрона выходного слоя, для которого расстояние между его вектором весов и входным вектором - минимально. По определённому правилу производится корректировка весов для нейрона-победителя и нейронов из его окрестности, которая задаётся соответствующей функцией окрестности.
1.2 Математическое описание алгоритма
Пусть имеется некоторое множество векторов x^{(i)}=(x_1^{(i)},x_2^{(i)},...,x_m^{(i)}) \in \mathbb{R}^m, i=1, \dots, k
Алгоритм обучения сети без учителя
Обучение состоит из последовательности коррекций векторов, представляющих собой нейроны. Сначала следует инициализировать векторы весов. Далее определенное количество раз (эпох) производятся следующие действия:
- Случайным образов выбирается вектор x(t)
из входных данных.
- Выбирается нейрон-победитель w_c
"наиболее похожий" (по евклидову расстоянию) на вектор x(t) :
































.
- Веса всех нейронов обновляются по формуле: w_i(t+1)=w_i(t)+\alpha(t)h_{ic}(t)||x(t)-w_i(t)||
, где
t
Инициализация начальных весов
Существуют два способа инициализации весовых коэффициентов: Инициализация случайными значениями, когда всем весам даются малые случайные величины. Инициализация примерами, когда в качестве начальных значений задаются значения случайно выбранных примеров из обучающей выборки.
Функция соседства нейронов
\begin{equation*}
X(\omega) =
\begin{cases} 1 &\text{se $\omega\in A$}\\ 1250 &\text{se $\omega \in A^c$} \end{cases}
\end{equation*}
Часто в качестве функции соседства используется гауссовская функция:
[math]h_{ci}(t)=\alpha(t)\cdot\exp(-\frac{\|r_c-r_k\|^2}{2\sigma^2(t)})[/math]
где 0\lt \alpha(t)\lt 1
r_k
\sigma(t)
Более простой способ задания функции соседства:
[math]h_{ci}(t)=\alpha(t)[/math],
если W_k(t)
1.3 Вычислительное ядро алгоритма
На каждом шаге обучения из входного множества случайно выбирается один из векторов, а затем производится поиск наиболее похожего на него вектора коэффициентов нейронов. Выбирается нейрон, наиболее похожий на входной вектор.
1.4 Макроструктура алгоритма
\mathbf{W} \leftarrow ComputeInitialWeights(\mathbf{W})
Далее следует цикл, повторяющийся T_{max}
- \mathbf{W_i} \leftarrow CalculateEucledeNorm(\mathbf{W_i})
- \mathbf{W_i(t+1)}\leftarrow CorrectWeights(\mathbf{W_i(t)})
1.5 Схема реализации последовательного алгоритма
\begin{align}
\mathbf{W} := InitializeWeights() \\
\mathbf{FOR} \ t := 1 \ \mathbf{TO} \ T_{max} \ \mathbf{DO} \\
\mathcal{B} \leftarrow ChooseRandomVector\left( \{1, \dots, N\} \right) \\
\mathbf{FOR} \ i := 1 \ \mathbf{TO} \ n \ \mathbf{DO} \\
CalculateEucledeNorm(\mathbf{W_i}) \\
\mathbf{W_i(t+1)} \leftarrow CorrectWeights(\mathbf{W_i(t)}) \\
\end{align}
1.6 Последовательная сложность алгоритма
1.7 Информационный граф
1.8 Ресурс параллелизма алгоритма
1.9 Входные и выходные данные алгоритма
Входные данные: множество входных векторов (нейронов первого уровня), множество кластеров (выходов, нейронов второго уровня), максимальное число "эпох" T_{max}
Выходные данные: матрица весов