- •В. Г. Потемкин
- •Предисловие
- •Введение
- •Используемые обозначения
- •Часть 1. Ппп Neural Network Toolbox
- •1. Система matlab 6
- •1.1. Операционная среда matlab 6
- •Командное окно
- •Окно предыстории
- •Окно запуска
- •Окно текущего каталога
- •Окно рабочей области
- •Справочная подсистема
- •1.3. Демонстрационные примеры ппп nnt
- •2. Модель нейрона и архитектура сети
- •2.1. Модель нейрона
- •2.1.1. Простой нейрон
- •2.1.2. Функция активации
- •2.1.3. Нейрон с векторным входом
- •2.2. Архитектура нейронных сетей
- •2.2.1. Однослойные сети
- •2.2.2. Многослойные сети
- •2.2.3. Сети с прямой передачей сигнала
- •2.3. Создание, инициализация и моделирование сети Формирование архитектуры сети
- •Инициализация сети
- •Моделирование сети
- •3. Обучение нейронных сетей
- •3.1. Процедуры адаптации и обучения
- •Явление переобучения
- •Свойство обобщения
- •3.1.1. Способы адаптации и обучения
- •Адаптация нейронных сетей
- •Xlabel(''), ylabel('Выходыa(I)'),grid
- •Xlabel(''), ylabel('Весавходовw(I)'),grid
- •Xlabel(' Циклы'), ylabel('Ошибка'),grid
- •Xlabel(''), ylabel('Выходыa(I)'),grid
- •Xlabel(''), ylabel('Весавходовw(I)'),grid
- •Xlabel('Циклы'), ylabel('Ошибка'),grid
- •Xlabel(''), ylabel('Выходыa(I)'),grid
- •Xlabel(''), ylabel('Весавходовw(I)'),grid
- •Xlabel('Циклы'), ylabel('Ошибка'),grid
- •Обучение нейронных сетей
- •3.2. Методы обучения
- •3.2.1. Обучение однослойной сети
- •3.2.2. Обучение многослойной сети
- •Метод обратного распространения ошибки
- •Характеристика методов обучения
- •3.3. Алгоритмы обучения
- •3.3.1. Градиентные алгоритмы обучения Алгоритм gd
- •Алгоритм gdm
- •Алгоритм gda
- •Алгоритм Rprop
- •3.3.2. Алгоритмы метода сопряженных градиентов
- •Алгоритм cgf
- •Алгоритм cgp
- •Алгоритм cgb
- •Алгоритм scg
- •3.3.3. Квазиньютоновы алгоритмы Алгоритм bfgs
- •Алгоритм oss
- •Алгоритм lm
- •3.3.4. Алгоритмы одномерного поиска
- •Алгоритм gol
- •Алгоритм bre
- •Алгоритм hyb
- •Алгоритм cha
- •Алгоритм bac
- •3.3.5. Расширение возможностей процедур обучения
- •Переобучение
- •Метод регуляризации
- •Формирование представительной выборки
- •Предварительная обработка и восстановление данных
- •Пример процедуры обучения
- •4. Персептроны
- •4.1. Архитектура персептрона
- •4.2. Модель персептрона
- •Моделирование персептрона
- •Инициализация параметров
- •4.3. Процедуры настройки параметров
- •Правила настройки
- •Процедура адаптации
- •5. Линейные сети
- •5.1. Архитектура линейной сети
- •5.2. Создание модели линейной сети
- •5.3. Обучение линейной сети
- •Процедура настройки
- •Процедура обучения
- •5.4. Применение линейных сетей Задача классификации векторов
- •Фильтрация сигнала
- •Предсказание сигнала
- •Подавление шумов
- •Многомерные цифровые фильтры
- •6. Радиальные базисные сети
- •Модель нейрона и архитектура сети
- •Создание сети
- •Радиальная базисная сеть с нулевой ошибкой
- •Итерационная процедура формирования сети
- •Примеры радиальных базисных сетей
- •6.1. Сети grnn
- •Архитектура сети
- •Синтез сети
- •6.2. Сети pnn
- •Архитектура сети
- •Синтез сети
- •7. Сети кластеризации и классификации данных
- •7.1. Самоорганизующиеся нейронные сети
- •7.1.1. Слой Кохонена
- •Архитектура сети
- •Создание сети
- •Правило обучения слоя Кохонена
- •Правило настройки смещений
- •Обучение сети
- •7.1.2. Карта Кохонена
- •Топология карты
- •Функции для расчета расстояний
- •Архитектура сети
- •Создание сети
- •Обучение сети
- •Одномерная карта Кохонена
- •Двумерная карта Кохонена
- •Архитектура сети
- •Создание сети
- •Обучение сети Правила настройки параметров
- •Процедура обучения
- •8. Рекуррентные сети
- •8.1. Сети Элмана
- •Архитектура
- •Создание сети
- •Обучение сети
- •Проверка сети
- •8.2. Сети Хопфилда
- •Архитектура сети
- •Синтез сети
- •9. Применение нейронных сетей
- •9.1. Аппроксимация и фильтрация сигналов
- •9.1.1. Предсказание стационарного сигнала Постановка задачи
- •Синтез сети
- •Проверка сети
- •9.1.2. Слежение за нестационарным сигналом
- •Инициализация сети
- •Проверка сети
- •9.1.3. Моделирование стационарного фильтра
- •Постановка задачи
- •Синтез сети
- •Проверка сети
- •9.1.4. Моделирование нестационарного фильтра
- •Постановка задачи
- •Инициализация сети
- •Проверка сети
- •9.2. Распознавание образов
- •Постановка задачи
- •Нейронная сеть
- •Архитектура сети
- •Инициализация сети
- •Обучение
- •Обучение в отсутствие шума
- •Обучение в присутствии шума
- •Повторное обучение в отсутствие шума
- •Эффективность функционирования системы
- •9.3. Нейронные сети и системы управления
- •9.3.1. Регулятор с предсказанием
- •9.3.2. Регулятор narma-l2
- •9.3.3. Регулятор на основе эталонной модели
- •Часть2. Операторы, функции и команды
- •10. Вычислительная модель нейронной сети
- •10.1. Описание сети Описание архитектуры
- •Функции инициализации, адаптации и обучения
- •10.2. Описание элементов сети
- •Описание входов
- •Описание слоев
- •Описание выходов
- •Описание целей
- •Описание смещений
- •Описание весов входа
- •Описание весов слоя
- •Матрицы весов и векторы смещений
- •Информационные поля
- •11. Формирование моделей нейронных сетей
- •11.1. Модели сетей
- •11.1.1. Однослойные сети Персептрон
- •Линейные сети
- •11.1.2. Многослойные сети
- •Радиальные базисные сети
- •Самоорганизующиеся сети
- •Сети – классификаторы входных векторов
- •Рекуррентные сети
- •11.2. Функции активации
- •Персептрон
- •Линейные сети
- •Радиальные базисные сети
- •Самоорганизующиеся сети
- •Рекуррентные сети
- •11.3. Синаптические функции
- •Функции взвешивания и расстояний
- •Функции накопления
- •11.4. Функции инициализации
- •11.5. Функции адаптации и обучения Функции адаптации
- •Функции обучения
- •Градиентные алгоритмы обучения
- •Алгоритмы метода сопряженных градиентов
- •Квазиньютоновы алгоритмы обучения
- •11.5.1. Функции оценки качества обучения
- •11.6. Функции настройки параметров
- •11.6.1. Функции одномерного поиска
- •11.7. Масштабирование и восстановление данных
- •11.8. Вспомогательные функции
- •Утилиты вычислений
- •Операции с массивами данных
- •Графические утилиты
- •Информация о сети и ее топологии
- •11.9. Моделирование нейронных сетей и система Simulink Функции моделирования сети
- •11.9.1. Применение системы Simulink
- •Библиотеки блоков для моделирования нейронных сетей
- •Построение моделей нейронных сетей
- •Индексный указатель Команды, функции и операторы ппп Neural Network Toolbox
- •Предметный указатель
- •Литература Книги на английском языке:
- •Книги на русском языке:
- •Оглавление
Градиентные алгоритмы обучения
traingd |
Алгоритм градиентного спуска GD |
Синтаксис:
[net,TR,Ac,El] = traingd(NET,Pd,Tl,Ai,Q,TS,VV)
info = traingd(code)
Описание:
Функция traingd обучает нейронную сеть, используя алгоритм градиентного спуска GD.
Функция при своей работе использует следующие параметры:
info = traingd('pdefaults')'
info =
-
epochs:
100
min_grad:
1.0e–006
show:
25
max_fail:
5
goal:
0
searchFcn:
'srchbac'
time:
Inf
lr:
0.01
Применение функции:
Функция обучения traingdиспользуется при создании сетей с помощью методовnewff, newcf,newelm, а также при формировании сетей с атрибутами, определяемыми пользователем.
Для того чтобы подготовить сеть к обучению, необходимо:
установить свойство сети net.trainFcnравным'traingd'. Это автоматически установит значения параметров обучения, соответствующие значениям свойстваnet.trainParam по умолчанию.
Для того чтобы фактически обучить сеть, необходимо:
инициализировать нейронную сеть;
присвоить, если это необходимо, требуемые значения параметрам обучения;
применить функцию train.
Алгоритм:
Функция traingd выполняет процедуру обучения, если функции взвешивания, накопления и активации имеют производные. Для вычисления производных критерия качества обучения (perf) по переменным веса и смещения используется метод обратного распространения ошибки. В соответствии с методом градиентного спуска вектор настраиваемых переменных получает следующие приращения:
dX = lr * dperf/dX.
Процедура обучения прекращается, когда выполнено одно из следующих условий:
значение функции качества стало меньше предельного;
градиент критерия качества стал меньше значения min_grad;
достигнуто предельное число циклов обучения;
превышено максимальное время, отпущенное на обучение;
ошибка контрольного подмножества превысила ошибку обучающего более чем в max_fail раз.
Пример:
Заданы следующие обучающие последовательности входов P и целей T:
P = [0 1 2 3 4 5];
T = [0 0 0 1 1 1];
Поскольку соответствие между входом и целью носит явно выраженный нелинейный характер, то будем использовать нейронную сеть с нелинейными сигмоидальными функциями активации. Выберем двухслойную нейронную сеть с прямой передачей сигнала; в первом слое используем 2 нейрона с функцией активации tansig, а во втором – 1 нейрон с функцией активацииlogsig. Для обучения сети применим функциюtraingd.
Формирование сети:
net = newff([0 5],[2 1],{'tansig','logsig'},'traingd');
Обучение сети:
net.trainParam.epochs = 500;
net.trainParam.goal = 0.01;
[net,TR] = train(net,P,T); % Рис.11.44
На рис. 11.44 показано, как изменяется точность в процессе обучения; требуемое значение обеспечивается на 332-м цикле обучения.
Рис. 11.44
Выполним моделирование сети:
Y = sim(net,P)
Y = 0.0669 0.0962 0.1284 0.8350 0.9640 0.9657
Требуемое соответствие между входом и выходом нейронной сети обеспечивается с заданной среднеквадратичной погрешностью.
Сопутствующие функции: NEWFF, NEWCF, TRAINGDM, TRAINGDA, TRAINGDX, TRAINLM.
traingda |
Обучение нейронной сети методом GDA |
Синтаксис:
[net,TR,Ac,El] = traingda(NET,Pd,Tl,Ai,Q,TS,VV)
info = traingda(code)
Описание:
Функция traingdaобучает нейронную сеть, используя алгоритм градиентного спуска с выбором параметра скорости настройки GDA.
Функция при своей работе использует следующие параметры:
info = traingda('pdefaults')'
info =
-
epochs:
100
lr:
0.01
show:
25
lr_inc:
1.05
goal:
0
lr_dec:
0.7
time:
Inf
max_perf_inc:
1.04
min_grad:
1.0e–006
max_fail:
5
Применение функции:
Функция обучения traingdaиспользуется при создании сетей с помощью методовnewff, newcf,newelm, а также при формировании сетей с атрибутами, определяемыми пользователем.
Для того чтобы подготовить сеть к обучению, необходимо:
установить свойство сети net.trainFcnравным'traingda'. Это автоматически установит значения параметров обучения, соответствующие значениям свойстваnet.trainParam по умолчанию.
Для того чтобы фактически обучить сеть, необходимо:
инициализировать нейронную сеть;
присвоить, если это необходимо, требуемые значения параметрам обучения;
применить функцию train.
Алгоритм:
Функция traingda выполняет процедуру обучения, если функции взвешивания, накопления и активации имеют производные. Для вычисления производных критерия качества обучения по переменным веса и смещения используется метод обратного распространения ошибки. В соответствии с методом градиентного спуска вектор настраиваемых переменных получает следующие приращения:
dX = lr * dperf/dX.
Однако в данном случае, в отличие от алгоритма градиентного спуска, параметр скорости настройки выполняет адаптивную функцию. Он увеличивается в lr_incраз, если критерий качества обучения сети уменьшается, и это реализуется на каждом цикле обучения. С другой стороны, если критерий качества увеличился более чем вmax_perf_incраз, то начинается коррекция параметра скорости настройки в сторону уменьшения с коэффициентомlr_dec.
Процедура обучения прекращается, когда выполнено одно из следующих условий:
значение функции качества стало меньше предельного;
градиент критерия качества стал меньше значения min_grad;
достигнуто предельное число циклов обучения;
превышено максимальное время, отпущенное на обучение;
ошибка контрольного подмножества превысила ошибку обучающего более чем в max_fail раз.
Пример:
Заданы следующие обучающие последовательности входов P и целей T:
P = [0 1 2 3 4 5];
T = [0 0 0 1 1 1];
Поскольку соответствие между входом и целью носит явно выраженный нелинейный характер, то будем использовать нейронную сеть с нелинейными сигмоидальными функциями активации. Выберем двухслойную нейронную сеть с прямой передачей сигнала; в первом слое используем 2 нейрона с функцией активации tansig, а во втором – 1 нейрон с функцией активацииlogsig. Для обучения сети применим функциюtraingda.
Формирование сети:
net = newff([0 5],[2 1],{'tansig','logsig'},'traingda');
Обучение сети:
net.trainParam.epochs = 500;
net.trainParam.goal = 0.01;
[net,TR] = train(net,P,T); % Рис.11.45
TR =
epoch: [194 double]
perf: [194 double]
vperf: [194 double]
tperf: [194 double]
lr: [194 double]
Рис. 11.45
На рис. 11.45 показано, как изменяется точность в процессе обучения; требуемое значение обеспечивается на 93-м цикле обучения; при этом параметр скорости настройки постоянно растет и достигает значения приблизительно 0.93 (рис. 11.46).
Рис. 11.46
Выполним моделирование сети:
Y = sim(net,P)
Y = 0.0376 0.1069 0.1922 0.9121 0.9774 0.9783
Требуемое соответствие между входом и выходом нейронной сети обеспечивается с заданной среднеквадратичной погрешностью.
Сопутствующие функции: NEWFF, NEWCF, TRAINGD, TRAINGDM, TRAINGDX, TRAINLM.
TRAINGDM |
Алгоритм градиентного спуска с возмущением GDM |
Синтаксис:
[net,TR,Ac,El] = traingdm(NET,Pd,Tl,Ai,Q,TS,VV)
info = traingdm(code)
Описание:
Функция traingdmобучает нейронную сеть, используя алгоритм градиентного спуска с возмущением GDM.
Функция при своей работе использует следующие параметры:
info = traingdm('pdefaults')'
info =
-
epochs:
100
lr:
0.01
show:
25
max_perf_inc:
1.04
goal:
0
mc:
0.9
time:
Inf
min_grad:
1.0e–006
max_fail:
5
Применение функции:
Функция обучения traingdmиспользуется при создании сетей с помощью методовnewff, newcf,newelm, а также при формировании сетей с атрибутами, определяемыми пользователем.
Для того чтобы подготовить сеть к обучению, необходимо:
установить свойство сети net.trainFcnравным'traingdm'. Это автоматически установит значения параметров обучения, соответствующие значениям свойстваnet.trainParam по умолчанию.
Для того чтобы фактически обучить сеть, необходимо:
инициализировать нейронную сеть;
присвоить, если это необходимо, требуемые значения параметрам обучения;
применить функцию train.
Алгоритм:
Функция traingdm выполняет процедуру обучения, если функции взвешивания, накопления и активации имеют производные. Для вычисления производных критерия качества обучения по переменным веса и смещения используется метод обратного распространения ошибки. В соответствии с методом градиентного спуска с возмущением вектор настраиваемых переменных получает следующие приращения:
dX = mc*dXprev + lr*mc*dperf/dX,
где dXprev – вектор возмущения весов и смещений с коэффициентом mc.
Процедура обучения прекращается, когда выполнено одно из следующих условий:
значение функции качества стало меньше предельного;
градиент критерия качества стал меньше значения min_grad;
достигнуто предельное число циклов обучения;
превышено максимальное время, отпущенное на обучение;
ошибка контрольного подмножества превысила ошибку обучающего более чем в max_fail раз.
Пример:
Заданы следующие обучающие последовательности входов P и целей T:
P = [0 1 2 3 4 5];
T = [0 0 0 1 1 1];
Поскольку соответствие между входом и целью носит явно выраженный нелинейный характер, то будем использовать нейронную сеть с нелинейными сигмоидальными функциями активации. Выберем двухслойную нейронную сеть с прямой передачей сигнала; в первом слое используем 2 нейрона с функцией активации tansig, а во втором – 1 нейрон с функцией активацииlogsig. Для обучения сети применим функциюtraingdm и увеличим параметр скорости настройки до 0.1.
Формирование сети:
net = newff([0 5],[2 1],{'tansig','logsig'},'traingdm');
Обучение сети:
net.trainParam.epochs = 500;
net.trainParam.goal = 0.01;
net.trainParam.lr = 0.1;
[net,TR] = train(net,P,T); % Рис.11.47
Рис. 11.47
На рис. 11.47 показано, как изменяется точность в процессе обучения; требуемое значение обеспечивается на 120-м цикле обучения.
Выполним моделирование сети:
Y = sim(net,P)
Y = 0.0787 0.0393 0.1006 0.8696 0.8883 0.8884
Требуемое соответствие между входом и выходом нейронной сети обеспечивается с заданной среднеквадратичной погрешностью.
Сопутствующие функции: NEWFF, NEWCF, TRAINGD, TRAINGDA, TRAINGDX, TRAINLM.
traingdx |
Обучение нейронной сети методом GDX |
Синтаксис:
[net,TR,Ac,El] = traingdx(NET,Pd,Tl,Ai,Q,TS,VV)
info = traingdx(code)
Описание:
Функция traingdxобучает нейронную сеть, используя алгоритм градиентного спуска с возмущением и адаптацией параметра скорости настройки GDX.
Функция при своей работе использует следующие параметры:
info = traingdx('pdefaults')'
info =
-
epochs:
100
lr:
0.01
show:
25
lr_inc:
1.05
goal:
0
lr_dec:
0.7
time:
Inf
max_perf_inc:
1.04
min_grad:
1.0e–006
mc:
0.9
max_fail:
5
Применение функции:
Функция обучения traingdxиспользуется при создании сетей с помощью методовnewff, newcf,newelm, а также при формировании сетей с атрибутами, определяемыми пользователем.
Для того чтобы подготовить сеть к обучению, необходимо:
установить свойство сети net.trainFcnравным'traingdx'. Это автоматически установит значения параметров обучения, соответствующие значениям свойстваnet.trainParam по умолчанию.
Для того чтобы фактически обучить сеть, необходимо:
инициализировать нейронную сеть;
присвоить, если это необходимо, требуемые значения параметрам обучения;
применить функцию train.
Алгоритм:
Функция traingdx выполняет процедуру обучения, если функции взвешивания, накопления и активации имеют производные. Для вычисления производных критерия качества обучения по переменным веса и смещения используется метод обратного распространения ошибки. В соответствии с методом градиентного спуска с возмущением вектор настраиваемых переменных получает следующие приращения:
dX = mc*dXprev + lr*mc*dperf/dX,
где dXprev – вектор возмущения весов и смещений с коэффициентом mc.
Однако в данном случае, в отличие от алгоритма traingdm, параметр скорости настройки выполняет адаптивную функцию. Он увеличивается вlr_incраз, если критерий качества обучения сети уменьшается, и это реализуется на каждом цикле обучения. С другой стороны, если критерий качества увеличился более чем вmax_perf_incраз, то начинается коррекция параметра скорости настройки в сторону уменьшения с коэффициентомlr_dec.
Обучение прекращается, когда выполнено одно из следующих условий:
значение функции качества стало меньше предельного;
градиент критерия качества стал меньше значения min_grad;
достигнуто предельное число циклов обучения;
превышено максимальное время, отпущенное на обучение;
ошибка контрольного подмножества превысила ошибку обучающего более чем в max_fail раз.
Пример:
Заданы следующие обучающие последовательности входов P и целей T:
P = [0 1 2 3 4 5];
T = [0 0 0 1 1 1];
Поскольку соответствие между входом и целью носит явно выраженный нелинейный характер, то будем использовать нейронную сеть с нелинейными сигмоидальными функциями активации. Выберем двухслойную нейронную сеть с прямой передачей сигнала; в первом слое используем 2 нейрона с функцией активации tansig, а во втором – 1 нейрон с функцией активацииlogsig. Для обучения сети применим функциюtraingdx.
Формирование сети:
net = newff([0 5],[2 1],{'tansig','logsig'},'traingdx');
Обучение сети:
net.trainParam.epochs = 500;
net.trainParam.goal = 0.01;
[net,TR] = train(net,P,T); % Рис.11.48
TR =
epoch: [1106 double]
perf: [1106 double]
vperf: [1106 double]
tperf: [1106 double]
lr: [1106 double]
Рис. 11.48
На рис. 11.48 показано, как изменяется точность в процессе обучения; требуемое значение обеспечивается на 105-м цикле обучения; при этом параметр скорости настройки постоянно растет и достигает значения приблизительно 1.7 (рис. 11.49).
Рис. 11.49
Выполним моделирование сети:
Y = sim(net,P)
Y = 0.0787 0.0393 0.1006 0.8696 0.8883 0.8884
Требуемое соответствие между входом и выходом нейронной сети обеспечивается с заданной среднеквадратичной погрешностью.
Сопутствующие функции: NEWFF, NEWCF, TRAINGD, TRAINGDM, TRAINGDA, TRAINLM.
trainrp |
Алгоритм обучения Rprop |
Синтаксис:
[net,TR,Ac,El]= trainrp(NETt,Pd,Tl,Ai,Q,TS,VV)
info = trainrp(code)
Описание:
Функция trainrpобучает нейронную сеть, используя пороговый алгоритм обратного распространения ошибки.
Функция при своей работе использует следующие параметры:
info = trainrp('pdefaults')'
info =
-
epochs:
100
delt_inc:
1.2
show:
25
delt_dec:
0.5
goal:
0
delta0:
0.07
time:
Inf
deltamax:
50
min_grad:
1.0e–006
max_fail:
5
Применение функции:
Функция обучения trainrp используется при создании сетей с помощью методов newff, newcf, newelm, а также при формировании сетей с атрибутами, определяемыми пользователем.
Для того чтобы подготовить сеть к обучению, необходимо:
установить свойство сети net.trainFcnравным'trainrp'. Это автоматически установит значения параметров обучения, соответствующие значениям свойстваnet.trainParam по умолчанию.
Для того чтобы фактически обучить сеть, необходимо:
инициализировать нейронную сеть;
присвоить, если это необходимо, требуемые значения параметрам обучения;
применить функцию train.
Алгоритм:
Функция trainrp выполняет процедуру обучения, если функции взвешивания, накопления и активации имеют производные. Для вычисления производных критерия качества обучения по переменным веса и смещения используется метод обратного распространения ошибки. В соответствии с пороговым алгоритмом обратного распространения вектор настраиваемых переменных получает следующие приращения:
dX = deltaX.*sign(gX),
где вектору deltaX присваиваются начальные значения delta0, а вектор gX – градиент критерия качества. На каждой итерации элементы deltaX изменяются. Если некоторый элемент вектора gX изменяет знак при переходе к следующей итерации, то соответствующий элемент вектора deltaX умножается на коэффициент delta_dec. Если элемент вектора gX сохраняет знак, то соответствующий элемент вектора deltaX умножается на коэффициент delta_inc [36].
Процедура обучения прекращается, когда выполнено одно из следующих условий:
значение функции качества стало меньше предельного;
градиент критерия качества стал меньше значения min_grad;
достигнуто предельное число циклов обучения;
превышено максимальное время, отпущенное на обучение;
ошибка контрольного подмножества превысила ошибку обучающего более чем в max_fail раз.
Пример:
Заданы следующие обучающие последовательности входов P и целей T:
P = [0 1 2 3 4 5];
T = [0 0 0 1 1 1];
Поскольку соответствие между входом и целью носит явно выраженный нелинейный характер, то будем использовать нейронную сеть с нелинейными сигмоидальными функциями активации. Выберем двухслойную нейронную сеть с прямой передачей сигнала; в первом слое используем 2 нейрона с функцией активации tansig, а во втором – 1 нейрон с функцией активацииlogsig. Для обучения сети применим функциюtrainrp.
Формирование сети:
net = newff([0 5],[2 1],{'tansig','logsig'},'trainrp');
Обучение сети:
net.trainParam.epochs = 50;
net.trainParam.show = 10;
net.trainParam.goal = 0.01;
[net,TR] = train(net,P,T); % Рис.11.50
На рис. 11.50 показано, как изменяется точность в процессе обучения; требуемое значение обеспечивается на 10-м цикле обучения.
Рис. 11.50
Выполним моделирование сети:
Y = sim(net,P)
Y = 0.0696 0.0704 0.1339 0.8934 0.9390 0.9399
Требуемое соответствие между входом и выходом нейронной сети обеспечивается с заданной среднеквадратичной погрешностью.
Сопутствующие функции: NEWFF, NEWCF, TRAINGDM, TRAINGDA, TRAINGDX, TRAINLM, TRAINCGP, TRAINCGF, TRAINCGB, TRAINSCG, TRAINOSS, TRAINBFG.