Градиентный спуск с импульсом и адаптивная обратная реализация скорости обучения
net.trainFcn = 'traingdx' устанавливает сетевую trainFcn свойство.
[ обучает сеть с trainedNet,tr] = train(net,...)traingdx.
traingdx является сетевой функцией обучения, которая обновляет значения веса и смещения в соответствии с импульсом градиентного спуска и адаптивной скоростью обучения.
Обучение происходит согласно traingdx параметры обучения, показанные здесь с их значениями по умолчанию:
net.trainParam.epochs - Максимальное количество эпох для обучения. Значение по умолчанию является 1000.
net.trainParam.goal - Цель эффективности. Значение по умолчанию 0.
net.trainParam.lr - Скорость обучения. Значение по умолчанию является 0,01.
net.trainParam.lr_inc - Отношение к увеличению скорости обучения. Значение по умолчанию является 1.05.
net.trainParam.lr_dec - Отношение к снижению скорости обучения. Значение по умолчанию является 0,7.
net.trainParam.max_fail - Максимальные отказы в валидации. Значение по умолчанию 6.
net.trainParam.max_perf_inc - Максимальное увеличение эффективности. Значение по умолчанию 1.04.
net.trainParam.mc - Постоянная импульса. Значение по умолчанию 0.9.
net.trainParam.min_grad - Минимальный градиент эффективности. Значение по умолчанию 1e-5.
net.trainParam.show - Эпохи между отображениями (NaN при отсутствии отображений). Значение по умолчанию является 25.
net.trainParam.showCommandLine - Сгенерируйте выход в командной строке. Значение по умолчанию false.
net.trainParam.showWindow - Показать обучающий графический интерфейс пользователя. Значение по умолчанию true.
net.trainParam.time - Максимальное время обучения в секундах. Значение по умолчанию inf.
Функция traingdx объединяет адаптивную скорость обучения с обучением импульсом. Он вызывается так же, как и traingda, за исключением того, что он имеет коэффициент импульса mc как дополнительный параметр обучения.
traingdx может обучать любую сеть, пока ее вес, чистый вход и передаточные функции имеют производные функции.
Backpropagation используется для вычисления производных от perf эффективности относительно переменных веса и смещения X. Каждая переменная настраивается в соответствии с градиентным спуском с импульсом,
dX = mc*dXprev + lr*mc*dperf/dX
где dXprev - это предыдущее изменение веса или смещения.
Для каждой эпохи, если эффективность уменьшается к цели, то скорость обучения увеличивается на множитель lr_inc. Если эффективность увеличивается больше, чем коэффициент max_perf_inc, скорость обучения корректируется фактором lr_dec и изменение, которое увеличило эффективность, не производится.
Обучение останавливается, когда происходит любое из следующих условий:
Максимальное количество epochs (повторения) достигается.
Максимальное количество time превышено.
Эффективность минимизирована до goal.
Градиент эффективности падает ниже min_grad.
Эффективность валидации увеличилась более чем max_fail раз с момента последнего уменьшения (при использовании валидации).