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