主要内容

trainrp

有弹性的反向传播

描述

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

例子

(trainedNet,tr)=火车(,……)列车的网络trainrp

trainrp是一个网络的训练函数更新重量和偏差值根据弹性反向传播算法(Rprop)。

训练时根据trainrp训练参数,这里显示的默认值:

  • 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-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

例子

全部折叠

这个例子展示了如何训练前馈网络的trainrp输入训练函数来解决一个问题p和目标t

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

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

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

网= feedforwardnet (2“trainrp”);

训练和测试网络。

net.trainParam.epochs= 50; net.trainParam.show = 10; net.trainParam.goal = 0.1; net = train(net,p,t); a = net(p)

更多的例子,请参阅帮助feedforwardnet帮助cascadeforwardnet

输入参数

全部折叠

输入网络,指定为一个网络对象。例如,要创建一个网络对象,使用feedforwardnetnarxnet

输出参数

全部折叠

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

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

  • 培训、数据部分和功能和性能参数

  • 数据部门培训指标,验证集和测试集

  • 数据部分面具培训验证集和测试集

  • 时代(num_epochs和最好的时代best_epoch)。

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

  • 字段为每个国家的名字记录在训练它的价值

  • 表现最好的网络(best_perf,best_vperf,best_tperf)

更多关于

全部折叠

网络使用

您可以创建一个标准的网络使用trainrpfeedforwardnetcascadeforwardnet

准备一个定制的网络培训trainrp,

  1. net.trainFcn“trainrp”。这集net.trainParamtrainrp的默认参数。

  2. net.trainParam属性的值。

在这两种情况下,调用火车由此产生的网络列车网络trainrp

有弹性的反向传播

多层网络通常使用乙状结肠隐藏层的传递函数。这些函数通常被称为“挤压”功能,因为他们无限输入范围压缩到一个有限的输出范围。乙状结肠函数的特点是他们的斜坡上必须接近零输入变大。这导致一个问题当你用最陡下降与乙状结肠训练多层网络功能,因为梯度可以有一个非常小的大小,因此,导致小重量的变化和偏见,即使重量和偏见远离他们的最佳值。

弹性的目的反向传播(Rprop)训练算法来消除这些有害影响大小的偏导数。唯一可以确定的方向导数的符号权重更新;导数的大小没有影响体重更新。体重变化的大小是由一个单独的更新值。每个重量和偏见的更新值增加的一个因素delt_inc每当性能函数的导数对体重相同的信号连续两个迭代。更新值下降的一个因素delt_dec只要体重变化信号的导数上一次迭代。如果导数为零,更新价值是相同的。每当权重振荡,降低体重的变化。如果体重继续改变几个迭代方向相同,重量变化的大小增加。完整描述的Rprop算法(RiBr93]。

下面的代码再现以前的网络和火车使用Rprop算法。的训练参数trainrp时代,显示,目标,时间,min_grad,max_fail,delt_inc,delt_dec,delta0,国际接轨。以前讨论的前8个参数。最后两个是初始步长和最大的步长,分别。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);

的元素都是初始化delta0,gX梯度。在每个迭代的元素被修改。如果一个元素的gX更改从一个迭代到另一个迹象,那么相应的元素是减少了delta_dec。如果一个元素的gX保持相同的信号从一个迭代到另一个,然后相应的元素是增加了delta_inc。看到Riedmiller, M。,H. Braun, “A direct adaptive method for faster backpropagation learning: The RPROP algorithm,”《IEEE国际会议上神经网络,1993年,页586 - 591。

训练停止任何这些条件发生时:

  • 的最大数量时代(重复)。

  • 的最大数量时间是超过。

  • 性能是最小化目标

  • 性能梯度低于min_grad

  • 验证性能(验证错误)增加了多max_fail自从上次下降(当使用验证)。

引用

[1]Riedmiller, M。,H. Braun, “A direct adaptive method for faster backpropagation learning: The RPROP algorithm,”《IEEE国际会议上神经网络,1993年,页586 - 591。

版本历史

之前介绍过的R2006a