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