Main Content

trainscg

量化共轭梯度反向传播

说明

net.trainFcn = 'trainscg' 设置网络 trainFcn 属性。

示例

[trainedNet,tr] = train(net,...) 使用 trainscg 训练网络。

trainscg 是一个网络训练函数,它根据量化共轭梯度法更新权重和偏置值。

训练包含 trainscg 训练参数,此处显示其默认值:

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

  • net.trainParam.show - 各次显示之间的训练轮数(无显示时为 NaN)。默认值为 25。

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

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

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

  • net.trainParam.time - 以秒为单位的最大训练时间。默认值为 inf

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

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

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

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

  • net.trainParam.lambda - 调节黑塞矩阵的不确定性的参数。默认值为 5.0e-7

示例

全部折叠

此示例说明如何使用网络求解由输入 p 和目标 t 组成的问题。

p = [0 1 2 3 4 5];
t = [0 0 0 1 1 1];

使用两个隐藏神经元和以下训练函数创建一个两层前馈网络。

net = feedforwardnet(2,'trainscg');

在此处,网络已经过训练和测试。

net = train(net,p,t);
a = net(p)

有关其他示例,请参阅 help feedforwardnethelp cascadeforwardnet

输入参数

全部折叠

输入网络,指定为网络对象。要创建网络对象,请使用 feedforwardnetnarxnet 等函数。

输出参量

全部折叠

经过训练的网络,以 network 对象形式返回。

训练记录(epochperf),以结构体形式返回,其字段取决于网络训练函数 (net.NET.trainFcn)。它可以包括如下字段:

  • 训练、数据划分以及性能函数和参数

  • 训练、验证和测试集的数据划分索引

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

  • 轮数 (num_epochs) 和最佳轮次 (best_epoch)。

  • 训练状态名称列表 (states)。

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

  • 最佳网络的性能(best_perfbest_vperfbest_tperf

详细信息

全部折叠

网络使用

您可以创建一个将 trainscgfeedforwardnetcascadeforwardnet 搭配使用的标准网络。要准备使用 trainscg 训练的自定义网络,请执行以下操作:

  1. net.trainFcn 设置为 'trainscg'。这会将 net.trainParam 设置为 trainscg 的默认参数。

  2. net.trainParam 属性设置为期望的值。

在任一情况下,用生成的网络调用 train 都会用 trainscg 训练网络。

算法

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

量化共轭梯度算法基于共轭方向,如 traincgptraincgftraincgb,但此算法不在每次迭代时执行线搜索。有关量化共轭梯度算法的更详细讨论,请参阅 Moller (Neural Networks, Vol. 6, 1993, pp. 525–533)。

出现以下任一情况时,训练停止:

  • 达到 epochs(重复)的最大数量。

  • 超出 time 的最大数量。

  • 性能最小化到 goal

  • 性能梯度低于 min_grad

  • 自上次验证性能(使用验证时)下降以来,验证性能(验证误差)上升的次数超过了 max_fail 次。

参考

[1] Moller. Neural Networks, Vol. 6, 1993, pp. 525–533

版本历史记录

在 R2006a 之前推出