traincgf

Обратная связь метода сопряженных градиентов с обновлениями Fletcher-надсмотрщиков

Синтаксис

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

Описание

traincgf сетевая учебная функция, которая обновляет вес и значения смещения согласно обратной связи метода сопряженных градиентов с обновлениями Fletcher-надсмотрщиков.

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

[net,tr] = train(net,...) обучает сеть с traincgf.

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

net.trainParam.epochs1000

Максимальное количество эпох, чтобы обучаться

net.trainParam.show25

Эпохи между отображениями (NaN ни для каких отображений)

net.trainParam.showCommandLinefalse

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

net.trainParam.showWindowtrue

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

net.trainParam.goal0

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

net.trainParam.timeinf

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

net.trainParam.min_grad1e-10

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

net.trainParam.max_fail6

Максимальные отказы валидации

net.trainParam.searchFcn'srchcha'

Имя линии ищет стандартную программу, чтобы использовать

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

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

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

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

Можно создать стандартную сеть, которая использует traincgf с feedforwardnet или cascadeforwardnet.

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

  1. Установите net.trainFcn к 'traincgf'. Это устанавливает net.trainParam к traincgfпараметры по умолчанию.

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

В любом случае, вызывая train с получившейся сетью обучает сеть с traincgf.

Примеры

свернуть все

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

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

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

Больше о

свернуть все

Алгоритмы метода сопряженных градиентов

Все алгоритмы метода сопряженных градиентов начинаются путем поиска в направлении быстрейшего спуска (отрицательный из градиента) на первой итерации.

p0=g0

Поиск линии затем выполняется, чтобы определить оптимальное расстояние, чтобы пройти текущее поисковое направление:

xk+1=xkαkpk

Затем следующее поисковое направление определяется так, чтобы это было сопряжено к предыдущим поисковым направлениям. Общая процедура для определения нового поискового направления должна объединить новое направление быстрейшего спуска с предыдущим поисковым направлением:

pk=gk+βkpk1

Различные версии алгоритма метода сопряженных градиентов отличает способ, которым вычисляется постоянный βk. Поскольку Fletcher-надсмотрщики обновляются, процедура

βk=gkTgkgk1Tgk1

Это - отношение нормы, в квадрате из текущего градиента к норме, в квадрате из предыдущего градиента.

См. [FlRe64] или [HDB96] для обсуждения алгоритма метода сопряженных градиентов Fletcher-надсмотрщиков.

Алгоритмы метода сопряженных градиентов обычно намного быстрее, чем переменная обратная связь темпа обучения и иногда быстрее, чем trainrp, несмотря на то, что результаты варьируются от одной проблемы до другого. Алгоритмы метода сопряженных градиентов требуют только немного большего количества устройства хранения данных, чем более простые алгоритмы. Поэтому эти алгоритмы хороши для сетей с большим количеством весов.

Попробуйте демонстрацию Проекта Нейронной сети nnd12cg [HDB96] для рисунка производительности алгоритма метода сопряженных градиентов.

Алгоритмы

traincgf может обучить любую сеть пока ее вес, сетевой вход, и передаточные функции имеют производные функции.

Обратная связь используется, чтобы вычислить производные производительности perf относительно веса и переменных X смещения. Каждая переменная настроена согласно следующему:

X = X + a*dX;

где dX поисковое направление. Параметр a выбран, чтобы минимизировать производительность вдоль поискового направления. Поиск линии функционирует searchFcn используется, чтобы определить местоположение минимальной точки. Первое поисковое направление является отрицанием градиента производительности. В последующих итерациях поисковое направление вычисляется из нового градиента и предыдущего поискового направления, согласно формуле

dX = -gX + dX_old*Z;

где gX градиент. Параметр Z может быть вычислен несколькими различными способами. Для изменения Fletcher-надсмотрщиков метода сопряженных градиентов это вычисляется согласно

Z = normnew_sqr/norm_sqr;

где norm_sqr квадрат нормы предыдущего градиента и normnew_sqr квадрат нормы текущего градиента. Смотрите страницу 78 Шкал (Введение в Нелинейную Оптимизацию) для более детального обсуждения алгоритма.

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

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

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

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

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

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

Ссылки

Шкалы, L.E., введение в нелинейную оптимизацию, Нью-Йорк, Springer-Verlag, 1985

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

| | | | | | | |

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