Введение

Искусственная нейронная сеть

Нейронный газ – это искусственная нейронная сеть, вдохновлённая самоорганизующейся картой и представленная в 1991 году Томасом Мартинецом и Клаусом Шультеном. Нейронный газ – это простой алгоритм для поиска оптимальных представлений данных на основе векторных признаков. Алгоритм получил название «нейронный газ» из-за динамики векторных признаков в процессе адаптации, которые распределяются подобно газу в пространстве данных. Он применяется в задачах сжатия данных или векторного квантования, например, в распознавании речи, обработке изображений или распознавании образов. Как надёжная и устойчиво сходящаяся альтернатива k-средним, он также используется для кластерного анализа.

Сравнение с SOM

По сравнению с самоорганизующейся картой, модель нейронного газа не исходит из предположения, что некоторые векторы являются соседями. Если два вектора случайно оказываются близко друг к другу, они будут стремиться двигаться вместе, а если далеко друг от друга – не будут двигаться согласованно. В отличие от этого, в SOM, если два вектора являются соседями в базовом графе, то они всегда будут стремиться двигаться вместе, независимо от того, являются ли эти два вектора близкими в евклидовом пространстве. Название "нейронный газ" дано потому, что его можно представить как SOM без базового графа, где все точки могут свободно перемещаться, не будучи связанными друг с другом.

Варианты

В литературе существует несколько вариантов алгоритма нейронного газа, предназначенных для устранения некоторых его недостатков. Наиболее известен, пожалуй, растущий нейрогаз Бернда Фрицке, но также стоит упомянуть и другие разработки, такие как сеть Growing When Required и инкрементально растущий нейрогаз. Ориентированная на производительность модель "пластического нейронного газа" позволяет избежать риска переобучения.

Растущий нервный газ

Фрицке описывает растущий нейронный газ (GNG) как инкрементальную модель сети, которая изучает топологические отношения, используя "правило обучения, подобное правилу Хебба", демонстрируя свои возможности для инкрементальной кластеризации данных. GNG инициализируется двумя случайно расположенными узлами, которые первоначально соединены ребром с нулевым возрастом, а их ошибки установлены в 0. Поскольку в GNG входные данные представляются последовательно, один за другим, на каждой итерации выполняются следующие шаги:

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

Нейрогазы с постепенным ростом

Еще один вариант нейрогаза, вдохновленный алгоритмом GNG, – это инкрементально растущий нейрогаз (IGNG). Авторы утверждают, что основное преимущество этого алгоритма заключается в "способности к обучению новым данным (пластичность) без ухудшения качества ранее обученной сети и потери информации о старых входных данных (стабильность)". Фактически, для него были разработаны аналоговые аппаратные реализации.