Градиентный спуск с импульсом и адаптивной обратной связью скорости обучения
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
может обучить любую сеть пока ее вес, сетевой вход, и передаточные функции имеют производные функции.
Обратная связь используется, чтобы вычислить производные эффективности perf
относительно веса и переменных X
смещения. Каждая переменная настроена согласно градиентному спуску с импульсом,
dX = mc*dXprev + lr*mc*dperf/dX
где dXprev
предыдущее изменение в весе или смещении.
В течение каждой эпохи, если снижения производительности к цели, то скорость обучения увеличена на факторный lr_inc
. Если эффективность увеличивается больше, чем факторный max_perf_inc
, скорость обучения настроена факторным lr_dec
и изменение, которое увеличило эффективность, не внесено.
Обучение останавливается, когда любое из этих условий происходит:
Максимальное количество epochs
(повторения) достигнуты.
Максимальная сумма time
превышен.
Эффективность минимизирована к goal
.
Градиент эффективности падает ниже min_grad
.
Эффективность валидации увеличила больше, чем max_fail
времена с прошлого раза это уменьшилось (при использовании валидации).