traincgb

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

Синтаксис

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

Описание

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

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

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

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

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

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

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

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

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

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

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

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

Примеры

свернуть все

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

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

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

Больше о

свернуть все

Алгоритм Пауэлла-Биля

Для всех алгоритмов метода сопряженных градиентов поисковое направление периодически сбрасывается к отрицанию градиента. Стандартная точка сброса происходит, когда количество итераций равно количеству сетевых параметров (веса и смещения), но существуют другие методы сброса, которые могут повысить эффективность обучения. Один такой метод сброса был предложен Пауэллом [Powe77], на основе более ранней версии, предложенной Билем [Beal72]. Этот метод перезапускает, если существует очень мало ортогональности, оставленной между текущим градиентом и предыдущим градиентом. Это тестируется со следующим неравенством:

|gk1Tgk|0.2gk2

Если этому условию удовлетворяют, поисковое направление сбрасывается к отрицанию градиента.

traincgb стандартная программа имеет несколько лучшую эффективность, чем traincgp для некоторых проблем, несмотря на то, что эффективность на любой данной проблеме затрудняет, чтобы предсказать. Требования устройства хранения данных для алгоритма Пауэлла-Биля (шесть векторов) немного больше, чем для Полака-Рибиера (четыре вектора).

Алгоритмы

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

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

X = X + a*dX;

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

dX = -gX + dX_old*Z;

где gX градиент. Параметр Z может быть вычислен несколькими различными способами. Изменение Пауэлла-Биля метода сопряженных градиентов отличают две функции. Во-первых, алгоритм использует тест, чтобы определить, когда сбросить поисковое направление к отрицанию градиента. Во-вторых, поисковое направление вычисляется из отрицательного градиента, предыдущего поискового направления и последнего поискового направления перед предыдущим сбросом. Смотрите Пауэлла, Математическое программирование, Издание 12, 1977, стр 241 - 254, для более детального обсуждения алгоритма.

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

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

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

  • Эффективность минимизирована к goal.

  • Градиент эффективности падает ниже min_grad.

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

Ссылки

Пауэлл, M.J.D., “Процедуры перезапуска для метода сопряженных градиентов”, Математическое программирование, Издание 12, 1977, стр 241–254

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

| | | | | | | |

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