Создание сети

В ППП NNT для создания сети Элмана предусмотрена М-функция newelm. Решаемая задача требует, чтобы сеть Элмана на каждом шаге наблюдения значений выборки могла выявить единственный ее параметр – амплитуду синусоиды. Это означает, что сеть должна иметь 1 вход и 1 выход:

R = 1; % Число элементов входа

S2 = 1;% Число нейронов выходного слоя

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

S1 = 10; % Число нейронов рекуррентного слоя

Элементы входа для данной задачи изменяются в диапазоне от –2 до 2. Для обучения используется метод градиентного спуска с возмущением и адаптацией параметра скорости настройки, реализованный в виде М-функции traingdx:

net = newelm([–2 2],[S1 S2],{'tansig','purelin'},'traingdx');

Сеть использует следующие функции адаптации, инициализации, обучения и оценки качества:

adaptFcn: 'adaptwb'

initFcn: 'initlay'

performFcn: 'mse'

trainFcn: 'traingdx'

Слои сети Элмана имеют следующие характеристики:

net.layers{1} ans = dimensions: 10 distanceFcn: 'dist' distances: [10´10 double] initFcn: 'initnw' netInputFcn: 'netsum' positions: [0 1 2 3 4 5 6 7 8 9] size: 10 topologyFcn: 'hextop' transferFcn: 'tansig' userdata: [1´1 struct] net.layers{2} ans = dimensions: 1 distanceFcn: 'dist' distances: 0 initFcn: 'initnw' netInputFcn: 'netsum' positions: 0 size: 1 topologyFcn: 'hextop' transferFcn: 'purelin' userdata: [1´1 struct]

Скрытый слой использует функцию активации tansig, которая для сети Элмана принимается по умолчанию; инициализация весов и смещений реализуется методом NW (Nguen – Widrow) с помощью М-функции initnw. Второй слой использует линейную функцию активации purelin.

По умолчанию для настройки весов и смещений используется функция learngdm,
а для оценки качества обучения – функция mse.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: