Настройка числа нейронов в скрытых слоях многослойных сетей в процессе обучения
Способы настройки можно разбить на 2 группы: конструктивные алгоритмы и алгоритмы сокращения.
В основе алгоритма сокращения лежит принцип постепенного удаления из нейросети синапсов и нейронов. В начале работы алгоритма обучения с сокращением число нейронов в скрытых слоях сети заведомо избыточна.
Существует 2 подхода к реализации алгоритма сокращения:
1. Метод штрафных функций:
В целевую функцию алгоритма обучения вводятся штрафы за то, что значения синоптических весов отличны от нуля.
Пример:
2. Метод проекций:
Синоптический вес обнуляется, если его значение попало в заданный диапазон.
Алгоритм сокращения имеет два недостатка:
1) Нет методики определения числа нейронов скрытых слоев, которые являются избыточными, поэтому перед началом работы алгоритма это число нужно угадать;
2) В процессе работы алгоритма сеть содержит избыточное число нейронов, поэтому обучение идёт медленно;
Предшественником конструктивных алгоритмов можно считать методику обучения многослойных систем, включающий в себя следующие шаги:
1) Выбор начального числа нейронов в скрытых слоях;
2) Инициализация сети, т.е. присваивание синоптическим весам и смещениям сети случайные значения из заданного диапазона;
3) Обучение сети по заданной выборке;
4) Завершение в случае успешного обучения. Если сеть обучить не удалось, то число нейронов увеличивается и повторяются шаги 2-4;
В конструктивных алгоритмах число нейронов в скрытых слоях изначально мало и постепенно увеличивается. Сохраняются навыки, приобретенные сетью до увеличения числа нейронов. Конструктивные алгоритмы различаются правилами задания значений параметров вновь добавленных в есть нейронов:
1) Значения параметров – случайные числа из заданного диапазона;
2) Значения весов нового нейрона определяется путем расщепления одного из старых нейронов;
Первый способ не требует значительных вычислений, однако его использование приводит к некоторому увеличению значения функции ошибки после каждого добавления нового нейрона. В результате случайного задания значений параметров может появиться избыточность вычислений. Расщепление нейронов лишено указанных недостатков.
Суть алгоритма расщепления состоит в следующем: в процессе обучения векторы изменения весов, соответствуют отдельным обучающим примерам, имеют два преимущественных направления. Такие нейроны подвергаются расщеплению. В результате расщепления в сети оказывается два нейрона, первый из которых имеет вектор весов, представляющий собой сумму вектора весов исходного нейрона и вектора весов одного из преимущественных направлений.
Убирать из сети, т.е. расщеплять нейроны, вектора которых имеют 2 преимущественных направления необходимо, поскольку наличие таких нейронов приводит к осцилляциям при обучении классическим методом.