Модель многослойной сети
Сеть прямой передачи FF Синтаксис: net = newff(PR, [S1 S2...SNI], {TF1 TF2...TFNI}, btf, blf, pf) Описание: Функция newff предназначена для создания многослойных нейронных сетей прямой передачи сигнала с заданными функциями обучения и настройки, которые используют метод обратного распространения ошибки. Функция net = newff(PR, [SI S2... SN1], {TF1 TF2... TFN1}, btf, blf, pf) формирует многослойную нейронную сеть. Входные аргументы: PR - массив размера Rx2 минимальных и максимальных значений для R векторов входа; Si - количество нейронов в слое i; TF i - функция активации слоя 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. Пример: Создать нейронную сеть, чтобы обеспечить следующее отображение последовательности входа Р в последовательность целей Т: Р = [0 1 2 3 4 5 6 7 8 9 10]; Т = [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) % (рис.3.1).
Рис. 3.1. Двухслойная сеть с прямой передачей сигнала Выполним моделирование сети и построим графики сигналов выхода и цели (рис. 3.2): Y = sim(net, P); plot(P, Т, Р, Y, 'о') % (рис.3.2). Рис. 3.2. Графики сигналов выхода и цели: ---- - сигнал цели, ° - сигнал выхода Обучим сеть в течение 50 циклов: net.trainParam.epochs = 50; net = train(net, Р, Т); Характеристика точности обучения дана на рис. 3.3; установившаяся среднеквадратичная ошибка составляет приблизительно 0.02. Рис. 3.3. Характеристика точности обучения Выполним моделирование сформированной двухслойной сети, используя обучающую последовательность входа: Y = sim(net, P); plot(P, T, P, Y, 'о') % (рис.3.4). Результаты моделирования показаны на рис. 3.4 и свидетельствуют о хорошем отображении входной последовательности в выходную. Рис. 3.4. Отображение входной последовательности в выходную Алгоритм: Многослойная сеть прямой передачи сигнала включает N1 слоев с функциями взвешивания dotprod, накопления netsum и заданными пользователем функциями активации. Первый слой характеризуется матрицей весов входа, другие слои - матрицами весов выхода предшествующего слоя; все слои имеют смещения. Выход последнего слоя является выходом сети. Веса и смещения каждого слоя инициализируются с помощью М-функции initnw. Режим адаптации реализуется М-функцией adaptwb. Для режима обучения выбирают обучающую функцию, реализующую метод обратного распространения ошибки. Оценка качества обучения основана на функциях оценки качества, выбираемых из списка {mae | mse | msereg | sse}. Сопутствующие функции: NEWCF, NEWELM, SIM, INIT, ADAPT, TRAIN.
|