traingdx
动量梯度下降和自适应学习率反向传播
描述
net.trainFcn= 'traingdx'
设置网络trainFcn
财产。
[
训练网络trainedNet
,tr
=火车网
,……)traingdx
.
traingdx
是一个网络训练函数,根据梯度下降动量和自适应学习率更新权重和偏差值。
培训是根据traingdx
训练参数,这里显示了它们的默认值:
net.trainParam.epochs
-训练的最大epoch数。缺省值为1000。net.trainParam.goal
-绩效目标。缺省值为0。net.trainParam.lr
-学习率。默认值为0.01。net.trainParam.lr_inc
-比率提高学习速度。缺省值为1.05。net.trainParam.lr_dec
-降低学习率的比例。缺省值为0.7。net.trainParam.max_fail
—最大验证失败次数。默认值为6
.net.trainParam.max_perf_inc
—最大性能提升。默认值为1.04
.net.trainParam.mc
-动量常数。默认值为0.9
.net.trainParam.min_grad
-最小的性能梯度。默认值为1 e-5
.net.trainParam.show
-显示时间间隔(南
对于没有显示)。缺省值为25。net.trainParam.showCommandLine
—生成命令行输出。默认值为假
.net.trainParam.showWindow
-显示培训界面。默认值为真正的
.net.trainParam.time
-以秒为单位的最大训练时间。默认值为正
.
输入参数
输出参数
更多关于
算法
这个函数traingdx
结合自适应学习率和动力训练。调用它的方式与traingda
,除了它有动量系数mc
作为额外的训练参数。
traingdx
可以训练任何网络,只要它的权值、净输入和传递函数都有导数函数。
反向传播用于计算性能的导数性能
相对于权重和偏差变量X
.每个变量根据动量梯度下降进行调整,
dX = mc*dXprev + lr*mc*dperf/dX
在哪里dXprev
是之前对权重或偏差的更改。
对于每个epoch,如果性能朝着目标下降,那么学习率就会增加这个因子lr_inc
.如果性能增加的因素超过该因素max_perf_inc
时,学习率由因子调整lr_dec
提高性能的改变并没有发生。
当出现以下任何一种情况时,训练停止:
最大数量
时代
(重复)达到。最大数量
时间
是超过。性能被最小化到
目标
.性能梯度如下
min_grad
.验证性能(验证错误)增加了超过
max_fail
自上次减少以来的次数(使用验证时)。
版本历史
R2006a之前介绍