Обратная связь метода сопряженных градиентов с обновлениями Полака-Рибиера
net.trainFcn = 'traincgp'
[net,tr] = train(net,...)
traincgp
является сетевой учебной функцией, которая обновляет вес и значения смещения согласно обратной связи метода сопряженных градиентов с обновлениями Полака-Рибиера.
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
с прошлого раза, когда это уменьшилось (при использовании валидации).
Шкалы, L.E., введение в нелинейную оптимизацию, Нью-Йорк, Springer-Verlag, 1985
trainbfg
| traincgb
| traincgf
| traingda
| traingdm
| traingdx
| trainlm
| trainoss
| trainrp
| trainscg