exponenta event banner

trainoss

Одношаговое секционное обратное распространение

Синтаксис

net.trainFcn = 'trainoss'
[net,tr] = train(net,...)

Описание

trainoss - сетевая обучающая функция, которая обновляет значения веса и смещения в соответствии с одностадийным методом секущих.

net.trainFcn = 'trainoss' устанавливает сеть trainFcn собственность.

[net,tr] = train(net,...) обучает сеть с помощью trainoss.

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

net.trainParam.epochs1000

Максимальное количество периодов для обучения

net.trainParam.goal0

Цель производительности

net.trainParam.max_fail6

Максимальное количество сбоев проверки

net.trainParam.min_grad1e-10

Минимальный градиент производительности

net.trainParam.searchFcn'srchbac'

Имя подпрограммы поиска строк для использования

net.trainParam.show25

Периоды между дисплеями (NaN для без дисплеев)

net.trainParam.showCommandLinefalse

Создание выходных данных командной строки

net.trainParam.showWindowtrue

Показать графический интерфейс пользователя для обучения

net.trainParam.timeinf

Максимальное время обучения в секундах

Параметры, относящиеся к методам поиска строк (не все используются для всех методов):

net.trainParam.scal_tol20

Разделить на delta для определения допуска для линейного поиска.

net.trainParam.alpha0.001

Масштабный коэффициент, определяющий достаточное снижение perf

net.trainParam.beta0.1

Масштабный коэффициент, определяющий достаточно большой размер шага

net.trainParam.delta0.01

Начальный размер шага в шаге определения местоположения интервала

net.trainParam.gama0.1

Параметр, позволяющий избежать небольшого снижения производительности, обычно устанавливается на 0.1 (см. srch_cha)

net.trainParam.low_lim0.1

Нижний предел изменения размера шага

net.trainParam.up_lim 0.5

Верхний предел изменения размера шага

net.trainParam.maxstep100

Максимальная длина шага

net.trainParam.minstep1.0e-6

Минимальная длина шага

net.trainParam.bmax26

Максимальный размер шага

Использование в сети

Можно создать стандартную сеть, использующую trainoss с feedforwardnet или cascadeforwardnet. Подготовка пользовательской сети для обучения trainoss:

  1. Набор net.trainFcn кому 'trainoss'. Эти наборы net.trainParam кому trainossПараметры по умолчанию.

  2. Набор net.trainParam свойств к требуемым значениям.

В любом случае вызов train с результирующей сетью направляет сеть с trainoss.

Примеры

свернуть все

В этом примере показано, как обучить нейронную сеть с помощью trainoss функция поезда.

Здесь нейронную сеть обучают предсказывать процентное содержание жира в организме.

[x, t] = bodyfat_dataset;
net = feedforwardnet(10, 'trainoss');
net = train(net, x, t);
y = net(x);

Подробнее

свернуть все

Одношаговый секущий метод

Поскольку алгоритм BFGS требует большего объема памяти и вычислений в каждой итерации, чем алгоритмы сопряженного градиента, существует потребность в секущей аппроксимации с меньшими требованиями к хранению и вычислениям. Метод одностадийного секанта (OSS) представляет собой попытку преодолеть зазор между алгоритмами сопряженного градиента и алгоритмами квази-ньютона (секанта). Этот алгоритм не хранит полную матрицу Гессена; предполагается, что при каждой итерации предыдущая гессенская была матрицей тождества. Это имеет дополнительное преимущество, заключающееся в том, что новое направление поиска может быть вычислено без вычисления обратной матрицы.

Одностадийный способ секущей обработки описан в [Batt92]. Этот алгоритм требует меньшего объема памяти и вычислений за период, чем алгоритм BFGS. Для этого требуется немного больше памяти и вычислений за эпоху, чем для алгоритмов сопряженного градиента. Его можно считать компромиссом между полными квази-ньютоновскими алгоритмами и сопряжёнными градиентными алгоритмами.

Алгоритмы

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

Представлен до R2006a