Deep learning a'的含义是什么;小批量';深入学习?

Deep learning a'的含义是什么;小批量';深入学习?,deep-learning,pytorch,computer-science,cross-validation,fast-ai,Deep Learning,Pytorch,Computer Science,Cross Validation,Fast Ai,我正在学习快速人工智能课程,在第2课SGD中它说 小批量:“用于更新权重的一组随机点” 它还说梯度下降使用小批量 什么是小批量,小批量与批量有什么区别 感谢您的帮助这两种方法都是梯度下降法。但是在批处理梯度下降中,您在一次迭代中处理整个训练集。然而,在小批量梯度下降中,在每次迭代中处理训练集的一小部分 还比较随机梯度下降法,即在每次迭代中处理训练集中的单个示例 从另一个角度来看:它们都是相同的梯度下降方法的示例,批量大小为m,训练集大小为n。对于随机梯度下降,m=1。对于批量梯度下降,m=n。对

我正在学习快速人工智能课程,在第2课SGD中它说

小批量:“用于更新权重的一组随机点”

它还说梯度下降使用小批量

什么是小批量,小批量与批量有什么区别


感谢您的帮助

这两种方法都是梯度下降法。但是在批处理梯度下降中,您在一次迭代中处理整个训练集。然而,在小批量梯度下降中,在每次迭代中处理训练集的一小部分

还比较随机梯度下降法,即在每次迭代中处理训练集中的单个示例

从另一个角度来看:它们都是相同的梯度下降方法的示例,批量大小为m,训练集大小为n。对于随机梯度下降,m=1。对于批量梯度下降,m=n。对于小批量,m=b且b
Mini batch增加了确定b的正确大小的问题,但找到正确的b可能会大大改善您的结果。

由@majid ghafouri提供的精彩解释,但我只想添加更多细节,以确保您了解这一点,以及我们为什么使用它,或者使用它可以获得哪些优势:

随机梯度下降根据以下迭代过程执行更新。 这种一次只更新一个示例的学习称为在线学习 学习。

它的算法如下所示:

procedure Online
  for several epochs of training do
     for each training example in the data do
         Calculate gradients of the loss
         Update the parameters according to this gradient
     end for
  end for
end procedure
procedure Batch
  for several epochs of training do
    for each training example in the data do
        Calculate and accumulate gradients of the loss
    end for
    Update the parameters according to the accumulated gradient
  end for
end procedure
相比之下,我们还可以考虑一种批处理学习算法,该算法将整个数据集视为一个单元,计算该单元的梯度,然后仅在对数据进行完整遍历后执行更新。这两种更新策略有权衡

•在线培训算法通常能更快地找到相对较好的解决方案,因为在执行更新之前,它们不需要对数据进行全面检查

•然而,在培训结束时,批量学习算法可以更稳定,因为它们 不会受到最近看到的培训示例的过度影响

批处理的算法如下所示:

procedure Online
  for several epochs of training do
     for each training example in the data do
         Calculate gradients of the loss
         Update the parameters according to this gradient
     end for
  end for
end procedure
procedure Batch
  for several epochs of training do
    for each training example in the data do
        Calculate and accumulate gradients of the loss
    end for
    Update the parameters according to the accumulated gradient
  end for
end procedure
•批量训练算法也更容易陷入局部最优;在线训练算法中的随机性通常允许它们跳出局部最优解,并 找到更好的全球解决方案

小批量是介于这两种策略之间的一种很好的媒介。基本上是小批量的 培训与在线培训类似,但不是一次只处理一个培训示例 一次,我们计算n个训练示例的梯度。在n=1的极端情况下, 这相当于标准的在线培训,在另一个极端,其中n等于数据的大小,这相当于完全批量培训

当我们增加训练示例的数量时,每个参数更新都会变得 信息量更大、更稳定,但执行一次更新的时间会增加,因此 通常选择一个能在两者之间保持良好平衡的n。 迷你批处理的另一个主要优点是,通过使用一些技巧,它实际上是 可以使n个训练示例的同时处理速度明显快于 分别处理n个不同的示例。具体来说,通过多个培训示例 并将相似的操作组合在一起进行同时处理,可以实现大规模的 由于现代硬件(特别是GPU、, 但CPU)也有非常高效的向量处理指令,可以通过 结构合理的输入


这篇精彩文章的解释如下:如果您有时间,您可以进一步阅读:

回答得很好,谢谢Majid,即使如此,您所说的在每次迭代中处理培训集中的一个示例是什么意思?不客气。我的意思是,它只使用一个样本,即一个批量大小的样本来执行每个迭代。请检查此文档:@LuisAnaya我看到您提出了一些关于DL的基本问题。并且看到你正在做FASTAI课程,如果这些东西没有被覆盖,你最好在FASTAI课程之前做安得烈NG深造。与fastai相比,内容更为详细,更多的是从基础知识(不是说它不好,而是有利于高级任务的实施)。如果答案有帮助,请检查它是否正确。谢谢@LuisAnaya@akshayk07对你是对的,fastai课程只教给你一个大的形象,我认为deeplearning.ai课程可能对我很有帮助,我将尝试看看我是否可以同时结合这两门课程,或者我是否先做andrew课程,然后再做fastai课程