主要内容

trainscg

缩放共轭梯度反向传播

描述

net.trainFcn= 'trainscg'设置网络trainFcn财产。

trainedNettr) =火车(,……)用以下方法训练网络trainscg

trainscg是根据比例共轭梯度法更新权值和偏差值的网络训练函数。

培训是根据trainscg训练参数,这里显示了它们的默认值:

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

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

  • net.trainParam.showCommandLine—生成命令行输出。默认值为

  • net.trainParam.showWindow-显示训练GUI。默认值为真正的

  • net.trainParam.goal——性能目标。默认值为0。

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

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

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

  • net.trainParam.mu-马夸特调整参数。默认值为0.005。

  • net.trainParam.sigma-确定二阶导数近似的重量变化。默认值为5.0 e-5

  • net.trainParam.lambda-调节黑森语不确定性的参数。默认值为5.0 e -

例子

全部折叠

这个例子展示了如何解决一个由输入组成的问题p和目标t通过使用网络。

P = [0 1 2 3 4 5];T = [0 0 0 1 1 1];

建立了一个具有两个隐藏神经元的二层前馈网络,并给出了该网络的训练函数。

网= feedforwardnet (2“trainscg”);

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

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

看到帮助feedforwardnet帮助cascadeforwardnet其他的例子。

输入参数

全部折叠

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

输出参数

全部折叠

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

培训记录(时代性能),返回为一个结构,其字段依赖于网络训练函数(net.NET.trainFcn).它可以包括以下字段:

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

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

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

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

  • 训练州名单().

  • 在整个训练过程中记录其值的每个州名的字段

  • 最佳网络性能(best_perfbest_vperfbest_tperf

更多关于

全部折叠

网络使用

你可以创建一个标准的网络trainscgfeedforwardnetcascadeforwardnet.准备一个训练用的定制网络trainscg

  1. net.trainFcn“trainscg”.这集net.trainParamtrainscg的默认参数。

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

不管是哪种情况,都是打电话火车用由此产生的网络来训练网络trainscg

算法

trainscg可以训练任何网络,只要它的权值、净输入和传递函数都有导数函数。用反向传播来计算性能的导数性能关于权重和偏差变量X

缩放共轭梯度算法是基于共轭方向的,如traincgptraincgf,traincgb,但该算法并不在每次迭代时执行行搜索。看到莫勒(神经网络, Vol. 6, 1993, pp. 525-533),以更详细地讨论比例共轭梯度算法。

当这些情况发生时,训练停止:

  • 最大数目时代(重复)。

  • 最大数量时间是超过。

  • 性能被最小化到目标

  • 性能梯度在下面min_grad

  • 验证性能的提高超过max_fail从上次(使用验证时)开始减少的时间。

参考文献

莫勒[1]。神经网络,第6卷,1993年,525-533页

之前介绍过的R2006a