主要内容

trainrp

弹性反向化

描述

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

例子

trainedNettr] =火车(,......)用以下方法训练网络trainrp

trainrp是一种网络培训函数,可根据弹性反向化算法(RPROP)更新权重和偏置值。

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

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

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

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

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

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

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

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

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

  • net.trainparam.lr.- 学习率。默认值为0.01

  • net.trainparam.delt_inc.-增量到权重变化。默认值为1.2

  • net.trainparam.delt_dec.-减重到重量变化。默认值为0.5

  • net.trainparam.delta0.- 初始重量变化。默认值为0.07

  • net.trainparam.deltamax.—最大重量变化。默认值为50.0

例子

全部收缩

此示例显示如何使用a训练前馈网络trainrp培训功能解决输入问题p和目标t

创建输入p和目标t你想用网络解决。

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

创建一个带有两个隐藏神经元和这个训练函数的两层前馈网络。

网= feedforwardnet (2'trainrp');

培训和测试网络。

net.trainParam.epochs = 50;net.trainParam.show = 10;net.trainParam.goal = 0.1;网=火车(净、p、t);净(p) =

有关更多示例,请参见帮助Feed​​forwardNet.帮助cascadeforwardnet

输入参数

全部收缩

输入网络,指定为网络对象。要创建网络对象,例如,使用feedforwardnet或者NARXNET.

输出参数

全部收缩

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

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

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

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

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

  • 纪元数(num_epochs)和最好的时代(Best_POCH.)。

  • 培训州名称列表()。

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

  • 最佳网络性能(best_perfbest_vperfbest_tperf.

更多关于

全部收缩

网络使用

您可以创建一个使用的标准网络trainrpfeedforwardnet或者cascadeforwardnet.

准备自定义网络培训trainrp

  1. net.trainfcn.'trainrp'.这套net.trainparam.trainrp默认参数。

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

在任何一种情况下,呼叫火车使用生成的网络培训网络trainrp

有弹性的反向传播

多层网络通常在隐藏层中使用Sigmoid传输函数。这些功能通常被称为“压缩”函数,因为它们将一个无限的输入范围压缩到一个有限的输出范围。s型函数的特点是,当输入变大时,其斜率必须趋近于零。当你使用最陡下降法用s形函数训练多层网络时,这就产生了一个问题,因为梯度的大小非常小,因此会导致权重和偏差的微小变化,即使权重和偏差离最优值很远。

弹性反向衰退(RPROP)训练算法的目的是消除部分衍生物的大小的这些有害影响。只有衍生品的标志可以确定重量更新的方向;衍生物的大小对重量更新没有影响。重量变化的大小由单独的更新值确定。每个重量和偏置的更新值增加了一个因素delt_inc.每当两个连续迭代的性能函数的导数相对于该权重具有相同的符号。更新值减少了一个因素delt_dec.当对权重的导数改变符号时。如果导数为零,则更新值保持不变。当权值振荡时,权值变化减小。如果权重在几次迭代中继续沿同一方向变化,则权重变化的幅度会增加。Rprop算法的完整描述见[RIBR93.]。

以下代码重新创建先前的网络并使用RPROP算法列车。训练参数trainrp时代显示目标时间min_gradmax_fail.delt_inc.delt_dec.Delta0., 和Deltamax..前八个参数已在前面讨论过。最后两个是初始步长和最大步长,分别。Rprop的性能对训练参数的设置不是很敏感。对于下面的例子,训练参数保持默认值:

P = [-1 -1 2 2;0 5 0 5];T = [-1 -1 1 1];网= feedforwardnet (3 ' trainrp ');网=火车(净、p、t);y =净(p)

rprop通常比标准的最速下降算法快得多。它还具有一个很好的特性,即只需要适度增加内存需求。你需要存储每个权重和偏差的更新值,这相当于存储梯度。

算法

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

用反向传播来计算性能的导数性能关于重量和偏置变量X.根据以下内容调整每个变量:

dX =△。*标志(gX);

其中的元素Deltax.都初始化为Delta0., 和gX梯度。在每次迭代中Deltax.被修改。如果是一个元素gX将符号从一个迭代更改到下一个迭代,然后更改对应的元素Deltax.减少了delta_dec..如果是一个元素gX从一个迭代到下一个迭代保持相同的标志,然后是相应的元素Deltax.是增加了delta_inc..参见Riedmiller,M.和H. Braun,“一种直接的自适应方法,用于更快的反向化学习:RPROP算法,”IEEE国际神经网络会议论文集,1993年,第586-591页。

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

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

  • 最大数量时间是超过。

  • 性能被最小化到目标

  • 性能梯度下降min_grad

  • 验证性能超过了max_fail.自上次降低(使用验证时)以来的次数。

参考

[1] Riedmiller,M.和H. Braun,“一种直接的自适应方法,用于更快的反向化学习:RPROP算法”IEEE国际神经网络会议论文集,1993年,第586-591页。

在R2006A之前介绍