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