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