我试图将神经网络的训练误差曲线拟合为训练迭代次数的函数。下图中的示例以红色显示。在这里,我已经训练了3000次迭代。我感兴趣的是我是否能找到一个能够适应前1000次(或左右)迭代的函数,以一定的合理精度推断出3000次迭代。
但是,我不知道哪种功能形式最适合我使用。起初我尝试了f(x)= A + B exp(-C x)形式的指数,以蓝色显示。显然这不太好用。指数过快地消失了,然后基本上变成了常数。
也许这很困难,因为训练的开始显示了错误的非常明显的下降,但随后转换为更高迭代的更加渐进的东西。但是,具有神经网络训练经验和/或未知功能拟合经验的人可能会有一些想法。我一直在尝试各种指数形式和多项式拟合scipy / numpy但没有成功。我也改变了拟合中使用的迭代次数(包括丢弃小的迭代次数)。
有什么想法?
答案 0 :(得分:2)
我认为指数拟合可能有效。在f(x)=A+B*exp(-C*x)
,我选择A = 0.005
,B = 0.045
和C = 1/250
,我会得到,
这只是参数调整。然而,我试图理解你想要适应学习曲线的动机。我认为插值方法包括'外推'选项,您可以用它来预测更多纪元后的错误。如果你想精确地学习曲线,你可以使用另一个带有线性隐藏层和输出的神经网络来再次“学习”曲线,尽管我没有尝试它是否有效。
答案 1 :(得分:0)
查看此页面:http://www.astroml.org/sklearn_tutorial/practical.html
对于您所描述的情况,有用的是诊断您的算法在您的数据集中是出现高偏差还是高差异,并为这两种情况提供具体说明。