我试图理解深度学习的基础知识,最近通过阅读deeplearning4j了解了一些内容。然而,我没有找到一个答案:训练性能如何随着训练数据量的增加而变化?
显然,成本函数总是依赖于所有训练数据,因为它只是对每个输入的平方误差进行求和。因此,我猜想在每一步优化过程中,都需要考虑所有数据点。我的意思是,deeplearning4j有数据集迭代器和INDArray,数据可以存储在任何地方,因此(我认为)不会限制训练数据的数量。但这是否意味着,训练数据的数量直接关系到梯度下降每一步的计算时间?
回答:
DL4J使用迭代器。Keras使用生成器。基本思想是相同的——你的数据以批次形式输入,并用于随机梯度下降。因此,重要的是小批次,而不是你拥有的全部数据量。