可能是ANN 101关于最小批量处理的问题.谷歌似乎没有答案.在这里搜索也没有产生任何结果.我猜这里有一本书说"这样做!" 而我还没读过那本书.
我用Python编写神经网络(不是语言很重要).我正在尝试添加小批量更新而不是完整批量.是否有必要为每个时期选择一次观察?小批量将是数据值1:10,11:20,21:30等,以便使用所有观察,并且它们都被使用一次.
或者根据概率从训练数据集中随机选择迷你批次是否正确?结果是每个观察可以在任何给定的时期中使用一次,多次或根本不使用.对于每个时期20个小批量,每个数据元素将被给予5%的机会被选择用于任何给定的小批量.微型批次将随机选择并且随机大小,但每20个数据点中大约有1个将包含在20个迷你批次中的每一个中,不保证选择.
小智 7
关于小批量培训的一些提示:
在每个时代之前洗牌你的样品
原因与在线培训中对样本进行混洗的原因相同:否则网络可能只是记住您提供样本的顺序.
对每个批次和每个时期使用固定的批次大小
可能还有一个统计原因,但它简化了实现,因为它使您能够使用矩阵乘法的快速实现进行计算.(例如BLAS)
使您的学习率适应批量大小
对于较大的批次,您将不得不使用较小的学习率,否则ANN趋向于收敛到次优的最小值.我总是将学习率调整为1/sqrt(n),其中n是批量大小.请注意,这只是实验的经验值.
你的第一个猜测是正确的。首先随机化你的数据集。然后是(比如说)20 个小批量。使用:1-20,然后 21-40,等等...因此,您的所有数据集都将被使用。
Ben 没有说数据集只使用一次。通常,您需要对所有数据集执行多个纪元,以便网络能够正确学习。
小批量主要用于加速学习过程。
| 归档时间: |
|
| 查看次数: |
3952 次 |
| 最近记录: |