Сетями с самоорганизацией называются сети, не требующие для своего обучения "учителя" и самостоятельно адаптирующие свои веса под обучающие данные. Такие сети строятся из нейронов типа WTA и подобных им. Как правило, это однослойные сети, в которых каждый нейрон получает все компоненты входного вектора размерностью . На рис. 1 представлена структурная схема такой сети.
Рис. 1.  Структурная схема однослойные сети на базе нейронов типа WTA
Веса входных связей -ого нейрона образуют вектор

Кроме связей, явно представленных в схеме, на этапе обучения имеют место связи между нейронами, позволяющие судить о степени "соседства" нейронов друг с другом, при этом смысл понятия "соседство" может быть разным. Такие сети часто требуют нормализации значений входного вектора.
Укрупненно процесс обучения сети выглядит следующим образом. На вход сети подается обучающий вектор , для каждого нейрона определяется — расстояние (в смысле выбранной метрики) между векторами и . Определяется нейрон-победитель, для которого это расстояние оказывается наименьшим. Вокруг нейрона-победителя образуется окрестность из нейронов-соседей с известным "расстоянием" до победителя. Веса нейрона-победителя и веса его соседей из уточняются, например, по правилу Кохонена

где — коэффициент обучения, значение которого уменьшается с увеличением расстояния от -ого нейрона до победителя. Веса нейронов вне не изменяются. Размер окрестности и величина с течением времени обучения уменьшаются.
Меры расстояний между векторами
В качестве меры измерения расстояния между векторами чаще всего используются:
Нормализация векторов
Экспериментальные исследования подтвердили необходимость нормализации входных векторов при малой размерности пространства (), с увеличением размерности входного вектора эффект нормализации становится все менее заметным, а при больших векторах () она перестает оказывать влияние на процесс обучения и функционирования сети.
Для проведения нормализации предлагается два способа:
  1. переопределение компонентов вектора по формуле

  2. добавление в вектор ()-ого компонента так, чтобы

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


где — минимальный потенциал, разрешающий участие в конкурентной борьбе. Максимальное значение потенциала устанавливается равным 1. На практике хорошие результаты получены для
В другом подходе для выявления победителя в конкурентной борьбе предлагается использовать не фактические значения расстоянии между векторами , а величины, промасштабированные количеством побед где — количество побед, одержанных -м нейроном к текущему моменту.
Как показали эксперименты, при использовании описанных выше механизмов двух-трех циклов обучения обычно достаточно для активации всех нейронов сети, поэтому в последующих циклах эти механизмы отключаются.
Алгоритмы обучения
Целью обучения сети с самоорганизацией на основе конкуренции является минимизация погрешности квантования

где — количество обучающих векторов , — вектор весов нейрона-победителя при предъявлении вектора .
Примеры результатов обучения, близких к оптимальным, представлены на рис. 2 и рис. 3. Используются сети с 15 и 22 нейронами и двухкомпонентным входным вектором . На левых рисунках представлено распределение данных в обучающих выборках, на правых — распределение весов нейронов обученной сети.
Рис. 2.  Пример результатов обучения
Рис. 3.  Пример результатов обучения
Для обучения сетей с самоорганизацией на основе конкуренции наибольшее распространение получили два описываемых ниже алгоритма.
Алгоритм Кохонена
В нейронных сетях, предложенных Т. Кохоненом (1982 г.), соседство нейронов носит топологический характер. В простом случае нейроны слоя Кохонена образуют одномерную цепочку, при этом каждый нейрон имеет, в общем случае, двух ближайших соседей (слева и справа). В более сложном случае нейроны Кохонена образуют двумерную сетку с четырьмя соседями у каждого нейрона (слева, справа, сверху, снизу). В еще более сложном случае сетка гексагональна — у каждого нейрона шесть соседей на плоскости (по циферблату часов — 2, 4, 6, 8, 10, 12 часов).
Коррекция весов нейронов в ходе обучения выполняется по алгоритму Кохонена, выражаемому формулой:

где функция соседства определяется, как правило, формулой Гаусса в виде

где — расстояние от -ого нейрона до нейрона-победителя с индексом в -ом цикле обучения. При этом для всех ближайших соседей , для всех "внешних" ближайших соседей ближайших соседей нейрона-победителя с индексом и так далее.
Как обычно, коэффициент обучения и параметр ширины функции Гаусса уменьшаются в ходе обучения (с ростом ).
В результате обучения слоя Кохонена по такому алгоритму топологически соседние нейроны становятся типичными представителями кластеров обучающих данных, соседствующих в многомерном пространстве. В этом достоинство сетей Кохонена, называемых также картами Кохонена, — наглядность в представлении (путем одномерной или двумерной визуализации) многомерных данных.
Алгоритм нейронного газа
В алгоритме нейронного газа адаптация весов выполняется по той же формуле:

В каждом цикле обучения все нейроны сортируются в последовательности возрастания расстояния

где — номер -ого нейрона в последовательности. Для нейрона-победителя .
Значение функции соседства -ого нейрона определяется следующим выражением:

где определяет уровень соседства и является величиной, уменьшающейся по ходу обучения. При , стремящемся к 0, алгоритм превращается в алгоритм WTA.
Для достижения хороших результатов самоорганизации сети обучение должно начинаться с большого значения , которое с течением времени обучения уменьшается до 0. Для такого уменьшения предлагается использовать выражение

где — максимальное заданное количество циклов обучения.
Коэффициент обучения тоже может уменьшаться с течением времени обучения, это уменьшение может быть линейным от в первом цикле до в цикле , так и показательно в соответствии с формулой

Применение сетей с самоорганизацией
Очевидным практическим приложением сетей с самоорганизацией является сжатие (с потерями) данных, в частности, покадровое сжатие изображений.
В процессе обучения сети последовательно предъявляются кадры изображения A. Похожие кадры обеспечивают победу одного и того же нейрона, корректирующего свои веса с сторону усреднения всех векторов входных данных, составляющих кластер "похожих" кадров. По окончании обучения веса каждого нейрона определяют образ некоторого "стереотипного" кадра.
При функционировании обученной сети в режиме компрессии данных ей предъявляются кадры сжимаемого изображения B. В результате расчета расстояний выявляется нейрон-победитель. Покадровая последовательность номеров нейронов-победителей вместе с весами всех нейронов сети и представляет собой сжатое изображение.
Декомпрессия (восстановление) изображения B легко реализуется "склеиванием" стереотипных образов нейронов, составляющих кодовую последовательность.
Желательно, чтобы обучающее изображение A и сжимаемое изображение B принадлежали одному типу (фотография, рисунок из учебника, чертеж, живопись и т.д.).
Важным свойством сетей с самоорганизацией на основе конкуренции является способность к кластеризации данных и их распознаванию. Это обеспечивает их широкое применение для решения задач диагностики, например, неисправностей оборудования.
Гибридная сеть
Способность сетей с самоорганизацией на основе конкуренции представлять большие группы данных, объединенные в кластер, единственным вектором весов нейрона-победителя дает возможность строить высокоэффективные гибридные сети аппроксимации данных (для чего сети с самоорганизацией как таковые не приспособлены).
Структурная схема гибридной сети представлена на рис. 4.
Рис. 4.  Структурная схема гибридной сети
Обучение гибридной сети состоит из двух независимых этапов, следующих один за другим.
  1. Сначала на множестве входных векторов стандартным образом обучается сеть с самоорганизацией. По завершении обучения веса всех нейронов фиксируются. В дальнейшем выходные сигналы нейронов рассчитываются следующим образом:

    где — взвешенная сумма сигналов нейрона-победителя, индивидуально подбирается для каждой задачи.
  2. Далее стандартным образом обучается с учителем многослойный персептрон. Для обучения используются пары , где — это вектор выходных сигналов сети с самоорганизацией, полученный при подаче на ее вход вектора из оригинальной пары .