如何将每运行一次的神经网络预测出的结果数据添加回原来训练数据集,能比较方便的自动添加新数据迭代,不要手动的。
将每次神经网络预测出的结果数据添加回原来的训练数据集:
定义一个新的数据集,将原始训练数据集和神经网络预测出的结果数据集合并在一起。
使用这个新的数据集重新训练神经网络。
重复以上步骤,直到预测结果满足要求为止。
这种方法可以自动添加新数据,因为每次预测结果都会被添加到数据集中并重新训练神经网络。这样,神经网络的预测能力会随着时间的推移而不断提高。
不知道你这个问题是否已经解决, 如果还没有解决的话:首先我们需要知道的是神经网络的训练速度是由梯度下降算法的速度决定的,只要梯度下降的速度变快,那么神经网络的训练速度也会相应的变快。所以为了解释这个问题,我们从损失函数梯度下降的角度来分析这个问题。
假如我们的样本只有两个特征x1、x2,这两个特征尺度相差很大,假设特征X1区间是[0,2000],而X2区间是[1,5],我们不对其进行归一化处理,我们针对这两个特征设计机器学习算法,然后我们画出它的损失函数的图像,如下图所示
红色的圈代表的是两个特征的等高线。因为两个特征X1和X2的区间相差非常大,其所形成的等高线为长椭圆形,非常尖。使用梯度下降法寻求最优解的过程也就是在寻找使得损失函数值最小的 参数θ1,θ2,当数据没有归一化的时候,梯度下降很有可能走之字型路线(它会垂直等高线走,因为梯度的方向与等高线切线方向垂直),因为梯度下降路线波动很大,从而导致需要迭代很多次才能收敛,这就是非归一化操作的神经网络训练速度慢的直观体现。
现在我们对训练集数据进行归一化处理,此时我们画出损失函数的图像,如下所示
而数据归一化后,损失函数变量θ前面的系数差距已不大,这样的话,图像的等高面近似圆形,此时求解得到的梯度方向更能直指圆心,在梯度下降进行求解时能较快的收敛,效率也就更高了,这样神经网络的训练速度也会相应加快。
这就是数据归一化操作加快神经网络训练速度的直观体现,因此如果机器学习模型使用梯度下降法求最优解时,归一化往往非常有必要,否则收敛速度会很慢,甚至不能收敛。