主要内容

traingdx

动量梯度下降和自适应学习率反向传播

描述

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

trainedNettr=火车,……)训练网络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-以秒为单位的最大训练时间。默认值为

输入参数

全部折叠

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

输出参数

全部折叠

受过训练的网络,还不如一个网络对象。

培训记录(时代而且性能),作为结构返回,其字段依赖于网络训练函数(net.NET.trainFcn).它可以包括如下字段:

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

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

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

  • epoch数(num_epochs)和最好的时代(best_epoch).

  • 训练状态名称一览表().

  • 每个州名的字段在整个训练过程中记录其值

  • 最佳网络性能(best_perfbest_vperfbest_tperf

更多关于

全部折叠

网络使用

您可以创建一个使用的标准网络traingdxfeedforwardnetcascadeforwardnet.准备一个用于训练的自定义网络traingdx

  1. net.trainFcn“traingdx”.这集net.trainParamtraingdx的默认参数。

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

无论哪种情况,打电话火车用得到的网络训练网络traingdx

看到帮助feedforwardnet而且帮助cascadeforwardnet为例子。

算法

这个函数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之前介绍