Laz*_*zer 3 performance matlab machine-learning neural-network
我在用
net = newfit(in,out,lag(j),{'tansig','tansig'});
Run Code Online (Sandbox Code Playgroud)
生成一个新的神经网络.数量的默认值validation checks是6.
我正在训练很多网络,这需要花费很多时间.我想如果我的结果不那么精确,如果它们可以快得多,那就无所谓了.
我怎样才能更快地训练?
正如我所说,速度的提高可能会略微降低准确性.
只是为了扩展@mtrw的答案,根据文档,当出现任何这些情况时,训练停止:
net.trainParam.epochsnet.trainParam.timenet.trainParam.goalnet.trainParam.min_gradnet.trainParam.mu_maxnet.trainParam.max_fail时期和时间限制允许在训练持续时间上设置上限.
当性能(误差)低于它时,目标约束会停止训练,并且通常允许您调整时间/准确度权衡级别:更准确的结果以便更快地执行.
这类似于min_grad(渐变告诉你"下降"的强度),如果渐变的幅度小于mingrad,训练就会停止.可以理解的是,如果误差函数变化不大,那么我们就达到了一个平台,我们应该停止训练,因为我们不会有太大的改进.
mu,mu_dec和mu_max用于控制权重更新过程(反向传播).
max_fail通常用于避免过度拟合,而不是用于加速.
我的建议是,将时间和时期设置为应用程序约束允许的最大可能值(否则结果将很差).反过来,您可以控制目标和min_grad达到所需的速度/准确性权衡级别.请记住,max_fails不会让你获得任何时间,因为它主要用于确保良好的泛化能力.