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