首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >神经网络-为每个小批量选择数据

神经网络-为每个小批量选择数据
EN

Stack Overflow用户
提问于 2012-12-04 08:00:45
回答 2查看 4.3K关注 0票数 7

可能是一个关于最小批量处理的ANN 101问题。谷歌似乎没有答案。在这里搜索也没有找到任何东西。我猜有一本书是这样说的:“这样做!”我只是还没读过那本书。

我正在用Python编写一个神经网络(语言并不重要)。我正在尝试添加小批量更新,而不是完整批量更新。是否有必要为每个时期选择一次每个观察值?小批量将是数据值1:10、11:20、21:30等,以便使用所有观察值,并且它们都使用一次。

或者基于概率从训练数据集中随机选择小批量是正确的吗?其结果是,在任何给定的时期中,每个观察值都可能被使用一次、多次或根本不使用。对于每个时期的20个小批量,每个数据元素将有5%的机会被选择用于任何给定的小批量。小批量将是随机选择的,大小也是随机的,但每20个数据点中大约有1个将包含在20个小批量中的每一个中,而不保证选择。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-12-09 10:34:52

你的第一个猜测是正确的。只需先随机化你的数据集。然后是(比方说) 20个小批量。使用: 1-20,然后21-40,依此类推。因此,您的所有数据集都将被使用。

Ben,不要说数据集只使用一次。通常,您需要对所有数据集执行多个时期,以便您的网络能够正确学习。

Mini-batch主要用于加快学习过程。

票数 2
EN

Stack Overflow用户

发布于 2012-12-11 07:15:53

关于小批量训练的一些提示:

在每个纪元之前洗牌你的样本

原因与您在在线训练中混洗样本的原因相同:否则网络可能会简单地记住您输入样本的顺序。

对于每个批处理和每个纪元,使用固定的批处理大小

可能还有统计上的原因,但它简化了实现,因为它使您能够使用矩阵乘法的快速实现进行计算。(例如BLAS)

使您的学习率适应批量大小的

对于较大的批次,您必须使用较小的学习率,否则ANN往往会收敛到次优最小值。我总是将我的学习率调整为1/sqrt(n),其中n是批量大小。请注意,这只是实验的经验值。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13693966

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档