Neural network 是";“培训数据越多越好”;对神经网络来说是真的吗?

Neural network 是";“培训数据越多越好”;对神经网络来说是真的吗?,neural-network,Neural Network,我正在编写一个函数逼近神经网络,它试图逼近一个非常复杂的函数 对于训练数据,我在两个极限之间生成了1000个随机数,然后通过函数f(x)传递这些数,并得到输出 我的神经网络旨在近似此函数的逆函数。因此,我将使用函数的输出作为输入训练数据,使用1000个随机数作为输出训练数据 问题是,当一个随机数被放入函数f(x)中时,输出很可能在0到0.01之间,并且很少会超出这个范围。下面是一条数字线,上面绘制了函数输出的1000个数字。如您所见,示例并没有统一涵盖所有可能的数字 为了解决这个问题,我使用了

我正在编写一个函数逼近神经网络,它试图逼近一个非常复杂的函数

对于训练数据,我在两个极限之间生成了1000个随机数,然后通过函数f(x)传递这些数,并得到输出

我的神经网络旨在近似此函数的逆函数。因此,我将使用函数的输出作为输入训练数据,使用1000个随机数作为输出训练数据

问题是,当一个随机数被放入函数f(x)中时,输出很可能在0到0.01之间,并且很少会超出这个范围。下面是一条数字线,上面绘制了函数输出的1000个数字。如您所见,示例并没有统一涵盖所有可能的数字

为了解决这个问题,我使用了大量的训练示例,希望在0.1到0.9的范围内会有更多的示例,但这意味着使用了大量的示例

因此,对于这样的函数,使用更多的示例是否更好,或者如果使用大量示例是否会出现问题?

仅在一定程度上“越多越好”;对于神经网络来说,数据可能太多


样本太多可能会导致过度拟合/过度训练。

只需去除0.01以上的所有内容,然后将数据从0到0.01标准化为-1到1。由于0.01以上的数据点太少,删除它们不会影响训练

或者,尝试以下方法:

我建议通过计算 数值x数据的平均值和标准偏差,然后应用 变换(x-均值)/stddev


您希望沿着范围0到1(或-1到1)更均匀地分布群集数据

是否可能尝试拟合f(x)的对数或某些基于对数的变换?它可以更均匀地分配输出

过度拟合是由太多的训练(太多的迭代/历次)而不是太多的数据造成的。有了一个庞大的数据集,即使是一个远远大于必要的数据集,并且有很多噪音,如果你在一个合适的点退出训练,网络将是准确的。这就是我所想的。如果有的话,大数据集应该可以减少过度拟合的机会。过度拟合是由于成本函数的值被最小化到如此低的值,以致神经网络的功能几乎完全通过所有训练点(导致成本函数较低),但不近似于其他区域中点的趋势。使用更多的训练点可以减少这种情况的发生。