2
4
Пермский государственный педагогический университет
Россия, 614990, Пермь, ул. Сибирская, 24
Методы повышения эффективности обучения нейронной сети Кохонена
А.С. Баталов
Рассмотрены подходы к нормализации обучающего множества нейронной сети. Проведен анализ существующих методов обучения нейронной сети Кохонена, в результате которого выявлены преимущества и недостатки каждого. Предложен новый конструктивный метод обучения, а также составлены рекомендации по повышению эффективности обучения.
Ключевые слова: нейронные сети; слой Кохонена; алгоритмы обучения; кластерный анализ; конструктивный метод обучения.
множество обучение нейронная сеть
Введение
В последнее время Пермской научной школой искусственного интеллекта (www.PermAi.ru) успешно выполнена серия проектов и опубликованы статьи на тему развития и применения нейросетевых технологий, в частности - нейросетей персептронного типа, для решения задач распознавания образов, оптимизации, прогнозирования, выявления и объяснения закономерностей в таких предметных областях, как промышленность [1, 2], экономика и бизнес [3, 4], политология и социология [5, 6], криминалистика [7-9], медицина [10, 11], экология и энергосбережение [12, 13], история [14] и др. Попытки же применения нейросетей других, более поздних парадигм, таких как RBF-сети, сети Фальмана и Либьера, сети Кохонена и др., успехом пока не увенчались. Одна из возможных причин - несовершенство и неразвитость алгоритмической базы этих парадигм.
В настоящей работе делается попытка исследования и развития алгоритмической базы нейронной сети Кохонена с целью повышения шансов на успех применения этого инструментария для решения задач кластеризации.
Задача кластеризации возникает в самых разнообразных областях человеческой деятельности: в биологии, социологии, информатике и т.д. Поскольку с помощью нейронной сети Кохонена можно решать задачи кластеризации объектов и обучение сети проходит без учителя, то данная парадигма представляет практический интерес в областях, где обучение с учителем не представляется возможным либо этот процесс неэффективен из-за очень длительного времени обучения.
Нейронные сети Кохонена могут использоваться для решения таких задач, как моделирование, прогнозирование, поиск закономерностей в больших массивах данных, выявление наборов независимых признаков и сжатие информации.
Наиболее распространенное применение сетей Кохонена - разведочный анализ данных. Сеть Кохонена распознает кластеры в данных, а также устанавливает близость классов. Таким образом, пользователь может улучшить свое понимание структуры данных, чтобы затем уточнить нейросетевую модель. Если в данных распознаны классы, то после их маркировки предоставляется возможность использовать сеть для решения задачи классификации. Сети Кохонена применимы и в тех задачах классификации, где классы уже заданы, - тогда преимущество будет в том, что сеть сможет выявить сходство между различными классами.
Другая возможная область применения - обнаружение новых явлений. Сеть Кохонена распознает кластеры в обучающих данных и относит все данные к тем или иным кластерам. Если после этого сеть встретит набор данных, непохожий ни на один из известных образцов, то она не сможет классифицировать такой набор и тем самым выявит его новизну.
1. Сеть Кохонена
На рис. 1 представлена структура нейронной сети Кохонена. Первый слой - входной - вычислений не выполняет. Второй слой называется слоем Кохонена в честь ученого, предложившего алгоритм самообучения [23]. Каждый нейрон входного слоя соединен с каждым нейроном слоя Кохонена с весом связи .
Рис. 1. Нейронная сеть Кохонена
Алгоритм обучения без учителя - алгоритм Кохонена - сводится к минимизации разницы между входными сигналами данного нейрона и весовыми коэффициентами данного нейрона [16]:
(1)
Подстройка весов связей по формуле (1) осуществляется не для всех нейронов слоя, а только для одного нейрона-победителя, вектор весов которого в наименьшей степени отличается от поданного на вход сети вектора . Чаще всего в качестве меры расстояния между векторами и используют эвклидову меру [16, 18, 19, 6, 23]:
(2)
Параметр в формуле (1) - скорость обучения, уменьшающаяся с увеличением времени . Данный параметр управляет быстротой приближения вектора весов к входному вектору. Так как параметр должен уменьшаться с увеличением времени , то рекомендуется использовать для этого параметра следующую экспоненциальную функцию [22]:
(3)
где - временная константа, а - начальное значение скорости обучения.
Перед началом обучения всем весам сети следует придавать некоторые начальные значения. Чаще всего на практике применяется присваивание весам небольших случайных значений, равномерно распределенных в некотором ограниченном диапазоне, например (0 - 1) [16]. Разумеется, если ядра классов нормированы, то и начальные значения должны быть также нормированы [17].
Очень часто бывает, что параметрами обучающего вектора могут быть семантически различные значения, например, - возраст, вес, температура, давление пациента. В зависимости от шкалы измерения численные значения этих величин могут различаться в несколько раз и не обязательно, что большие по величине значения являются более значимыми, чем малые [15].
Применяя простое линейное преобразование, можно выровнять относительные значения для всех компонент входного вектора. Это достигается с помощью нахождения для каждого компонента входного вектора среднего значения и дисперсии :
(4)
(5)
Здесь - вектор из обучающей выборки . Используя (4) и (5), получим новый входной вектор , где
(6)
Таким образом, преобразованный вектор имеет нулевое среднее значение и единичную дисперсию.
Еще одним способом нормализации входных векторов является деление каждой компоненты входного вектора на длину вектора [16, 19, 20, 21]:
(7)
Такая операция превращает входной вектор в вектор единичной длинны в -мерном пространстве.
Рандомизация весов слоя Кохонена в классическом алгоритме обучения может породить серьезные проблемы при обучении, так как в результате ее весовые векторы распределяются равномерно по поверхности гиперсферы [21]. Из-за того, что входные векторы, как правило, распределены неравномерно и имеют тенденцию группироваться на относительно малой части поверхности гиперсферы, большинство весовых векторов будут так удалены от любого входного вектора, что никогда не дадут наилучшего соответствия. Эти нейроны Кохонена будут всегда иметь нулевой выход и окажутся бесполезными. Более того, оставшихся весов, дающих наилучшие соответствия, может оказаться слишком мало, чтобы разделить входные векторы на классы, которые расположены близко друг к другу на поверхности гиперсферы.
Решением данной проблемы является распределение весовых векторов в соответствии со сложностью входных векторов. Существует несколько путей приближенного достижения этой цели, из которых наиболее популярны четыре следующих [19]:
1) метод выпуклой комбинации;
2) зашумление входных векторов;
3) изменение числа корректируемых нейронов;
4) наделение нейронов "чувством справедливости".
1. Методы улучшения эффективности обучения
1.1 Метод выпуклой комбинации [16, 17, 19, 21]
На этапе инициализации сети все начальные веса берутся равными , где - число входов сети. Благодаря этому все весовые векторы совпадают и имеют единичную длину. Обучение сети проводится не с вектором , а с преобразованным вектором, где каждому компоненту вектора придается значение
(8)
где - монотонно возрастающая функция, изменяющаяся в процессе обучения от 0 до 1. Вначале , все обучающие векторы одинаковы и равны . В процессе обучения постепенно приближается к 1, т.е. компоненты вектора постепенно приближаются к своим истинным значениям. Таким образом, весовые векторы отслеживают один или небольшую группу входных векторов и в конце обучения дают требуемую картину выходов.
1.2 Зашумление входных векторов [16, 19]
В начале обучения к компонентам входных векторов искусственно добавляется определенный уровень шума. Благодаря случайным изменениям входного вектора нейроны захватывают нужный весовой вектор. В процессе обучения уровень шума постепенно снижается, приближая значения входных векторов к своим истинным значениям.
1.3 Изменение числа корректируемых нейронов [19]
На начальной стадии процесса обучения подстраиваются веса всех нейронов слоя, а не только нейрона-победителя. Далее подстройка весов производится для ближайших к выигравшему нейрону. Число этих нейронов по мере обучения сокращается, и в конце остается лишь один нейрон.
Подстройка весов нейронов происходит по формуле (1) с добавлением множителя :
(9)
В этой формуле функция зависит от расстояния между нейроном-победителем и -м нейронном сети. Для функцию задают максимальной и убывающей по мере увеличения расстояния от -го нейрона до нейрона-победителя. Таким свойством обладает функция Гаусса
(10)
где коэффициент называется эффективной шириной [22], - мера расстояния между векторами и . По мере обучения величина уменьшается. Популярным вариантом зависимости величины от дискретного времени является экспоненциальное убывание, описываемое следующей формулой:
(11)
где - номер текущей итерации, - начальное значение величины , - некоторая временная константа.
1.4 Наделение нейронов "чувством справедливости" [17, 19, 21]
Этот метод известен и под такими названиями, как "эффект утомления" [20, 23] и "победитель справедливо получает все" (CWTA) [16].
Данный метод является улучшенной модификацией WTA (Winner Takes All). Он позволяет учитывать усталость нейронов путем подсчета потенциала каждого нейрона, значение которого модифицируется всякий раз после представления очередной реализации входного вектора в соответствии со следующей формулой:
(12)
В этой формуле - количество нейронов, - минимальное значение потенциала, разрешающее нейрону участвовать в конкурентной борьбе. Если текущее значение потенциала падает ниже , -й нейрон временно отдыхает, уступая место для конкурентной борьбы другим нейронам. На практике хорошие результаты достигаются, когда [20].
2. Сравнение методов
Приведенные выше алгоритмы сравнивались при решении задачи кластеризации двумерных обучающих данных сложной структуры, представленной на рис 2.
Рис 2. Распределение двумерных данных, использованных для тестирования
Перед тем как приступить к решению задачи кластеризации, необходимо провести нормализацию входных данных. Формулы (6) и (7), по которым проводилась нормализация, оказались неэффективными. После их применения, как показано на рис. 3, а, б, преобразованные входные векторы теряют свою структуру, и в дальнейшем обучение сети не представляется целесообразным. Наилучшие результаты нормализации получены при использовании масштабирования, рассчитанного по следующей формуле:
(13)
где - компонента входного вектора , а и - минимальное и максимальное значение соответственно.
Как видно из рис. 3, в, структура данных сохранилась, а каждая компонента вектора лежит в диапазоне от 0 до 1. Недостаток масштабирования заключается в том, что входной набор данных должен быть максимально репрезентативным для определения диапазона значений входного вектора.
Рис 3. Обучающее множество после нормализации при использовании формул (6), (7) и(13)
Рис. 4. Метод выпуклой комбинации
2
4
Рис. 5. Метод зашумления входных векторов
Для кластеризации данных используются три множества нейронов (каждое множество содержит 2, 3 и 4 элемента), разбивающие данные на соответствующее количество классов.
На рис. 4 приведены результаты работы четырех алгоритмов, описанных выше: метод выпуклой комбинации (рис. 4), зашумление входных векторов (рис. 5), изменение числа корректируемых нейронов (рис. 6) и наделение нейронов "чувством справедливости" (рис. 7).
Как видно из рис. 4, метод выпуклой комбинации достаточно точно определил центры кластеров, но преобразование входных данных в соответствии с формулой (8) требует выполнения определенного количества итераций, зависящих от коэффициента , что замедляет работу алгоритма.
Метод зашумления входных векторов, представленный на рис. 5, оказался медленнее, чем предыдущий, и имеет те же недостатки. Кроме того, инициализация весов нейронов случайными значениями требует определенной настройки уровня шума.
Рис. 6. Метод изменения числа корректируемых нейронов
Метод изменения числа корректируемых нейронов (рис. 6) не лишен недостатков двух предыдущих методов, к тому же инициализация весов нейронов случайными значениями требует настройки эффективной ширины из формулы (11).