【问题标题】:How is input dataset fed into neural network?输入数据集如何输入神经网络?
【发布时间】:2017-12-25 08:30:30
【问题描述】:

如果我的数据集中有 1000 个观测值,具有 15 个特征和 1 个标签,输入神经元中的数据如何馈送以进行前向传播和反向传播?它是逐行馈送 1000 个观察值(一次一个),权重随着每个观察馈送而更新,还是根据输入矩阵给出完整数据,然后根据 epoch 数,网络学习相应的权重值?此外,如果它一次喂一个,那么在这种情况下什么是纪元? 谢谢

【问题讨论】:

  • 我建议你戴上你的程序员帽子,尝试这些不同的选项并发现答案......通常输入数据一次输入一个观察结果......运行反向传播...... . 更新你的错误,然后在所有观察中重复
  • 谢谢斯科特!明白了。

标签: neural-network backpropagation supervised-learning


【解决方案1】:

假设数据被格式化为行(1000 个实例,每个实例有 16 个特征,最后一个是标签),您将逐行输入前 15 个特征并使用最后一个“特征”/标签作为目标。这称为在线学习。在线学习要求您一次输入一个示例中的数据,并对每个示例进行反向传播和权重更新。正如您可以想象的那样,由于每个数据实例的反向传播和更新,这可能会变得非常密集。

您提到的另一个选项是将整个数据输入网络。这在实践中表现不佳,因为收敛速度非常慢。

在实践中,使用小批量。这涉及发送数据集的一小部分,然后进行反向传播和权重更新。这提供了相对频繁的权重更新以加速学习的好处,但没有在线学习那么密集。有关小批量的更多信息,请参阅University of Toronto Lecture by Geoffrey Hinton

最后,一个 epoch 始终是 1 次遍历所有数据。一次喂一个或一次喂都没有关系。

我希望这能澄清你的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-10-05
    • 1970-01-01
    • 2010-10-13
    • 1970-01-01
    • 2013-06-30
    • 1970-01-01
    • 2016-10-20
    相关资源
    最近更新 更多