Сопряженная градиентная обратная реализация с перезапусками Пауэлла-Била
net.trainFcn = 'traincgb'
[net,tr] = train(net,...)
traincgb - функция сетевого обучения, которая обновляет значения веса и смещения в соответствии с сопряженным обратным распространением градиента с перезапусками Powell-Beale.
net.trainFcn = 'traincgb' устанавливает сетевую trainFcn свойство.
[net,tr] = train(net,...) обучает сеть с traincgb.
Обучение происходит согласно traincgb параметры обучения, показанные здесь с их значениями по умолчанию:
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 | Максимальный размер шага |
Можно создать стандартную сеть, которая использует traincgb с feedforwardnet или cascadeforwardnet.
Чтобы подготовить пользовательскую сеть для обучения с traincgb,
Задайте net.trainFcn на 'traincgb'. Это устанавливает net.trainParam на traincgbпараметры по умолчанию.
Задайте net.trainParam свойства к желаемым значениям.
В любом случае вызов train с полученной сетью обучает сеть с traincgb.
traincgb может обучать любую сеть, пока ее вес, чистый вход и передаточные функции имеют производные функции.
Backpropagation используется для вычисления производных от perf эффективности относительно переменных веса и смещения X. Каждая переменная настраивается согласно следующему:
X = X + a*dX;
где dX - направление поиска. Значение параметра a выбран для минимизации эффективности в поисковом направлении. Функция поиска по линии searchFcn используется для определения местоположения минимальной точки. Первое направление поиска является отрицательным для градиента эффективности. В последующих итерациях направление поиска вычисляется из нового градиента и предыдущего направления поиска согласно формуле
dX = -gX + dX_old*Z;
где gX - градиент. Значение параметра Z может быть вычислен несколькими различными способами. Изменение сопряженного градиента Пауэлла-Била отличается двумя функциями. Во-первых, алгоритм использует тест, чтобы определить, когда сбросить направление поиска к отрицательному значению градиента. Во-вторых, направление поиска вычисляется из отрицательного градиента, предыдущего направления поиска и последнего направления поиска перед предыдущим сбросом. Более подробное обсуждение алгоритма смотрите в Powell, Mathematical Programming, Vol. 12, 1977, pp. 241 to 254.
Обучение останавливается, когда происходит любое из следующих условий:
Максимальное количество epochs (повторения) достигается.
Максимальное количество time превышено.
Эффективность минимизирована до goal.
Градиент эффективности падает ниже min_grad.
Эффективность валидации увеличилась более чем max_fail раз с момента последнего уменьшения (при использовании валидации).
Powell, M.J.D., «Restart procedures for the conjugate gradient method», Mathematical Programming, Vol. 12, 1977, pp. 241-254
trainbfg | traincgf | traincgp | traingda | traingdm | traingdx | trainlm | trainoss | trainscg