initnw

Функция инициализации слоя Нгуена-Видрова

Синтаксис

net = initnw(net,i)

Описание

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

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

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

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

net

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

i

Индекс слоя

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

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

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

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

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

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

  2. Установите net.layers{i}.initFcn на 'initnw'.

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

Алгоритмы

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

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

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

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

    • Со смещением

    • С весами, weightFcn которых является dotprod

    • С набором netInputFcn к netsum

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

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

Смотрите также

| | | |

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