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_lim0.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.

Примеры

свернуть все

Этот пример показывает, как обучить нейронную сеть с помощью функции train 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 (Нейронное Вычисление, Издание 4, 1992, стр 141–166) для более детального обсуждения секущего алгоритма с одним шагом.

Обучение останавливается, когда любое из этих условий происходит:

  • Максимальное количество epochs (повторения) достигнуто.

  • Максимальная сумма time превышена.

  • Производительность минимизирована к goal.

  • Градиент производительности падает ниже min_grad.

  • Производительность валидации увеличила больше, чем времена max_fail с прошлого раза, когда это уменьшилось (при использовании валидации).

Ссылки

Battiti, R., “Методы Первого и второго порядка для изучения: Между быстрейшим спуском и методом Ньютона”, Нейронное Вычисление, Издание 4, № 2, 1992, стр 141–166

Смотрите также

| | | | | | | | |

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