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