一步sec反向传播
net.trainFcn= 'trainoss'
(净,tr) =火车(净,…)
trainoss
是一个网络训练函数,它根据一步割线法更新权值和偏差值。
net.trainFcn= 'trainoss'
设置网络trainFcn
财产。
(净,tr) =火车(净,…)
用以下方法训练网络trainoss
.
培训是根据trainoss
训练参数,这里显示了它们的默认值:
net.trainParam.epochs |
1000 |
需要训练的最大纪元数 |
net.trainParam.goal |
0 |
性能目标 |
net.trainParam.max_fail |
6 |
最大验证失败 |
net.trainParam.min_grad |
1平台以及 |
最低性能梯度 |
net.trainParam.searchFcn |
“srchbac” |
要使用的行搜索例程的名称 |
net.trainParam.show |
25 |
展览之间的年代( |
net.trainParam.showCommandLine |
假 |
生成的命令行输出 |
net.trainParam.showWindow |
真正的 |
GUI显示培训 |
net.trainParam.time |
正 |
训练时间最长,以秒为单位 |
与行搜索方法相关的参数(不是所有方法都使用):
net.trainParam.scal_tol |
20. |
分为 |
net.trainParam.alpha |
0.001 |
决定充分减少的比例因子 |
net.trainParam.beta |
0.1 |
决定足够大步长的比例因子 |
net.trainParam.delta |
0.01 |
间隔位置步长的初始步长 |
net.trainParam.gama |
0.1 |
参数,以避免性能的小幅降低,通常设置为 |
net.trainParam.low_lim |
0.1 |
步长变化的下限 |
net.trainParam.up_lim |
0.5 |
步长变化的上限 |
net.trainParam.maxstep |
One hundred. |
最大的步长 |
net.trainParam.minstep |
1.0 e-6 |
最小步长 |
net.trainParam.bmax |
26 |
最大的步长 |
你可以创建一个标准的网络trainoss
与feedforwardnet
或cascadeforwardnet
.准备一个训练用的定制网络trainoss
:
集net.trainFcn
来“trainoss”
.这集net.trainParam
来trainoss
的默认参数。
集net.trainParam
属性设置为所需的值。
不管是哪种情况,都是打电话火车
用由此产生的网络来训练网络trainoss
.
trainoss
可以训练任何网络,只要它的权值、净输入和传递函数都有导数函数。
用反向传播来计算性能的导数性能
关于权重和偏差变量X
.每个变量按如下方式进行调整:
X = X + a*dX;
在哪里dX
是搜索方向。的参数一个
,以减小沿搜索方向的性能。线路搜索功能searchFcn
用于定位最小值点。第一个搜索方向为性能梯度的负方向。在后续迭代中,根据新的梯度和之前的步骤和梯度计算搜索方向,公式如下:
dX = -gX + Ac*X_step + Bc*dgX;
在哪里gX
是一个梯度,X_step
权重的变化是在前一个迭代,和帕特
为上一次迭代后梯度的变化。看到Battiti (神经计算,第4卷,1992年,141-166页),以更详细地讨论一步割线算法。
当这些情况发生时,训练停止:
最大数目时代
(重复)。
最大数量时间
是超过。
性能被最小化到目标
.
性能梯度在下面min_grad
.
验证性能的提高超过max_fail
从上次(使用验证时)开始减少的时间。
一阶和二阶学习方法:在最陡下降法和牛顿法之间神经计算, 1992年第4卷第2期,141-166页