Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Медведев В.С., Потемкин В.Г. Нейронные сети. MATLAB 6.doc
Скачиваний:
857
Добавлен:
07.03.2016
Размер:
15.55 Mб
Скачать

11.1.2. Многослойные сети

NEWFF

Сеть прямой передачи FF

Синтаксис:

net = newff(PR,[S1 S2...SNl],{TF1 TF2...TFNl},btf,blf,pf)

Описание:

Функция newffпредназначена для создания многослойных нейронных сетей прямой передачи сигнала с заданными функциями обучения и настройки, которые используют метод обратного распространения ошибки.

Функция net = newff(PR, [S1 S2 ... SNl], {TF1 TF2 ... TFNl},btf,blf,pf) формирует многослойную нейронную сеть.

Входные аргументы:

PR – массив размера R2 минимальных и максимальных значений для R векторов входа;

Si – количество нейронов в слоеi;

TFi– функция активации слояi, по умолчаниюtansig;

btf– обучающая функция, реализующая метод обратного распространения, по умолчаниюtrainlm;

blf– функция настройки, реализующая метод обратного распространения, по умолчаниюlearngdm;

pf– критерий качества обучения, по умолчаниюmse.

Выходные аргументы:

net– объект классаnetwork object многослойной нейронной сети.

Свойства сети:

Функциями активации могут быть любые дифференцируемые функции, например tansig,logsigилиpurelin.

Обучающими функциями могут быть любые функции, реализующие метод обратного распространения: trainlm,trainbfg,trainrp,traingdи др.

Функция trainlmявляется обучающей функцией по умолчанию, поскольку обеспечивает максимальное быстродействие, но требует значительных ресурсов памяти. Если ресурсы памяти недостаточны, воспользуйтесь следующими рекомендациями:

  • установите значение свойства net.trainParam.mem_reducравным 2 или более, что снизит требования к памяти, но замедлит обучение;

  • воспользуйтесь обучающей функцией trainbfg, которая работает медленнее, но требуетменьшей памяти, чем М-функцияtrainlm;

  • перейдите к обучающей функции trainrp,которая работает медленнее, но требует меньшей памяти, чем М-функцияtrainbfg.

Функциями настройки могут быть функции, реализующие метод обратного распространения: learngd,learngdm.

Критерием качества обучения может быть любая дифференцируемая функция: mse, msereg.

Пример:

Создать нейронную сеть, чтобы обеспечить следующее отображение последовательности входа P в последовательность целей T:

P = [0 1 2 3 4 5 6 7 8 9 10];

T = [0 1 2 3 4 3 2 1 2 3 4];

Архитектура нейронной сети: двухслойная сеть с прямой передачей сигнала; первый слой – 5 нейронов с функцией активации tansig; второй слой – 1 нейрон с функцией активации purelin; диапазон изменения входа [0 10].

net = newff([0 10],[5 1],{'tansig' 'purelin'});

gensim(net) % Рис.11.12

Рис. 11.12

Выполним моделирование сети и построим графики сигналов выхода и цели (рис. 11.13):

Y = sim(net,P);

plot(P, T, P, Y, 'o') % Рис.11.13

Рис. 11.13

Обучим сеть в течение 50 циклов:

net.trainParam.epochs = 50;

net = train(net,P,T);

Характеристика точности обучения показана на рис. 11.14; установившаяся среднеквадратичная ошибка составляет приблизительно 0.02.

Рис. 11.14

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

Y = sim(net,P);

plot(P,T,P,Y,'o') % Рис.11.15

Результаты моделирования показаны на рис. 11.15 и свидетельствуют о хорошем отображении входной последовательности в выходную последовательность.

Рис. 11.15

Алгоритм:

Многослойная сеть прямой передачи сигнала включает Nlслоев с функциями взвешиванияdotprod, накопленияnetsumи заданными пользователем функциями активации.

Первый слой характеризуется матрицей весов входа, другие слои – матрицами весов выхода предшествующего слоя; все слои имеют смещения. Выход последнего слоя является выходом сети. Веса и смещения каждого слоя инициализируются с помощью М-функции initnw.

Режим адаптации реализуется М-функцией adaptwb. Для режима обучения выбираетсяобучающая функция, реализующая метод обратного распространения ошибки.

Оценка качества обучения основана на функциях оценки качества, выбираемых из списка {mae|mse| msereg|sse}.

Сопутствующие функции: NEWCF, NEWELM, SIM, INIT, ADAPT, TRAIN.

neWFFTD

Динамическая нейронная сеть FFTD

Сеть прямой передачи с запаздыванием

Синтаксис:

net = newfftd(PR, ID, [S1 S2 ... SNl], {TF1 TF2 ... TFNl}, btf, blf, pf)

Описание:

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

Функция net = newfftd(PR, ID, [S1 S2 ... SNl], {TF1 TF2 ... TFNl}, btf, blf, pf) формирует динамическую многослойную нейронную сеть.

Входные аргументы:

PR – массив размера R2 минимальных и максимальных значений для R векторов входа;

ID– вектор параметров линии задержки на входе сети;

Si – количество нейронов в слоеi;

TFi– функция активации слояi, по умолчаниюtansig;

btf– обучающая функция, реализующая метод обратного распространения, по умолчаниюtrainlm;

blf– функция настройки, реализующая метод обратного распространения, по умолчаниюlearngdm;

pf– критерий качества обучения, по умолчаниюmse.

Выходные аргументы:

net – объект класса network object динамической многослойной нейронной сети.

Свойства сети:

Функциями активации могут быть любые дифференцируемые функции, например tansig,logsigилиpurelin.

Обучающими функциями могут быть любые функции, реализующие метод обратного распространения: trainlm,trainbfg,trainrp,traingdи др.

Функция trainlm является обучающей функцией по умолчанию, поскольку обеспечивает максимальное быстродействие, но требует значительных ресурсов памяти. Если ресурсы памяти недостаточны, воспользуйтесь следующими рекомендациями:

  • установите значение свойства net.trainParam.mem_reducравным 2 или более, что снизит требования к памяти, но замедлит обучение;

  • воспользуйтесь обучающей функцией trainbfg, которая работает медленнее, но требуетменьшей памяти, чем М-функцияtrainlm;

  • перейдите к обучающей функции trainrp,которая работает медленнее, но требует меньшей памяти, чем М-функцияtrainbfg.

Функциями настройки могут быть функции, реализующие метод обратного распространения: learngd,learngdm.

Критерием качества обучения может быть любая дифференцируемая функция: mse, msereg.

Пример:

Создать нейронную сеть, чтобы обеспечить следующее отображение последовательности входа P в последовательность целей T:

P = {1 0 0 1 1 0 1 0 0 0 0 1 1 0 0 1};

T = {1 –1 0 1 0 –1 1 –1 0 0 0 1 0 –1 0 1};

Архитектура нейронной сети: двухслойная сеть с прямой передачей сигнала и линией задержки [0 1]; первый слой – 5 нейронов с функцией активации tansig; второй слой – 1 нейрон с функцией активации purelin; диапазон изменения входа [0 10].

net = newfftd([0 1],[0 1],[5 1],{'tansig' 'purelin'}); % Рис.11.16

Рис. 11.16

Обучим сеть в течение 50 циклов и промоделируем, используя в качестве теста обучающую последовательность входа:

net.trainParam.epochs = 50;

net = train(net,P,T);

Y = sim(net,P)

Y = [1] [–1] [0] [1] [0] [–1] [1] [–1] [0] [0] [0] [1] [0] [–1] [0] [1]

Выход сети точно совпадает с целевой последовательностью.

Алгоритм:

Многослойная динамическая сеть прямой передачи включает Nlслоев с функциями взвешиванияdotprod, функциями накопленияnetsumи заданными пользователем функциями активации.

Первый слой характеризуется матрицей весов входа, другие слои – матрицами весов выхода предшествующего слоя; все слои имеют смещения. Выход последнего слоя является выходом сети. Веса и смещения каждого слоя инициализируются с помощью М-функции initnw.

Режим адаптации реализуется М-функцией adaptwb. Для режима обучения выбирается обучающая функция, использующая метод обратного распространения ошибки.

Оценка качества обучения основана на функциях оценки качества, выбираемых из списка {mae|mse| msereg|sse}.

Сопутствующие функции: NEWCF, NEWELM, SIM, INIT, ADAPT, TRAIN.

neWCF

Каскадная сеть прямой передачи CF

Синтаксис:

net = newcf(PR,[S1 S2...SNl],{TF1 TF2...TFNl},btf,blf,pf)

Описание:

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

Функция net = newcf(PR, [S1 S2 ... SNl], {TF1 TF2 ... TFNl}, btf, blf, pf) формирует каскадную нейронную сеть.

Входные аргументы:

PR – массив размера R2 минимальных и максимальных значений для R векторов входа;

Si – количество нейронов в слоеi;

TFi– функция активации слояi, по умолчаниюtansig;

btf– обучающая функция, реализующая метод обратного распространения, по умолчаниюtrainlm;

blf– функция настройки, реализующая метод обратного распространения, по умолчаниюlearngdm;

pf– критерий качества обучения, по умолчаниюmse.

Выходные аргументы:

net– объект классаnetwork objectкаскадной нейронной сети с прямой передачей и обучением методом обратного распространения.

Свойства сети:

Функциями активации могут быть любые дифференцируемые функции, например tansig,logsigилиpurelin.

Обучающими функциями могут быть любые функции, реализующие метод обратного распространения: trainlm,trainbfg,trainrp,traingdи др.

Функция trainlm является обучающей функцией по умолчанию, поскольку обеспечивает максимальное быстродействие, но требует значительных ресурсов памяти. Если ресурсы памяти недостаточны, воспользуйтесь следующими рекомендациями:

  • установите значение свойства net.trainParam.mem_reducравным 2 или более, что снизит требования к памяти, но замедлит обучение;

  • воспользуйтесь обучающей функцией trainbfg, которая работает медленнее, но требует меньшей памяти, чем М-функцияtrainlm;

  • перейдите к обучающей функции trainrp,которая работает медленнее, но требует меньшей памяти, чем М-функцияtrainbfg.

Функциями настройки могут быть функции, реализующие метод обратного распространения: learngd,learngdm

Критерием качества обучения может быть любая дифференцируемая функция: mse,msereg.

Пример:

Создать каскадную нейронную сеть, чтобы обеспечить следующее отображение последовательности входа P в последовательность целей T:

P = [0 1 2 3 4 5 6 7 8 9 10];

T = [0 1 2 3 4 3 2 1 2 3 4];

Архитектура нейронной сети: каскадная двухслойная сеть с прямой передачей сигнала; первый слой – 5 нейронов с функцией активации tansig; второй слой – 1 нейрон с функцией активацииpurelin; диапазон изменения входа [0 10].

net = newcf([0 10],[5 1],{'tansig' 'purelin'});

gensim(net) % Рис.11.17

Результат представлен на рис. 11.17.

Рис. 11.17

Обучим сеть в течение 50 циклов:

net.trainParam.epochs = 50;

net = train(net,P,T);

Характеристика точности обучения показана на рис. 11.18; установившаяся среднеквадратичная ошибка составляет приблизительно 0.002, что на порядок выше, чем для сети FF( см. рис. 11.14).

Рис. 11.18

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

Y = sim(net,P);

plot(P,T,P,Y,'o')

Результат моделирования представлен на рис. 11.19.

Рис. 11.19

Алгоритм:

Каскадная сеть прямой передачи использует функции взвешивания dotprod, накопленияnetsumи заданные пользователем функции активации.

Первый каскад характеризуется матрицей весов входа, другие каскады – матрицами весов выхода предшествующего каскада; все каскады имеют смещения. Выход последнего каскада является выходом сети. Веса и смещения инициализируются с помощью М-функции initnw.

Режим адаптации реализуется М-функцией adaptwb. Для режима обучения выбирается обучающая функция, реализующая метод обратного распространения ошибки.

Оценка качества обучения основана на функциях оценки качества, выбираемых из списка {mae|mse| msereg|sse}.

Сопутствующие функции: NEWFF, NEWELM, SIM, INIT, ADAPT, TRAIN.