主要内容

TRAINGDA

具有自适应学习速率的梯度下降

描述

net.trainfcn ='traingda'设置网络训练码财产。

[训练网络TR.) =火车(,……)训练网络TRAINGDA

TRAINGDA是一种网络训练功能,可根据具有自适应学习率的梯度下降更新权重和偏置值。

培训发生根据TRAINGDA训练参数,这里显示了它们的默认值:

  • net.trainParam.epochs- 培训的最大单位数。默认值为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.min_grad.- 最小性能梯度。默认值是1E-5

  • net.trainparam.show.- 显示器之间的时期(没有显示)。默认值为25。

  • net.trainParam.showCommandLine—生成命令行输出。默认值是错误的

  • net.trainParam.showWindow- 显示培训GUI。默认值是真正的

  • net.trainparam.time.- 最长时间培训时间。默认值是

输入参数

全部折叠

输入网络,指定为网络对象。要创建网络对象,例如,使用FeedforwardNet.narxnet

输出参数

全部折叠

训练有素的网络,作为一个网络目的..

培训记录(时代perf),返回为一个结构,其字段依赖于网络训练函数(net.net.trainfcn.).它可以包括以下字段:

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

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

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

  • 时代数量(num_epoch)最好的时代(best_poch).

  • 训练州名单(状态).

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

  • 最佳网络的性能(best_perf.best_vperf.best_tperf.的)

更多关于

全部折叠

网络使用

你可以创建一个标准的网络TRAINGDAFeedforwardNet.cascadeforwardnet.准备一个训练用的定制网络TRAINGDA

  1. net.trainFcn'traingda'.这集net.trainParamTRAINGDA默认参数。

  2. net.trainParam属性到所需值。

不管是哪种情况,都是打电话火车用由此产生的网络来训练网络TRAINGDA

帮助feedforwardnet帮助cascadeforwardnet.举些例子。

具有自适应学习速率反向传播的梯度下降

使用标准的最速下降,学习率在整个训练过程中保持恒定。学习速率的适当设置对算法的性能非常敏感。如果学习率设置过高,算法就会振荡,变得不稳定。如果学习率过小,则算法收敛时间过长。在训练前确定学习速率的最佳设置是不现实的,事实上,是最优的在训练过程中,随着算法在性能表面的移动,学习率会发生变化。

如果您允许在训练过程中改变学习率,那么您可以改进最陡下降算法的性能。自适应学习率试图在保持学习稳定的同时保持尽可能大的学习步长。学习率对局部误差面的复杂性做出响应。

适应性学习率要求在训练过程中有所改变TRAINGD.首先,计算初始网络输出和错误。在每个时代的新重量和偏差,使用当前的学习速率计算。然后计算新的输出和错误。

和动量一样,如果新误差超过旧误差超过预定义的比例,max_perf_inc.(通常为1.04),丢弃新的重量和偏差。此外,学习率降低(通常通过乘以乘以lr_dec= 0.7)。否则,保存新的重量等。如果新错误小于旧错误,则会增加学习率(通常通过乘以乘以lr_inc.= 1.05)。

此过程增加了学习率,但仅在没有大误差的情况下无法学习的程度增加。因此,为局部地形获得近最佳学习率。当较大的学习率可能导致稳定的学习时,学习率增加。当学习率太高时无法保证误差减少,直到稳定的学习恢复直到它减少。

试试神经网络设计示范nnd12vl.[HDB96.,以说明其性能可变学习率算法。

具有自适应学习率的BackPropagation培训是用该功能实现的TRAINGDA,就叫just likeTRAINGD,除其他培训参数外max_perf_inc.lr_dec,lr_inc..下面是训练前两层网络的方法:

p = [-1 -1 2 2;0 5 0 5];t = [-1 -1 1 1];net = feedforwardnet(3,'traingda');net.trainparam.lr = 0.05;net.trainparam.lr_inc = 1.05;净=火车(网,P,T);Y =网(P)

算法

TRAINGDA只要其重量,净输入和传输函数可以培训任何网络都具有衍生功能。

BackPropagation用于计算性能的衍生物DPERF.关于权重和偏差变量X.根据梯度下降调整每个变量:

dx = lr * dperf / dx

在每个时代,如果性能降低到目标,那么学习率增加了因素lr_inc..如果性能增加超过该因素max_perf_inc.时,学习率由因子调整lr_dec而且没有提高性能的变化。

当这些情况发生时,训练停止:

  • 最大数目时代(重复)。

  • 最大数量时间超出了。

  • 性能最小化到目标

  • 性能梯度在下面min_grad.

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

之前介绍过的R2006a