- •В. Г. Потемкин
- •Предисловие
- •Введение
- •Используемые обозначения
- •Часть 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
- •Предметный указатель
- •Литература Книги на английском языке:
- •Книги на русском языке:
- •Оглавление
Квазиньютоновы алгоритмы обучения
trainbfg |
Алгоритм обучения BFGS |
Синтаксис:
[net,TR,Ac,El] = trainbfg(NET,Pd,Tl,Ai,Q,TS,VV,TV)
info = trainbfg(code)
Описание:
Функция trainbfg обучает нейронную сеть, используя квазиньютонов алгоритм Бройдена, Флетчера, Гольдфарба и Шано (BFGS).
Функция при своей работе использует следующие параметры:
info = trainbfg('pdefaults')'
info =
-
epochs:
100
scale_tol:
20
maxstep:
100
show:
25
alpha:
0.001
minstep:
1.0 e–006
goal:
0
beta:
0.1
bmax:
26
time:
Inf
delta:
0.01
min_grad:
1.0e–006
gama:
0.1
max_fail:
5
low_lim:
0.1
searchFcn:
'srchbac'
up_lim:
0.5
Применение функции:
Функция обучения trainbfgиспользуется при создании сетей с помощью методовnewff, newcf,newelm, а также при формировании сетей с атрибутами, определяемыми пользователем.
Для того чтобы подготовить сеть к обучению, необходимо:
установить свойство сети net.trainFcnравным'trainbfg'. Это автоматически установит значения параметров обучения, соответствующие значениям свойстваnet.trainParamпо умолчанию.
Для того чтобы фактически обучить сеть, необходимо:
инициализировать нейронную сеть;
присвоить, если это необходимо, требуемые значения параметрам обучения;
применить функцию train.
Алгоритм:
Функция trainbfg выполняет процедуру обучения, если функции взвешивания, накопления и активации имеют производные. Для вычисления производных критерия качества обучения по переменным веса и смещения используется метод обратного распространения ошибки. В соответствии с квазиньютоновым алгоритмом BFGS вектор настраиваемых переменных получает следующие приращения:
X = X + a*dX,
где dX – направление поиска; параметр a выбирается так, чтобы минимизировать критерий качества обучения в направлении поиска. Функция одномерного поиска searchFcn используется для вычисления минимума. Начальное направление поиска задается вектором, противоположным градиенту критерия качества. При успешных итерациях направление поиска определяется на основе нового значения градиента и с учетом приближенного значения гессиана согласно формуле[13]
dX = –H\gX,
где gX– вектор градиента;H– приближенная оценка гессиана.
Обучение прекращается, когда выполнено одно из следующих условий:
значение функции качества стало меньше предельного;
градиент критерия качества стал меньше значения min_grad;
достигнуто предельное число циклов обучения;
превышено максимальное время, отпущенное на обучение;
ошибка контрольного подмножества превысила ошибку обучающего более чем в max_fail раз.
Пример:
Заданы следующие обучающие последовательности входов P и целей T:
P = [0 1 2 3 4 5];
T = [0 0 0 1 1 1];
Поскольку соответствие между входом и целью носит явно выраженный нелинейный характер, то будем использовать нейронную сеть с нелинейными сигмоидальными функциями активации. Выберем двухслойную нейронную сеть с прямой передачей сигнала; в первом слое используем 2 нейрона с функцией активации tansig, а во втором – 1 нейрон с функцией активацииlogsig. Для обучения сети применим функциюtrainbfg.
Формирование сети:
net = newff([0 5],[2 1],{'tansig','logsig'},'trainbfg');
Обучение сети:
net.trainParam.epochs = 50;
net.trainParam.show = 10;
net.trainParam.goal = 0.0001;
[net,TR] = train(net,P,T); % Рис.11.55
На рис. 11.55 показано, как изменяется точность в процессе обучения; требуемое значение достигается на 14-м цикле обучения и составляет 7.5e–7.
Рис. 11.55
Выполним моделирование сети:
Y = sim(net,P);
Y = 0.0000 0.0000 0.0021 1.0000 0.9999 0.9998
Соответствие между входом и выходом реализуется с очень высокой точностью.
Сопутствующие функции: NEWFF, NEWCF, TRAINGDM, TRAINGDA, TRAINGDX, TRAINLM, TRAINRP, TRAINCGF, TRAINCGB, TRAINSCG, TRAINCGP, TRAINOSS.
trainoss |
Алгоритм обучения OSS |
Синтаксис:
[net,TR,Ac,El] = trainoss(NET,Pd,Tl,Ai,Q,TS,VV)
info = trainoss(code)
Описание:
Функция trainossобучает нейронную сетью, используя одношаговый алгоритм метода секущейOSS.
Функция при своей работе использует следующие параметры:
info = trainoss('pdefaults')'
info =
-
epochs:
100
scale_tol:
20
maxstep:
100
show:
25
alpha:
0.001
minstep:
1.0 e–6
goal:
0
beta:
0.1
bmax:
26
time:
Inf
delta:
0.01
min_grad:
1.0e–006
gama:
0.1
max_fail:
5
low_lim:
0.1
searchFcn:
'srchbac'
up_lim:
0.5
Применение функции:
Функция обучения trainoss используется при создании сетей с помощью методов newff, newcf, newelm, а также при формировании сетей с атрибутами, определяемыми пользователем.
Для того чтобы подготовить сеть к обучению, необходимо:
установить свойство сети net.trainFcnравным'trainoss'. Это автоматически установит значения параметров обучения, соответствующие значениям свойстваnet.trainParam по умолчанию.
Для того чтобы фактически обучить сеть, необходимо:
инициализировать нейронную сеть;
присвоить, если это необходимо, требуемые значения параметрам обучения;
применить функцию train.
Алгоритм:
Функция trainbfg выполняет процедуру обучения, если функции взвешивания, накопления и активации имеют производные. Для вычисления производных критерия качества обучения по переменным веса и смещения используется метод обратного распространения ошибки. В соответствии с квазиньютоновым алгоритмом BFGS вектор настраиваемых переменных получает следующие приращения:
X = X + a*dX,
где dX – направление поиска; параметр aвыбирается так, чтобы минимизировать критерий качества обучения в направлении поиска. Функция одномерного поиска searchFcn используется для вычисления минимума. Начальное направление поиска задается вектором, противоположным градиенту критерия качества. При успешных итерациях направление поиска определяется на основе нового значения градиента и значений градиентов на предыдущих шагах согласно формуле [1]
dX = –gX + Ac*X_step + Bc*dgX,
где gX– вектор градиента;X_step– приращение весов на предыдущей итерации;dgX– изменение градиента на последней итерации.
Обучение прекращается, когда выполнено одно из следующих условий:
значение функции качества стало меньше предельного;
градиент критерия качества стал меньше значения min_grad;
достигнуто предельное число циклов обучения;
превышено максимальное время, отпущенное на обучение;
ошибка контрольного подмножества превысила ошибку обучающего более чем в max_fail раз.
Пример:
Заданы следующие обучающие последовательности входов P и целей T:
P = [0 1 2 3 4 5];
T = [0 0 0 1 1 1];
Поскольку соответствие между входом и целью носит явно выраженный нелинейный характер, то будем использовать нейронную сеть с нелинейными сигмоидальными функциями активации. Выберем двухслойную нейронную сеть с прямой передачей сигнала; в первом слое используем 2 нейрона с функцией активации tansig, а во втором – 1 нейрон с функцией активацииlogsig. Для обучения сети применим функциюtrainoss.
Формирование сети:
net = newff([0 5],[2 1],{'tansig','logsig'},'trainoss');
Обучение сети:
net.trainParam.epochs = 50;
net.trainParam.show = 10;
net.trainParam.goal = 0.0001;
[net,TR] = train(net,P,T); % Рис.11.56
Рис. 11.56
На рис. 11.56 показано, как изменяется точность в процессе обучения; требуемое значение обеспечивается на 29-м цикле обучения.
Выполним моделирование сети:
Y = sim(net,P)
Y = 0.0093 0.0090 0.0127 0.9856 0.9989 0.9990
Требуемое соответствие между входом и выходом нейронной сети обеспечивается с заданной среднеквадратичной погрешностью, равной 0.0001.
Сопутствующие функции: NEWFF, NEWCF, TRAINGDM, TRAINGDA, TRAINGDX, TRAINLM, TRAINRP, TRAINCGF, TRAINCGB, TRAINSCG, TRAINCGP, TRAINBFG.
trainlm |
Алгоритм Левенберга – Марквардта LM |
Синтаксис:
[net,TR,Ac,El] = trainlm(NET,Pd,Tl,Ai,Q,TS,VV)
info = trainlm(code)
Описание:
Функция trainlm обучает нейронную сеть, используя алгоритм Левенберга –Марквардта LM.
Функция при своей работе использует следующие параметры:
info = trainlm('pdefaults')'
info =
-
epochs:
100
lr:
0.01
mu_max:
1.0e10
show:
25
mc:
0.9
goal:
0
mem_reduc:
1
time:
Inf
mu:
0.001
min_grad:
1.0e–006
mu_dec:
0.1
max_fail:
5
mu_inc:
10
Применение функции:
Функция обучения trainlmиспользуется при создании сетей с помощью методовnewff,newcf,newelm, а также при формировании сетей с атрибутами, определяемыми пользователем.
Для того чтобы подготовить сеть к обучению, необходимо:
установить свойство сети net.trainFcnравным'trainlm'. Это автоматически установит значения параметров обучения, соответствующие значениям свойстваnet.trainParamпо умолчанию.
Для того чтобы фактически обучить сеть, необходимо:
инициализировать нейронную сеть;
присвоить, если это необходимо, требуемые значения параметрам обучения;
применить функцию train.
Алгоритм:
Функция trainlm выполняет процедуру обучения, если функции взвешивания, накопления и активации имеют производные. Для вычисления якобиана критерия качества обучения по переменным веса и смещения используется метод обратного распространения ошибки. Каждая настраиваемая переменная корректируется в соответствии с методом Левенберга – Марквардта:
jj = jX * jX;
je = jX * E;
dX = –(jj + I * mu)\je,
где E– матрица ошибок;I– единичная матрица.
Параметр адаптации muвозрастает с коэффициентомmu_incдо тех пор, пока изменение весов и смещенийdXне приведет к уменьшению критерия качества; после этого коэффициентmu_incпереключается наmu_dec.
Параметр mem_reducпозволяет находить компромисс между объемами оперативной памяти и быстродействием, необходимыми для вычисления якобиана. Когда параметрmem_reducравен 1, обеспечивается максимальное быстродействие, но и требуются большие объемы памяти. Если увеличить значениеmem_reducвдвое, то потребная память также уменьшится примерно вдвое, но скорость вычислений несколько замедлится. Чем больше значениеmem_reduc, тем меньше требования к памяти, но время вычислений существенно увеличивается.
Обучение прекращается, когда выполнено одно из следующих условий:
значение функции качества стало меньше предельного;
градиент критерия качества стал меньше значения min_grad;
достигнуто предельное число циклов обучения;
превышено максимальное время, отпущенное на обучение;
ошибка контрольного подмножества превысила ошибку обучающего более чем в max_fail раз.
Пример:
Заданы следующие обучающие последовательности входов P и целей T:
P = [0 1 2 3 4 5];
T = [0 0 0 1 1 1];
Поскольку соответствие между входом и целью носит явно выраженный нелинейный характер, то будем использовать нейронную сеть с нелинейными сигмоидальными функциями активации. Выберем двухслойную нейронную сеть с прямой передачей сигнала; в первом слое используем 2 нейрона с функцией активации tansig, а во втором – 1 нейрон с функцией активацииlogsig. Для обучения сети применим функциюtrainlm.
Формирование сети:
net = newff([0 5],[2 1],{'tansig','logsig'},'trainlm');
Обучение сети:
net.trainParam.epochs = 50;
net.trainParam.show = 10;
net.trainParam.goal = 0.0001;
[net,TR] = train(net,P,T); % Рис.11.57
TR =
epoch: [0 1 2 3 4 5 6 7 8 9 10 11 12 13]
perf: [114 double]
vperf: [114 double]
tperf: [114 double]
mu: [114 double]
На рис. 11.57 показано, как изменяется точность в процессе обучения; требуемое значение обеспечивается на 13-м цикле обучения.
Рис. 11.57
Данный алгоритм имеет адаптивный параметр mu, изменение которого показано на рис. 11.58.
Рис. 11.58
Из анализа этого рисунка следует, что на первых трех циклах обучения фактически реализуется градиентный метод, а затем метод Ньютона с аппроксимацией гессиана.
Выполним моделирование сети:
Y = sim(net,P)
Y = 0.0012 0.0012 0.0049 0.9889 0.9897 0.9897
Требуемое соответствие между входом и выходом нейронной сети обеспечивается с заданной среднеквадратичной погрешностью, равной 0.0001.
Сопутствующие функции: NEWFF, NEWCF, TRAINGD, TRAINGDM, TRAINGDA, TRAINGDX.
trainbr |
Алгоритм обучения BR |
Синтаксис:
[net,TR,Ac,El] = trainbr(net,Pd,Tl,Ai,Q,TS,VV)
info = trainbr(code)
Описание:
Функция trainbrобучает нейронную сеть, используя алгоритм Левенберга – Марквардта, дополненный регуляризацией по БайесуBR. Такие сети находят широкое применение при решении задач аппроксимации нелинейных зависимостей.
Функция при своей работе использует следующие параметры:
info = trainbr('pdefaults')'
info =
-
epochs:
100
mem_reduc:
1
show:
25
mu:
0.005
goal:
0
mu_dec:
0.1
time:
Inf
mu_inc:
10
min_grad:
1.0e–006
mu_max:
1.0e+010
max_fail:
5
Применение функции:
Функция обучения trainbr используется при создании сетей с помощью методов newff, newcf, newelm, а также при формировании сетей с атрибутами, определяемыми пользователем.
Для того чтобы подготовить сеть к обучению, необходимо:
установить свойство сети net.trainFcnравным'trainbr'. Это автоматически установит значения параметров обучения, соответствующие значениям свойстваnet.trainParamпо умолчанию.
Для того чтобы фактически обучить сеть, необходимо:
инициализировать нейронную сеть;
присвоить, если это необходимо, требуемые значения параметрам обучения;
применить функцию train.
Алгоритм:
Функция trainbr выполняет процедуру обучения, если функции взвешивания, накопления и активации имеют производные. В отличие от всех ранее описанных процедур эта функция использует метод регуляризации, что позволяет успешно справиться с проблемой переобучения. Для этого осуществляется минимизация комбинированного функционала качества обучения, который учитывает не только сумму квадратов ошибок обучения, но квадраты весов. Эта стратегия регуляризации, называемая регуляризацией по методу Байеса, подробно рассмотрена в работах [11, 23]. При реализации функцииtrainbr эта стратегия встроена в алгоритм Левенберга – Марквардта.
Для вычисления якобиана функционала качества по переменным веса и смещения используется метод обратного распространения ошибки. Каждая настраиваемая переменная корректируется в соответствии с методом Левенберга–Марквардта:
jj = jX * jX;
je = jX * E;
dX = –(jj + I * mu)\je,
где E– матрица ошибок;I– единичная матрица.
Параметр адаптации muвозрастает с коэффициентомmu_incдо тех пор, пока изменение весов и смещенийdXне приведет к уменьшению критерия качества; после этого коэффициентmu_incпереключается наmu_dec.
Параметр mem_reducпозволяет находить компромисс между объемами оперативной памяти и быстродействием, необходимыми для вычисления якобиана. Когда параметрmem_reducравен 1, обеспечивается максимальное быстродействие, но и требуются большие объемы памяти. Если увеличить значениеmem_reducвдвое, то потребная память также уменьшится примерно вдвое, но скорость вычислений несколько замедлится. Чем больше значениеmem_reduc, тем меньше требования к памяти, но время вычислений существенно увеличивается.
Обучение прекращается, когда выполнено одно из следующих условий:
значение функции качества стало меньше предельного;
градиент критерия качества стал меньше значения min_grad;
достигнуто предельное число циклов обучения;
превышено максимальное время, отпущенное на обучение;
ошибка контрольного подмножества превысила ошибку обучающего более чем в max_fail раз.
Пример:
Рассмотрим задачу аппроксимации синусоидальной функции, которая зашумлена нормально распределенным шумом.
P = [–1:.05:1];
T = sin(2*pi*P) + 0.1*randn(size(P));
Сформируем для решения этой задачи двухслойную нейронную сеть прямой передачи сигнала. Вход сети принимает значения в диапазоне от –1 до 1. Первый слой имеет 20 нейронов с функцией активации tansig, второй слой имеет 1 нейрон с функцией активацииpurelin. В качестве обучающей используем функциюtrainbr.
Формирование сети:
net = newff([–1 1],[20,1],{'tansig','purelin'},'trainbr');
Обучение сети (рис. 11.59):
net.trainParam.epochs = 50;
net.trainParam.show = 10;
net = train(net,P,T); % Рис.11.59
Рис. 11.59
Количество настраиваемых параметров на 50 циклах обучения стабилизировалось и равно 15. Выполним моделирование сети и построим графики исследуемых функций.
Y = sim(net,P);
plot(P,Y,P,T,'+') % Рис.11.60
Рис. 11.60
Из анализа рис. 11.60 следует, что выход сети сглаживает входные данные и обеспечивает оптимальную структуру сети по числу настраиваемых параметров, не допуская в ней явления переобучения.
Сопутствующие функции: NEWFF, NEWCF, TRAINGDM, TRAINGDA, TRAINGDX, TRAINLM, TRAINRP, TRAINCGF, TRAINCGB, TRAINSCG, TRAINCGP, TRAINOSS.