traingdx

Спуск градиента с импульсом и адаптивной обратной связью темпа обучения

Синтаксис

net.trainFcn = 'traingdx'
[net,tr] = train(net,...)

Описание

traingdx является сетевой учебной функцией, которая обновляет вес и значения смещения согласно импульсу спуска градиента и адаптивному темпу обучения.

net.trainFcn = 'traingdx' устанавливает свойство сети trainFcn.

[net,tr] = train(net,...) обучает сеть с traingdx.

Обучение происходит согласно параметрам обучения traingdx, показанным здесь с их значениями по умолчанию:

net.trainParam.epochs1000

Максимальное количество эпох, чтобы обучаться

net.trainParam.goal0

Цель производительности

net.trainParam.lr0.01

Темп обучения

net.trainParam.lr_inc1.05

Отношение, чтобы увеличить темп обучения

net.trainParam.lr_dec0.7

Отношение, чтобы уменьшить темп обучения

net.trainParam.max_fail6

Максимальные отказы валидации

net.trainParam.max_perf_inc1.04

Увеличение максимальной производительности

net.trainParam.mc0.9

Постоянный импульс

net.trainParam.min_grad1e-5

Минимальный градиент производительности

net.trainParam.show25

Эпохи между отображениями (NaN ни для каких отображений)

net.trainParam.showCommandLinefalse

Сгенерируйте командную строку вывод

net.trainParam.showWindowtrue

Покажите учебный графический интерфейс пользователя

net.trainParam.timeinf

Максимальное время, чтобы обучаться в секундах

Сетевое использование

Можно создать стандартную сеть, которая использует traingdx с feedforwardnet или cascadeforwardnet. Подготовить пользовательскую сеть, которая будет обучена с traingdx,

  1. Установите net.trainFcn на 'traingdx'. Это устанавливает net.trainParam на параметры traingdx по умолчанию.

  2. Установите свойства net.trainParam на требуемые значения.

В любом случае, вызывая train с получившейся сетью обучает сеть с traingdx.

Смотрите help feedforwardnet и help cascadeforwardnet для примеров.

Алгоритмы

Функциональный traingdx комбинирует адаптивный темп обучения с обучением импульсу. Это вызывается таким же образом как traingda, за исключением того, что это имеет коэффициент импульса mc как дополнительный учебный параметр.

traingdx может обучить любую сеть пока ее вес, сетевой вход, и передаточные функции имеют производные функции.

Обратная связь используется, чтобы вычислить производные производительности perf относительно переменных X смещения и веса. Каждая переменная настроена согласно спуску градиента с импульсом,

dX = mc*dXprev + lr*mc*dperf/dX

где dXprev является предыдущим изменением в весе или смещении.

В течение каждой эпохи, если снижения производительности к цели, то темп обучения увеличен факторным lr_inc. Если увеличения производительности больше, чем факторный max_perf_inc, темп обучения настроен факторным lr_dec и изменением, которое увеличилось, производительность не сделана.

Обучение останавливается, когда любое из этих условий происходит:

  • Максимальное количество epochs (повторения) достигнуто.

  • Максимальная сумма time превышена.

  • Производительность минимизирована к goal.

  • Градиент производительности падает ниже min_grad.

  • Производительность валидации увеличила больше, чем времена max_fail с прошлого раза, когда это уменьшилось (при использовании валидации).

Смотрите также

| | |

Представлено до R2006a