Обратная связь квазиньютона BFGS
net.trainFcn = 'trainbfg'
[net,tr] = train(net,...)
trainbfg сетевая учебная функция, которая обновляет вес и значения смещения согласно приближенному методу ньютона BFGS.
net.trainFcn = 'trainbfg' устанавливает сеть trainFcn свойство.
[net,tr] = train(net,...) обучает сеть с trainbfg.
Обучение происходит согласно trainbfg учебные параметры, показанные здесь с их значениями по умолчанию:
net.trainParam.epochs | 1000 | Максимальное количество эпох, чтобы обучаться |
net.trainParam.showWindow | true | Покажите учебное окно |
net.trainParam.show | 25 | Эпохи между отображениями (NaN ни для каких отображений) |
net.trainParam.showCommandLine | false | Сгенерируйте командную строку выход |
net.trainParam.goal | 0 | Цель производительности |
net.trainParam.time | inf | Максимальное время, чтобы обучаться в секундах |
net.trainParam.min_grad | 1e-6 | Минимальный градиент производительности |
net.trainParam.max_fail | 6 | Максимальные отказы валидации |
net.trainParam.searchFcn | 'srchbac' | Имя линии ищет стандартную программу, чтобы использовать |
Параметры связаны с методами поиска линии (не все используемые во всех методах):
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 | Параметр, чтобы избежать маленьких сокращений производительности, обычно устанавливайте на 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 | Максимальный размер шага |
net.trainParam.batch_frag | 0 | В случае нескольких пакетов они рассматриваются независимыми. Любое ненулевое значение подразумевает фрагментированный пакет, таким образом, условия последнего слоя предыдущей обученной эпохи используются в качестве начальных условий в течение следующей эпохи. |
Можно создать стандартную сеть, которая использует trainbfg с feedfowardnet или cascadeforwardnet. Подготовить пользовательскую сеть, которая будет обучена с trainbfg:
Установите NET.trainFcn к 'trainbfg'. Это устанавливает NET.trainParam к trainbfgпараметры по умолчанию.
Установите NET.trainParam свойства к требуемым значениям.
В любом случае, вызывая train с получившейся сетью обучает сеть с trainbfg.
trainbfg может обучить любую сеть пока ее вес, сетевой вход, и передаточные функции имеют производные функции.
Обратная связь используется, чтобы вычислить производные производительности perf относительно веса и переменных X смещения. Каждая переменная настроена согласно следующему:
X = X + a*dX;
где dX поисковое направление. Параметр a выбран, чтобы минимизировать производительность вдоль поискового направления. Поиск линии функционирует searchFcn используется, чтобы определить местоположение минимальной точки. Первое поисковое направление является отрицанием градиента производительности. В последующих итерациях поисковое направление вычисляется согласно следующей формуле:
dX = -H\gX;
где gX градиент и H аппроксимированная матрица Гессиана. Смотрите страницу 119 Жабр, Мюррея и Райта (Практическая Оптимизация, 1981) для более детального обсуждения приближенного метода ньютона BFGS.
Обучение останавливается, когда любое из этих условий происходит:
Максимальное количество epochs (повторения) достигнуты.
Максимальная сумма time превышен.
Производительность минимизирована к goal.
Градиент производительности падает ниже min_grad.
Производительность валидации увеличила больше, чем max_fail времена с прошлого раза это уменьшилось (при использовании валидации).
Жабры, Murray, & Wright, практическая оптимизация, 1981
cascadeforwardnet | feedforwardnet | traincgb | traincgf | traincgp | traingda | traingdm | traingdx | trainlm | trainoss | trainrp | trainscg