initnw

Функция инициализации слоя Nguyen-Widrow

Синтаксис

net = initnw(net,i)

Описание

initnw является функцией инициализации слоя, которая инициализирует веса и смещения слоя в соответствии с алгоритмом инициализации Nguyen-Widrow. Этот алгоритм выбирает значения в порядок, чтобы распределить активную область каждого нейрона в слое приблизительно равномерно по входному пространству слоя. Значения содержат степень случайности, поэтому они не совпадают каждый раз, когда эта функция вызывается.

initnw требует, чтобы слой, который она инициализирует, имел передаточную функцию с конечной активной входной областью значений. Это включает передаточные функции, такие как tansig и satlin, но не purelin, чья активная входная область значений является бесконечным интервалом [-inf, inf]. Передаточные функции, такие как tansig, вернёт их активную входную область значений следующим образом:

activeInputRange = tansig('active')
activeInputRange =
    -2     2

net = initnw(net,i) принимает два аргумента,

net

Нейронная сеть

i

Индекс слоя

и возвращает сеть с слоем iобновлены веса и смещения.

Существует случайный элемент инициализации Nguyen-Widrow. Если для генератора случайных чисел по умолчанию не задан тот же seed перед каждым вызовом initnw, он будет генерировать различные значения веса и смещения каждый раз.

Использование сети

Можно создать стандартную сеть, которая использует initnw по вызову feedforwardnet или cascadeforwardnet.

Чтобы подготовить пользовательскую сеть, которая будет инициализирована с помощью initnw,

  1. Задайте net.initFcn на 'initlay'. Это устанавливает net.initParam в пустую матрицу [], потому что initlay не имеет параметров инициализации.

  2. Задайте net.layers{i}.initFcn на 'initnw'.

Чтобы инициализировать сеть, вызовите init.

Алгоритмы

Метод Нгуена-Видроу генерирует начальные значения веса и смещения для слоя так, чтобы активные области нейронов слоя распределялись приблизительно равномерно по входному пространству.

Преимущества по сравнению с чисто случайными весами и смещениями

  • Мало нейронов теряется впустую (потому что все нейроны находятся во входном пространстве).

  • Обучение работает быстрее (потому что в каждой области входного пространства есть нейроны). Метод Nguyen-Widrow может применяться только к слоям

    • С смещением

    • С весами, чьи weightFcn является dotprod

    • С netInputFcn установлено на netsum

    • С transferFcn чья активная область является конечной

Если эти условия не выполняются, то initnw использует rands для инициализации весов и смещений слоя.

Представлено до R2006a