Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
LektsiiProshkina / Нейронные сети - лекции_готовое.docx
Скачиваний:
222
Добавлен:
18.05.2015
Размер:
1.27 Mб
Скачать

Настройка числа нейронов в скрытых слоях многослойных сетей в процессе обучения

Способы настройки можно разбить на 2 группы: конструктивные алгоритмы и алгоритмы сокращения.

Алгоритмы сокращения

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

Существует 2 подхода к реализации алгоритма сокращения:

  1. Метод штрафных функций:

В целевую функцию алгоритма обучения вводятся штрафы за то, что значения синоптических весов отличны от нуля.

Пример:

  1. Метод проекций:

Синоптический вес обнуляется, если его значение попало в заданный диапазон.

Алгоритм сокращения имеет два недостатка:

  1. Нет методики определения числа нейронов скрытых слоев, которые являются избыточными, поэтому перед началом работы алгоритма это число нужно угадать;

  2. В процессе работы алгоритма сеть содержит избыточное число нейронов, поэтому обучение идёт медленно;

Конструктивные алгоритмы

Предшественником конструктивных алгоритмов можно считать методику обучения многослойных систем, включающий в себя следующие шаги:

  1. Выбор начального числа нейронов в скрытых слоях;

  2. Инициализация сети, т.е. присваивание синоптическим весам и смещениям сети случайные значения из заданного диапазона;

  3. Обучение сети по заданной выборке;

  4. Завершение в случае успешного обучения. Если сеть обучить не удалось, то число нейронов увеличивается и повторяются шаги 2-4;

В конструктивных алгоритмах число нейронов в скрытых слоях изначально мало и постепенно увеличивается. Сохраняются навыки, приобретенные сетью до увеличения числа нейронов. Конструктивные алгоритмы различаются правилами задания значений параметров вновь добавленных в есть нейронов:

  1. Значения параметров – случайные числа из заданного диапазона;

  2. Значения весов нового нейрона определяется путем расщепления одного из старых нейронов;

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

Суть алгоритма расщепления состоит в следующем: в процессе обучения векторы изменения весов, соответствуют отдельным обучающим примерам, имеют два преимущественных направления. Такие нейроны подвергаются расщеплению. В результате расщепления в сети оказывается два нейрона, первый из которых имеет вектор весов, представляющий собой сумму вектора весов исходного нейрона и вектора весов одного из преимущественных направлений.

Убирать из сети, т.е. расщеплять нейроны, вектора которых имеют 2 преимущественных направления необходимо, поскольку наличие таких нейронов приводит к осцилляциям при обучении классическим методом.

Упрощенные алгоритмы расщепления

Такие алгоритмы не требуют значительных вычислений. Общее число нейронов сети, построенной с помощью предлагаемого алгоритма по заданной обучающей выборке, может быть больше, чем у сети, построенной с помощью исходного алгоритма.

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

В качестве критерия нейрона используется отношение суммы длин вектором изменения весов нейронов, соответствующих различным обучающим примерам, к длине сумм этих вектором. В результате расщепления в место исходного нейрона в сеть вводятся 2 новых нейрона. Значением синоптического веса нового нейрона – значение соответствующего веса старого нейрона плюс некоторый небольшой шум.