2017-07-19 473 views
1

如果我的数据集中有1000个观测值,包含15个特征和1个标签,输入神经元中的数据如何进行正向传递和反向传播?对于1000次观测(一次一个),是否按行进行排序并且每次观测都要更新权重,或者是根据输入矩阵给出完整数据,然后是多个时期,网络学习相应的权重值?同样,如果它是一次喂食,那么在这种情况下的时代是什么? 谢谢输入数据集如何输入神经网络?

+0

我建议你扔你的程序员的帽子,只是尝试这些不同的选项,并发现答案...通常输入数据一次馈送到净观察一个观察...反向传播...更新您的错误然后重复所有的观察 –

+0

谢谢斯科特!有想法。 – Pratik

回答

1

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

您提到的另一种选择是将整个数据输入到网络中。由于收敛非常缓慢,这在实践中表现不佳。

实际上,使用小批量。这包括发送一小部分数据集,然后进行反向传播和权重更新。这提供了相对频繁的体重更新的好处,以加快学习速度,但比在线学习的密集程度要低。有关小批量的更多信息,请参阅此University of Toronto Lecture by Geoffrey Hinton

最后,一个时期始终是1遍运行您的所有数据。如果你一次喂一次,或者一次喂一次,这并不重要。

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

+0

非常感谢您的解释。现在很清楚。 – Pratik