trainbr

Байесова обратная связь регуляризации

Синтаксис

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

Описание

trainbr сетевая учебная функция, которая обновляет вес и значения смещения согласно оптимизации Levenberg-Marquardt. Это минимизирует комбинацию квадратичных невязок и весов, и затем определяет правильную комбинацию, чтобы произвести сеть, которая делает вывод хорошо. Процесс называется Байесовой регуляризацией.

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

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

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

net.trainParam.epochs1000

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

net.trainParam.goal0

Цель эффективности

net.trainParam.mu0.005

Параметр корректировки Marquardt

net.trainParam.mu_dec0.1

Фактор уменьшения для mu

net.trainParam.mu_inc10

Фактор увеличения для mu

net.trainParam.mu_max1e10

Максимальное значение для mu

net.trainParam.max_failinf

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

net.trainParam.min_grad1e-7

Минимальный градиент эффективности

net.trainParam.show25

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

net.trainParam.showCommandLinefalse

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

net.trainParam.showWindowtrue

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

net.trainParam.timeinf

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

Остановки валидации отключены по умолчанию (max_fail = inf) так, чтобы обучение могло продолжиться, пока оптимальная комбинация ошибок и весов не найдена. Однако некоторая минимизация веса/смещения может все еще быть достигнута с более короткими учебными временами, если валидация включена установкой max_fail к 6 или некоторое другое строго положительное значение.

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

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

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

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

В любом случае, вызывая train с получившейся сетью обучает сеть с trainbr. Смотрите feedforwardnet и cascadeforwardnet для примеров.

Примеры

Вот проблема, состоящая из входных параметров p и цели t быть решенным с сетью. Это включает подбор кривой шумной синусоиде.

p = [-1:.05:1];
t = sin(2*pi*p)+0.1*randn(size(p));

Сеть прямого распространения создается со скрытым слоем 2 нейронов.

net = feedforwardnet(2,'trainbr');

Здесь сеть обучена и протестирована.

net = train(net,p,t);
a = net(p)

Ограничения

Эта функция использует якобиан для вычислений, который принимает, что эффективность является средним значением или суммой квадратичных невязок. Поэтому сети, обученные с этой функцией, должны использовать любого mse или sse функция эффективности.

Алгоритмы

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

Байесова регуляризация минимизирует линейную комбинацию квадратичных невязок и весов. Это также изменяет линейную комбинацию так, чтобы в конце обучения получившейся сети имел хорошие качества обобщения. Смотрите Маккея (Нейронный Расчет, Издание 4, № 3, 1992, стр 415 - 447) и Предвидите и Хейган (Продолжения Международной Объединенной Конференции по Нейронным сетям, июнь 1997) для более детальных обсуждений Байесовой регуляризации.

Эта Байесова регуляризация происходит в рамках алгоритма Levenberg-Marquardt. Обратная связь используется, чтобы вычислить якобиевский 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.

Ссылки

[1] Маккей, Дэвид Дж. К. "Байесова интерполяция". Нейронный расчет. Издание 4, № 3, 1992, стр 415–447.

[2] Предвидите, Ф. Дэн и Мартин Т. Хейган. "Приближение ньютона гаусса к Байесовому изучению". Продолжения Международной Объединенной Конференции по Нейронным сетям, июнь 1997.

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