[英]Fitting the training error of a neural network
我正在尝试根据训练迭代次数来曲线拟合神经网络的训练误差。 下图以红色显示了一个示例。 在这里,我已经进行了3000次迭代训练。 我感兴趣的是,是否可以找到适合前1000个(或大约)迭代的函数,以合理的精度外推至3000个迭代。
但是,我不知道哪种功能形式最适合我使用。 最初,我尝试了形式为f(x)= A + B exp(-C x)的指数,以蓝色显示。 显然,这不太好用。 指数消失得太快,然后基本上变成常数项。
也许这很困难,因为训练的开始显示出错误的急剧下降,但随后针对更高的迭代过渡到更渐进的东西。 但是也许有神经网络训练经验和/或具有安装未知函数经验的人可能会有一些想法。 我一直在尝试各种指数形式和scipy / numpy中的多项式拟合,但是没有成功。 我还改变了拟合中使用的迭代次数(包括丢弃小的迭代次数)。
有什么想法吗?
我认为指数拟合可能有效。 在你的f(x)=A+B*exp(-C*x)
,我选择A = 0.005
, B = 0.045
和C = 1/250
,我会得到,
这只是关于参数调整。 但是,我试图理解您想要适应学习曲线的动机。 我认为插值方法包括“ extrapolation”选项,您可以使用该选项在更多时期后预测错误。 如果您想精确地学习曲线,则可以使用另一个具有线性隐藏层的神经网络,然后再次输出以“学习”曲线,尽管我没有尝试过它是否有效。
签出此页面: http : //www.astroml.org/sklearn_tutorial/practical.html
它描述的对您的情况有用的事情是诊断您的算法在数据集上看起来是高偏差还是高方差,并为每种情况提供具体的指导。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.