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