Градиентный спуск с импульсом и адаптивная обратная реализация скорости обучения
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
раз с момента последнего уменьшения (при использовании валидации).