Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 其它 > 资料存档
资料存档 资料存档
回复
 
主题工具 显示模式
旧 2019-12-10, 16:49   #1
poster
高级会员
 
注册日期: 2019-11-21
帖子: 3,006
声望力: 66
poster 正向着好的方向发展
帖子 如何在MATLAB中更改newfit()的默认参数?

我在用

net = newfit(in,out,lag(j),{'tansig','tansig'}); 生成一个新的神经网络。 validation checks次数的默认值为6 。

我正在训练很多网络,这需要很多时间。我想我的结果是否可以准确地提高一点,这并不重要。

我怎样才能更快地训练?
  • 我相信一种方法可能是减少验证检查次数的价值。我该怎么做(在代码中,不使用GUI)
  • 还有其他提高速度的方法。
正如我所说,速度的提高可能会稍微降低精度。


回答:
根据文档 ,仅是扩展@mtrw答案,当发生以下任何一种情况时,培训就会停止:
  • 到达时期的最大数量: net.trainParam.epochs
  • 超过了最大时间 : net.trainParam.time
  • 性能被最小化的目标 : net.trainParam.goal
  • 性能梯度低于min_grad : net.trainParam.min_grad
  • mu超过mu_max : net.trainParam.mu_max
  • 自上次降低验证效率以来(使用验证时),验证性能提高了超过max_fail次: net.trainParam.max_fail
时代时间的限制可以使训练的持续时间达到上限。

当性能(错误)下降到目标约束以下时, 目标约束将停止训练,并且通常可以让您调整时间/精度的权衡程度:较不精确的结果可以更快地执行。

这类似于min_grad (梯度告诉您“下降”的强度),因为如果梯度的大小小于mingrad,则训练会停止。通过以下事实可以理解,如果误差函数变化不大,那么我们将达到一个平稳状态,我们可能应该停止训练,因为我们的改进不会太大。

mumu_decmu_max用于控制权重更新过程(反向传播)。

max_fail通常用于避免过度拟合,而不是为了加速。

我的建议是,将时间纪元设置为您的应用程序限制所允许的最大可能时间 (否则结果将很差)。然后,您可以控制目标min_grad以达到所需的速度/精度权衡。请记住, max_fails不会使您有所收获,因为它主要用于确保良好的泛化能力。



更多&回答...
poster 当前离线   回复时引用此帖
回复


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛禁用 表情符号
论坛启用 [IMG] 代码
论坛启用 HTML 代码



所有时间均为北京时间。现在的时间是 22:16


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.