Спряжение градиентного обратного распространения с обновлениями Polak-Ribiére
net.trainFcn = 'traincgp'
[net,tr] = train(net,...)
traincgp - сетевая обучающая функция, которая обновляет значения веса и смещения в соответствии с сопряженным градиентным обратным распространением с обновлениями Polak-Ribiére.
net.trainFcn = 'traincgp' устанавливает сеть trainFcn собственность.
[net,tr] = train(net,...) обучает сеть с помощью traincgp.
Обучение происходит в соответствии с traincgp параметры обучения, показанные здесь с их значениями по умолчанию:
net.trainParam.epochs | 1000 | Максимальное количество периодов для обучения |
net.trainParam.show | 25 | Периоды между дисплеями ( |
net.trainParam.showCommandLine | false | Создание выходных данных командной строки |
net.trainParam.showWindow | true | Показать графический интерфейс пользователя для обучения |
net.trainParam.goal | 0 | Цель производительности |
net.trainParam.time | inf | Максимальное время обучения в секундах |
net.trainParam.min_grad | 1e-10 | Минимальный градиент производительности |
net.trainParam.max_fail | 6 | Максимальное количество сбоев проверки |
net.trainParam.searchFcn | 'srchcha' | Имя подпрограммы поиска строк для использования |
Параметры, относящиеся к методам поиска строк (не все используются для всех методов):
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 | Максимальный размер шага |
Можно создать стандартную сеть, использующую traincgp с feedforwardnet или cascadeforwardnet. Подготовка пользовательской сети для обучения traincgp,
Набор net.trainFcn кому 'traincgp'. Эти наборы net.trainParam кому traincgpПараметры по умолчанию.
Набор net.trainParam свойств к требуемым значениям.
В любом случае вызов train с результирующей сетью направляет сеть с traincgp.
traincgp может обучать любую сеть, если ее функции веса, чистого ввода и переноса имеют производные функции.
Обратное распространение используется для расчета производных производительности perf в отношении переменных веса и смещения X. Каждая переменная корректируется в соответствии со следующим:
X = X + a*dX;
где dX - направление поиска. Параметр a выбирается для минимизации производительности вдоль направления поиска. Функция поиска строк searchFcn используется для определения местоположения минимальной точки. Первое направление поиска - это негатив градиента производительности. В последующих итерациях направление поиска вычисляется из нового градиента и предыдущего направления поиска согласно формуле.
dX = -gX + dX_old*Z;
где gX - градиент. Параметр Z может быть вычислено несколькими различными способами. Для вариации Полака-Рибьера градиента конъюгата он вычисляется в соответствии с
Z = ((gX - gX_old)'*gX)/norm_sqr;
где norm_sqr - нормальный квадрат предыдущего градиента, и gX_old - градиент предыдущей итерации. Более подробное обсуждение алгоритма см. на стр. 78 документа «Шкалы» (Введение в нелинейную оптимизацию, 1985).
Обучение прекращается при возникновении любого из следующих условий:
Максимальное количество epochs (повторы) достигается.
Максимальная сумма time превышено.
Производительность минимизирована для goal.
Градиент производительности падает ниже min_grad.
Производительность проверки возросла более чем max_fail раз с момента последнего уменьшения (при использовании проверки).
Весы, Л.Е., Введение в нелинейную оптимизацию, Нью-Йорк, Спрингер-Верлаг, 1985
trainbfg | traincgb | traincgf | traingda | traingdm | traingdx | trainlm | trainoss | trainrp | trainscg