Градиентный спуск с адаптивной обратной связью скорости обучения
net.trainFcn = 'traingda' устанавливает сеть trainFcn свойство.
[ обучает сеть с trainedNet,tr] = train(net,...)traingda.
traingda сетевая учебная функция, которая обновляет вес и значения смещения согласно градиентному спуску с адаптивной скоростью обучения.
Обучение происходит согласно traingda параметры обучения, показанные здесь с их значениями по умолчанию:
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.min_grad — Минимальный градиент эффективности. Значением по умолчанию является 1e-5.
net.trainParam.show — Эпохи между отображениями (NaN ни для каких отображений). Значение по умолчанию равняется 25.
net.trainParam.showCommandLine — Сгенерируйте командную строку выход. Значением по умолчанию является false.
net.trainParam.showWindow — Покажите учебный графический интерфейс пользователя. Значением по умолчанию является true.
net.trainParam.time — Максимальное время, чтобы обучаться в секундах. Значением по умолчанию является inf.
traingda может обучить любую сеть пока ее вес, сетевой вход, и передаточные функции имеют производные функции.
Обратная связь используется, чтобы вычислить производные эффективности dperf относительно веса и переменных X смещения. Каждая переменная настроена согласно градиентному спуску:
dX = lr*dperf/dX
В каждую эпоху, если снижения производительности к цели, то скорость обучения увеличена на факторный lr_inc. Если эффективность увеличивается больше, чем факторный max_perf_inc, скорость обучения настроена факторным lr_dec и изменение, которое увеличило эффективность, не внесено.
Обучение останавливается, когда любое из этих условий происходит:
Максимальное количество epochs (повторения) достигнуты.
Максимальная сумма time превышен.
Эффективность минимизирована к goal.
Градиент эффективности падает ниже min_grad.
Эффективность валидации увеличила больше, чем max_fail времена с прошлого раза это уменьшилось (при использовании валидации).