Градиентный спуск с обратным распространением импульса
net.trainFcn = 'traingdm'
[net,tr] = train(net,...)
traingdm - сетевая обучающая функция, которая обновляет значения веса и смещения в соответствии с градиентным спуском с импульсом.
net.trainFcn = 'traingdm' устанавливает сеть trainFcn собственность.
[net,tr] = train(net,...) обучает сеть с помощью traingdm.
Обучение происходит в соответствии с traingdm параметры обучения, показанные здесь с их значениями по умолчанию:
net.trainParam.epochs | 1000 | Максимальное количество периодов для обучения |
net.trainParam.goal | 0 | Цель производительности |
net.trainParam.lr | 0.01 | Уровень обучения |
net.trainParam.max_fail | 6 | Максимальное количество сбоев проверки |
net.trainParam.mc | 0.9 | Постоянная импульса |
net.trainParam.min_grad | 1e-5 | Минимальный градиент производительности |
net.trainParam.show | 25 | Эпохи между показом прогресса |
net.trainParam.showCommandLine | false | Создание выходных данных командной строки |
net.trainParam.showWindow | true | Показать графический интерфейс пользователя для обучения |
net.trainParam.time | inf | Максимальное время обучения в секундах |
Можно создать стандартную сеть, использующую traingdm с feedforwardnet или cascadeforwardnet. Подготовка пользовательской сети для обучения traingdm,
Набор net.trainFcn кому 'traingdm'. Эти наборы net.trainParam кому traingdmПараметры по умолчанию.
Набор net.trainParam свойств к требуемым значениям.
В любом случае вызов train с результирующей сетью направляет сеть с traingdm.
Посмотрите help feedforwardnet и help cascadeforwardnet для примеров.
traingdm может обучать любую сеть, если ее функции веса, чистого ввода и переноса имеют производные функции.
Обратное распространение используется для расчета производных производительности perf в отношении переменных веса и смещения X. Каждая переменная регулируется в соответствии с градиентным спуском с импульсом,
dX = mc*dXprev + lr*(1-mc)*dperf/dX
где dXprev является предыдущим изменением веса или смещения.
Обучение прекращается при возникновении любого из следующих условий:
Максимальное количество epochs (повторы) достигается.
Максимальная сумма time превышено.
Производительность минимизирована для goal.
Градиент производительности падает ниже min_grad.
Производительность проверки возросла более чем max_fail раз с момента последнего уменьшения (при использовании проверки).