Одношаговое секционное обратное распространение
net.trainFcn = 'trainoss'
[net,tr] = train(net,...)
trainoss - сетевая обучающая функция, которая обновляет значения веса и смещения в соответствии с одностадийным методом секущих.
net.trainFcn = 'trainoss' устанавливает сеть trainFcn собственность.
[net,tr] = train(net,...) обучает сеть с помощью trainoss.
Обучение происходит в соответствии с trainoss параметры обучения, показанные здесь с их значениями по умолчанию:
net.trainParam.epochs | 1000 | Максимальное количество периодов для обучения |
net.trainParam.goal | 0 | Цель производительности |
net.trainParam.max_fail | 6 | Максимальное количество сбоев проверки |
net.trainParam.min_grad | 1e-10 | Минимальный градиент производительности |
net.trainParam.searchFcn | 'srchbac' | Имя подпрограммы поиска строк для использования |
net.trainParam.show | 25 | Периоды между дисплеями ( |
net.trainParam.showCommandLine | false | Создание выходных данных командной строки |
net.trainParam.showWindow | true | Показать графический интерфейс пользователя для обучения |
net.trainParam.time | inf | Максимальное время обучения в секундах |
Параметры, относящиеся к методам поиска строк (не все используются для всех методов):
net.trainParam.scal_tol | 20 | Разделить на |
net.trainParam.alpha | 0.001 | Масштабный коэффициент, определяющий достаточное снижение |
net.trainParam.beta | 0.1 | Масштабный коэффициент, определяющий достаточно большой размер шага |
net.trainParam.delta | 0.01 | Начальный размер шага в шаге определения местоположения интервала |
net.trainParam.gama | 0.1 | Параметр, позволяющий избежать небольшого снижения производительности, обычно устанавливается на |
net.trainParam.low_lim | 0.1 | Нижний предел изменения размера шага |
net.trainParam.up_lim | 0.5 | Верхний предел изменения размера шага |
net.trainParam.maxstep | 100 | Максимальная длина шага |
net.trainParam.minstep | 1.0e-6 | Минимальная длина шага |
net.trainParam.bmax | 26 | Максимальный размер шага |
Можно создать стандартную сеть, использующую trainoss с feedforwardnet или cascadeforwardnet. Подготовка пользовательской сети для обучения trainoss:
Набор net.trainFcn кому 'trainoss'. Эти наборы net.trainParam кому trainossПараметры по умолчанию.
Набор net.trainParam свойств к требуемым значениям.
В любом случае вызов train с результирующей сетью направляет сеть с trainoss.
trainoss может обучать любую сеть, если ее функции веса, чистого ввода и переноса имеют производные функции.
Обратное распространение используется для расчета производных производительности perf в отношении переменных веса и смещения X. Каждая переменная корректируется в соответствии со следующим:
X = X + a*dX;
где dX - направление поиска. Параметр a выбирается для минимизации производительности вдоль направления поиска. Функция поиска строк searchFcn используется для определения местоположения минимальной точки. Первое направление поиска - это негатив градиента производительности. В последующих итерациях направление поиска вычисляется из нового градиента и предыдущих шагов и градиентов по следующей формуле:
dX = -gX + Ac*X_step + Bc*dgX;
где gX - градиент, X_step - изменение весов в предыдущей итерации, и dgX - изменение градиента по сравнению с последней итерацией. Более подробное обсуждение алгоритма с одностадийным сечением см. в документе Battiti (Neural Computation, Vol. 4, 1992, стр. 141-166).
Обучение прекращается при возникновении любого из следующих условий:
Максимальное количество epochs (повторы) достигается.
Максимальная сумма time превышено.
Производительность минимизирована для goal.
Градиент производительности падает ниже min_grad.
Производительность проверки возросла более чем max_fail раз с момента последнего уменьшения (при использовании проверки).
Баттити, Р., «Методы обучения первого и второго порядка: Между самым крутым спуском и методом Ньютона», Neural Computation, Vol. 4, № 2, 1992, стр. 141-166
trainbfg | traincgb | traincgf | traincgp | traingda | traingdm | traingdx | trainlm | trainrp | trainscg