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