Байесова обратная связь регуляризации
net.trainFcn = 'trainbr'
[net,tr] = train(net,...)
trainbr
является сетевой учебной функцией, которая обновляет вес и значения смещения согласно оптимизации Levenberg-Marquardt. Это минимизирует комбинацию квадратичных невязок и весов, и затем определяет правильную комбинацию, чтобы произвести сеть, которая делает вывод хорошо. Процесс называется Байесовой регуляризацией.
net.trainFcn = 'trainbr'
устанавливает свойство сети trainFcn
.
[net,tr] = train(net,...)
обучает сеть с trainbr
.
Обучение происходит согласно параметрам обучения trainbr
, показанным здесь с их значениями по умолчанию:
net.trainParam.epochs | 1000 | Максимальное количество эпох, чтобы обучаться |
net.trainParam.goal | 0 | Цель производительности |
net.trainParam.mu | 0.005 | Параметр корректировки Marquardt |
net.trainParam.mu_dec | 0.1 | Фактор уменьшения для |
net.trainParam.mu_inc | 10 | Фактор увеличения для |
net.trainParam.mu_max | 1e10 | Максимальное значение для |
net.trainParam.max_fail | inf | Максимальные отказы валидации |
net.trainParam.min_grad | 1e-7 | Минимальный градиент производительности |
net.trainParam.show | 25 | Эпохи между отображениями ( |
net.trainParam.showCommandLine | false | Сгенерируйте командную строку вывод |
net.trainParam.showWindow | true | Покажите учебный графический интерфейс пользователя |
net.trainParam.time | inf | Максимальное время, чтобы обучаться в секундах |
Остановки валидации отключены значением по умолчанию (max_fail = inf
) так, чтобы обучение могло продолжиться, пока оптимальная комбинация ошибок и весов не найдена. Однако некоторая минимизация веса/смещения может все еще быть достигнута с более короткими учебными временами, если валидация включена установкой max_fail
к 6 или некоторое другое строго положительное значение.
Можно создать стандартную сеть, которая использует trainbr
с feedforwardnet
или cascadeforwardnet
. Подготовить пользовательскую сеть, которая будет обучена с trainbr
,
Установите NET.trainFcn
на 'trainbr'
. Это устанавливает NET.trainParam
на параметры trainbr
по умолчанию.
Установите свойства 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.
cascadeforwardnet
| feedforwardnet
| trainbfg
| traincgb
| traincgf
| traincgp
| traingda
| traingdm
| traingdx
| trainlm
| trainrp
| trainscg