如果我的数据集中有 1000 个观测值,其中包含 15 个特征和 1 个标签,那么输入神经元中的数据如何用于前向传播和反向传播?是逐行馈送 1000 个观测值(一次一个),并根据每个观测值馈送更新权重,还是以输入矩阵形式给出完整数据,然后根据历元数,网络学习相应的权重值?另外,如果一次喂一个,那么 epoch 是多少?
谢谢
假设数据被格式化为行(1000 个实例,每个实例有 16 个特征,最后一个是标签),您将逐行输入前 15 个特征,并使用最后一个“特征”/标签作为目标。这就是所谓的online学习。在线学习要求您一次输入一个示例的数据,并对每个示例进行反向传播和权重更新。正如您可以想象的那样,由于每个数据实例的反向传播和更新,这可能会变得相当密集。
您提到的另一个选项是将整个数据输入网络。这在实践中表现不佳,因为收敛速度非常慢。
在实践中,小批量被使用。这涉及发送数据集的一小部分,然后进行反向传播和权重更新。这提供了相对频繁的权重更新以加速学习的好处,但强度不如在线学习。有关小批量的更多信息,请参阅此多伦多大学杰弗里·辛顿 (Geoffrey Hinton) 讲座 http://www.cs.toronto.edu/~tijmen/csc321/slides/lecture_slides_lec6.pdf
最后,一个纪元始终是对所有数据运行 1 次。一次喂一个或一次全部喂都没关系。
我希望这能澄清你的问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)