Machine learning 基于深度学习的图像分类最优批量

Machine learning 基于深度学习的图像分类最优批量,machine-learning,Machine Learning,我有一个广泛的问题,但仍然应该是相关的。 假设我正在使用CNN进行2级图像分类。32-64的批量大小应足以满足培训目的。然而,如果我有大约13个类的数据,那么32个批大小肯定不足以满足一个好的模型,因为每个批可能得到每个类的2-3个图像。是否有一个通用或近似公式来确定培训批量?还是应该使用网格搜索或贝叶斯方法等技术将其确定为超参数 sedy批量大小是一个超参数,例如学习率。很难说你的问题的完美尺寸是多少。 你提到的问题可能存在,但只与特定问题相关,在这些问题中,你不能只进行随机抽样,如面部/人的

我有一个广泛的问题,但仍然应该是相关的。 假设我正在使用CNN进行2级图像分类。32-64的批量大小应足以满足培训目的。然而,如果我有大约13个类的数据,那么32个批大小肯定不足以满足一个好的模型,因为每个批可能得到每个类的2-3个图像。是否有一个通用或近似公式来确定培训批量?还是应该使用网格搜索或贝叶斯方法等技术将其确定为超参数


sedy

批量大小是一个超参数,例如学习率。很难说你的问题的完美尺寸是多少。 你提到的问题可能存在,但只与特定问题相关,在这些问题中,你不能只进行随机抽样,如面部/人的重新识别

对于“正常”问题,随机抽样就足够了。小批量训练背后的原因是为了获得更稳定的训练。就整个数据集的损失函数的全局最小值而言,您希望您的体重更新朝着正确的方向进行。小批量是这一点的近似值

随着batchsize的增加,更新会减少,但会得到“更好”的更新。使用小批量,您可以获得更多的更新,但它们往往会走向错误的方向。如果批量太小(例如1),网络可能需要很长时间才能收敛,从而增加训练时间。批量过大会影响网络的通用性。关于这个话题的好论文

关于这个主题的另一篇有趣的论文是:。分析了批量大小对培训的影响。一般来说,学习率和批量大小是相互影响的


通常,批处理大小是减少训练时间的一个更重要的因素,因为随着批处理大小的增加和稳定性的提高,您可以利用并行性和更少的权重更新。和其他事情一样,看看其他人对一项与你的问题相当的任务做了什么,并将其作为基线,进行一点实验。此外,对于庞大的网络,可用内存通常会限制最大批量。

感谢您的评论和链接。您链接中引用的一篇论文(Goyal)提到“当小批量大小乘以k时,学习率乘以k”。我假设这只适用于使用SGD算法,而不适用于ADAM或任何其他算法?我会这样假设,因为ADAM对每个参数都有一个自适应学习率。大多数东西都是用标准的SGD优化器测试的。