Байесовская регуляризация обратного распространения
net.trainFcn = 'trainbr' устанавливает сетевую trainFcn свойство.
[ обучает сеть с trainedNet,tr] = train(net,...)trainbr.
trainbr - функция сетевого обучения, которая обновляет вес и значения смещения в соответствии с оптимизацией Левенберга-Марквардта. Это минимизирует комбинацию квадратичных невязок и весов, а затем определяет правильную комбинацию так, чтобы создать сеть, которая хорошо обобщается. Процесс называется байесовской регуляризацией.
Обучение происходит согласно trainbr параметры обучения, показанные здесь с их значениями по умолчанию:
net.trainParam.epochs - Максимальное количество эпох для обучения. Значение по умолчанию является 1000.
net.trainParam.goal - Цель эффективности. Значение по умолчанию 0.
net.trainParam.mu - параметр регулировки Марквардта. Значение по умолчанию является 0.005.
net.trainParam.mu_dec - Коэффициент уменьшения для mu. Значение по умолчанию является 0,1.
net.trainParam.mu_inc - Коэффициент увеличения для mu. Значение по умолчанию является 10.
net.trainParam.mu_max - Максимальное значение для му. Значение по умолчанию 1e10.
net.trainParam.max_fail - Максимальные отказы в валидации. Значение по умолчанию inf.
net.trainParam.min_grad - Минимальный градиент эффективности. Значение по умолчанию 1e-7.
net.trainParam.show - Эпохи между отображениями (NaN при отсутствии отображений). Значение по умолчанию является 25.
net.trainParam.showCommandLine - Сгенерируйте выход в командной строке. Значение по умолчанию false.
net.trainParam.showWindow - Показать обучающий графический интерфейс пользователя. Значение по умолчанию true.
net.trainParam.time - Максимальное время обучения в секундах. Значение по умолчанию inf.
Остановки валидации отключены по умолчанию (max_fail = inf) чтобы обучение могло продолжаться до тех пор, пока не будет найдена оптимальная комбинация ошибок и весов. Однако некоторая минимизация веса/смещения все еще может быть достигнута с более коротким временем обучения, если валидация включена путем установки max_fail к 6 или некоторому другому строго положительному значению.
Эта функция использует Якобиан для вычислений, что принимает, что эффективность является средним значением или суммой квадратичных невязок. Поэтому сети, обученные с помощью этой функции, должны использовать или mse или sse эффективность.
trainbr может обучать любую сеть, пока ее вес, чистый вход и передаточные функции имеют производные функции.
Байесовская регуляризация минимизирует линейную комбинацию квадратичных невязок и весов. Он также изменяет линейную комбинацию, так что в конце обучения полученная сеть имеет хорошие качества обобщения. Более подробные дискуссии о байесовской регуляризации см. в изданиях MacKay (Neural Computation, Vol. 4, № 3, 1992, pp. 415-447) и Foresee and Hagan (Proceedings of the International Joint Conference on Neural Networks, June, 1997).
Эта байесовская регуляризация происходит в рамках алгоритма Левенберга-Марквардта. Backpropagation используется для вычисления якобианской jX от эффективности perf относительно переменных веса и смещения X. Каждая переменная корректируется согласно Левенбергу-Марквардту,
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] MacKay, David J. C. «Bayesian interpolation». Нейронные расчеты. Том 4, № 3, 1992, стр. 415-447.
[2] Предвидите, Ф. Дэн, и Мартин Т. Хаган. Гаусс-Ньютон приближения к байесовскому обучению. Материалы Международной совместной конференции по нейронным сетям, июнь 1997 года.
cascadeforwardnet | feedforwardnet | trainbfg | traincgb | traincgf | traincgp | traingda | traingdm | traingdx | trainlm | trainrp | trainscg