主要内容

trainbr

贝叶斯正则化逆产

描述

网。trainFcn = 'trainbr'设置网络trainFcn财产。

例子

trainedNet,tr] =火车(,……)用以下方法训练网络trainbr

trainbr是一个网络训练函数,根据Levenberg-Marquardt优化更新权值和偏差值。它将平方误差和权值的组合最小化,然后确定正确的组合,从而生成一个具有良好泛化能力的网络。这个过程叫做贝叶斯正则化。

培训是根据trainbr培训参数,此处以其默认值显示:

  • net.trainparam.echs.-需要训练的最大纪元数。默认值为1000。

  • net.trainParam.goal- 绩效目标。默认值为0。

  • net.trainparam.mu.- Marquardt调整参数。默认值为0.005。

  • net.trainParam.mu_dec- 减少因素.默认值为0.1。

  • net.trainParam.mu_inc-增加因子.缺省值是10。

  • net.trainParam.mu_max—mu的最大值。默认值为1E10

  • net.trainParam.max_fail—最大验证失败。默认值为INF.

  • net.trainParam.min_grad—性能梯度最小。默认值为1 e -

  • net.trainParam.show-显示之间的年代(没有显示)。默认值为25。

  • net.trainparam.showcommandline.- 生成命令行输出。默认值为

  • net.trainparam.showwindow.-显示训练GUI。默认值为真实

  • net.trainParam.time最长训练时间,以秒为单位。默认值为INF.

默认情况下禁用验证停止(max_fail = Inf.),以便继续训练,直到找到误差和权重的最佳组合。然而,如果通过设置启用验证,在较短的训练时间内仍然可以实现一些重量/偏差最小化max_fail.到6或其他严格为正的值。

例子

全部折叠

这个例子展示了如何解决一个由输入组成的问题p和目标t通过使用网络。它包括拟合一个带噪声的正弦波。

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

前馈网络由隐藏层的2个神经元组成。

网= feedforwardnet (2'trainbr');

在这里,网络被训练和测试。

网=火车(净、p、t);净(p) =

输入参数

全部折叠

输入网络,指定为网络对象。要创建网络对象,请使用以下命令:feedforwardnet或者narxnet

输出参数

全部折叠

训练有素的网络,作为一个返回网络对象。

培训记录(时代性能),作为一个结构返回,其字段取决于网络训练功能(net.NET.trainFcn).它可以包括诸如:

  • 培训,数据划分和性能函数和参数

  • 用于训练、验证和测试集的数据划分指标

  • 用于训练验证和测试集的数据划分掩码

  • 纪元数(num_epochs)和最佳时期(best_epoch).

  • 培训州名称列表().

  • 每个状态名称在整个训练中记录其值的字段

  • 最佳网络性能(best_perf,best_vperf,best_tperf

限制

此函数使用Jacobian进行计算,这假设性能是平方错误的均值或总和。因此,使用此功能培训的网络必须使用MSE或者上交所性能功能。

更多关于

全部折叠

网络使用

您可以创建一个使用的标准网络trainbrfeedforwardnet或者cascadeforwardnet..准备自定义网络培训trainbr,

  1. NET.trainFcn'trainbr'.这套net.trainparam.trainbr的默认参数。

  2. net.trainparam.属性设置为所需的值。

在任何一种情况下,呼叫火车使用生成的网络培训网络trainbr.看feedforwardnetcascadeforwardnet.为例子。

算法

trainbr可以训练任何网络,只要它的权值、净输入和传递函数都有导数函数。

贝叶斯正则化使平方误差和权值的线性组合最小化。它还对线性组合进行修正,使训练结束时得到的网络具有良好的泛化品质。看到麦凯(神经计算,第4卷,第3期,1992年,415至447页)和预见和哈根(神经网络国际联席会议的诉讼程序, 1997年6月),以更详细地讨论贝叶斯正则化。

该贝叶斯正则化在Levenberg-Marquardt算法中进行。backpropagation用于计算雅各比亚jX的性能性能关于重量和偏置变量X.根据Levenberg-Marquardt调整每个变量,

jj = jX * jX je = jX * E dX = -(jj+I*mu) \ je

在哪里E都是错误和是单位矩阵。

自适应值是增加了mu_inc直到上面所示的变化导致性能值降低。然后对网络进行更改,减少了mu_dec

当发生任何这些条件时,培训停止:

  • 最大数量时代(重复)已达到。

  • 最大数量时间是超过。

  • 性能被最小化到目标

  • 性能梯度下降min_grad

  • 超过mu_max

参考资料

大卫·j·C·麦凯“贝叶斯插值”。神经计算。卷。4,第392号,第392页,第415-447页。

[2]预见,F. Dan和Martin T. Hagan。“高斯 - 牛顿逼近贝叶斯学习。”神经网络国际联席会议的诉讼程序, 1997年6月。

在R2006A之前介绍