Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ИИС / поштучно / 5.Настройка количества нейронов в скрытых слоях нейронной сети

.docx
Скачиваний:
55
Добавлен:
02.03.2016
Размер:
24.4 Кб
Скачать

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

Алгоритмы сокращения используются для минимизации структуры нейросети [4]. Т.е. если в ходе обучения сформировалась такая структура, в которой часть весовых коэффициентов близки к нулю и очень мало влияют на результат, вероятно, их можно безболезненно сократить, сделав таким образом сеть более "экономичной" (требующей меньшего объема вычислений и "непереобученной").

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

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

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

,

(17)

где L – количество нейронов текущего слоя; n – количество входных сигналов слоя.

Метод проекций

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

.

(18)

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

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

  2. Низкая скорость обучения как следствие избыточной мощности сети.

1.5.2. Конструктивные алгоритмы (constructive algorithms)

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

Основаны на методике обучения многослойных НС [4]:

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

Шаг 2. Инициализация. Присвоение весам и смещениям случайных значений из заданного диапазона.

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

Шаг 4. В случае неудачного обучения увеличение количества нейронов и переход к шагу 2.

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

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

а) значения параметров являются случайными числами из заданного диапазона;

б) значения синаптических весов нового нейрона получаются путем расщепления (splitting) одного из старых нейронов.

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

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

Алгоритм расщепления использует ковариационную матрицу векторов изменений синаптических весов.

Основной недостаток алгоритма – экспоненциальный рост времени вычислений при увеличении размерности сети.

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

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

,

(19)

где – вектор изменения синаптических весов i-го нейрона в результате использования k-го обучающего примера.

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

В результате расщепления вместо исходного нейрона в сеть вводятся два новых нейрона.

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

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

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