梯度下降算法_批梯度下降法,Minibatch梯度下降法和随机梯度下降法之间的区别...

什么是梯度下降法?

梯度下降法是一种机器学习中常用的优化算法,用来找到一个函数(f)的参数(系数)的值,使成本函数(cost)最小。

当参数不能解析计算时(如使用线性代数),并且必须通过优化算法搜索时,它是最佳选择。

梯度下降算法_批梯度下降法,Minibatch梯度下降法和随机梯度下降法之间的区别..._第1张图片

批梯度下降法

batch梯度下降针对每次梯度下降迭代处理所有训练实例。如果训练样本的数量很大,那么批梯度下降在计算上将非常昂贵。因此,如果训练实例的数量很大,则批梯度下降不是首选。相反,我们更喜欢使用随机梯度下降或mini-batch梯度下降。

它是如何运作的?

由于我们需要计算整个机器学习数据集上的梯度来执行一次更新,因此批梯度下降可能非常慢,并且对于内存中不适合的数据集来说很棘手。用任意值初始化参数(说θ1=θ2=…=θn= 0)后,我们使用以下关系式计算成本函数的梯度:

梯度下降算法_批梯度下降法,Minibatch梯度下降法和随机梯度下降法之间的区别..._第2张图片

其中“ m”是训练样本的数量。

  • 如果您有1万条记录,则需要将所有记录从磁盘读入内存。
  • 在计算了一次迭代的sigma之后,我们执行了一步。
  • 然后对每个步骤重复一次。
  • 这意味着收敛需要很长时间。

因此,我们将倾向于使用其他方法。

随机梯度下降法

随机梯度下降中,每次迭代处理一个训练实例。因此,这比批梯度下降要快得多。但是,当训练样本的数量很大时,它也只处理一个样本,这可能会增加系统的开销,因为迭代的数量会非常大。

它是如何工作的?

算法的第一步是将整个训练集随机化。然后,对于每个参数的更新,我们在每次迭代中仅使用一个训练样本来计算成本函数的梯度。

由于它在每次迭代中都使用一个训练样本,因此对于较大的机器学习数据集,此方法更快。用任意值初始化参数(说θ1=θ2=…=θn= 0)后,我们使用以下关系式计算成本函数的梯度:

梯度下降算法_批梯度下降法,Minibatch梯度下降法和随机梯度下降法之间的区别..._第3张图片

其中“ m”是训练样本的数量

  • 选择第一个训练样本并使用该样本更新参数,然后选择第二个样本,依此类推
  • 然后选择第二个训练样本,并使用该样本更新参数,以此类推。
  • 选择第三个直到n。
  • 直到达到全局最小值。

随机梯度下降法实际上不像批梯度下降法那样收敛,而是在接近全局最小值的区域内徘徊。

Mini Batch梯度下降法

Mini Batch梯度下降的速度比批梯度下降和随机梯度下降均快。在这里,每个迭代处理b个样本,其中b(m是训练样本的数量)。因此,即使训练样本数量很多,也要一次性处理b个训练样本的批次。因此,它适用于较大的训练样本,并且适用于较少的迭代次数。

如何运作

由于它是使用最广泛的算法,可以产生准确,快速的结果。

  • 减少了参数更新的方差,这可以导致更稳定的收敛。
  • 可以利用高度优化的矩阵,从而使梯度计算非常有效。

用任意值初始化参数后,我们使用以下关系式计算成本函数的梯度:

梯度下降算法_批梯度下降法,Minibatch梯度下降法和随机梯度下降法之间的区别..._第4张图片

alpha是学习率

常见的Mini Batch大小在50到256之间,但是会因不同的应用而有所不同。

最后

批梯度下降,Mini Batch梯度下降和随机梯度下降之间的区别是用于执行一个更新步骤的样本数。经过微调的mini-batch,其性能优于梯度下降或随机梯度下降。

基于准确度和时间消耗等参数的批量梯度下降法、小批量梯度下降法和随机梯度下降法的区别是

梯度下降算法_批梯度下降法,Minibatch梯度下降法和随机梯度下降法之间的区别..._第5张图片

你可能感兴趣的:(梯度下降算法)