Обратная связь Levenberg-Marquardt
net.trainFcn = 'trainlm'
устанавливает сеть trainFcn
свойство.
[
обучает сеть с trainedNet
,tr
] = train(net
,...)trainlm
.
trainlm
сетевая учебная функция, которая обновляет вес и значения смещения согласно оптимизации Levenberg-Marquardt.
trainlm
часто самый быстрый алгоритм обратного распространения в тулбоксе и настоятельно рекомендован, когда предпочтительный вариант контролировал алгоритм, несмотря на то, что действительно требуется больше памяти, чем другие алгоритмы.
Обучение происходит согласно trainlm
параметры обучения, показанные здесь с их значениями по умолчанию:
net.trainParam.epochs
— Максимальное количество эпох, чтобы обучаться. Значение по умолчанию 1000.
net.trainParam.goal
— Цель эффективности. Значение по умолчанию 0.
net.trainParam.max_fail
— Максимальные отказы валидации. Значением по умолчанию является 6
.
net.trainParam.min_grad
— Минимальный градиент эффективности. Значением по умолчанию является 1e-7
.
net.trainParam.mu
— Начальный mu
. Значение по умолчанию 0.001.
net.trainParam.mu_dec
— Фактор уменьшения для mu
. Значение по умолчанию 0.1.
net.trainParam.mu_inc
— Фактор увеличения для mu
. Значение по умолчанию равняется 10.
net.trainParam.mu_max
— Максимальное значение для mu
. Значением по умолчанию является 1e10
.
net.trainParam.show
— Эпохи между отображениями (NaN
ни для каких отображений). Значение по умолчанию равняется 25.
net.trainParam.showCommandLine
— Сгенерируйте командную строку выход. Значением по умолчанию является false
.
net.trainParam.showWindow
— Покажите учебный графический интерфейс пользователя. Значением по умолчанию является true
.
net.trainParam.time
— Максимальное время, чтобы обучаться в секундах. Значением по умолчанию является inf
.
Векторы валидации используются, чтобы остановить обучение рано, если производительность сети на векторах валидации не удается улучшиться или остается то же самое для max_fail
эпохи подряд. Тестовые векторы используются в качестве дальнейшей проверки, которую сеть обобщает хорошо, но не оказывайте влияние на обучение.
Эта функция использует якобиан для вычислений, который принимает, что эффективность является средним значением или суммой квадратичных невязок. Поэтому сети, обученные с этой функцией, должны использовать любого mse
или sse
функция эффективности.
trainlm
обучение поддержек с валидацией и тестовыми векторами, если NET.divideFcn
сети свойство установлено в функцию деления данных. Векторы валидации используются, чтобы остановить обучение рано, если производительность сети на векторах валидации не удается улучшиться или остается то же самое для
max_fail
эпохи подряд. Тестовые векторы используются в качестве дальнейшей проверки, которую сеть обобщает хорошо, но не оказывайте влияние на обучение.
trainlm
может обучить любую сеть пока ее вес, сетевой вход, и передаточные функции имеют производные функции.
Обратная связь используется, чтобы вычислить якобиевский jX
из эффективности perf
относительно веса и переменных X
смещения. Каждая переменная настроена согласно Levenberg-Marquardt,
jj = jX * jX je = jX * E dX = -(jj+I*mu) \ je
где E
все ошибки и I
единичная матрица.
Адаптивное значение mu
увеличен на mu_inc
до изменения выше результатов в уменьшаемом значении эффективности. Изменение затем внесено в сеть и mu
уменьшен mu_dec
.
Обучение останавливается, когда любое из этих условий происходит:
Максимальное количество epochs
(повторения) достигнуты.
Максимальная сумма time
превышен.
Эффективность минимизирована к goal
.
Градиент эффективности падает ниже min_grad
.
mu
превышает mu_max
.
Эффективность валидации увеличила больше, чем max_fail
времена с прошлого раза это уменьшилось (при использовании валидации).