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