我如何知道要使用哪种类型的梯度下降?

时间:2019-06-21 02:31:40

标签: machine-learning neural-network computer-vision artificial-intelligence conv-neural-network

我了解梯度下降的三种类型,但是我的问题是我不知道我必须在模型中使用哪种类型。我读了很多书,但没听懂。

没有代码,这只是问题。

1 个答案:

答案 0 :(得分:1)

梯度下降的类型

  • 批量梯度下降:它会为每次梯度下降迭代处理所有训练示例。但是,当训练示例数量很多且通常不受欢迎时,此方法的计算量很大。
  • 随机梯度下降:它在每次迭代中处理一个训练示例。此处,参数在每次迭代后都会更新。该方法比批量梯度下降法更快。但是,当训练样本数很大时,它会通过增加迭代次数来增加系统开销。
  • 小型批处理梯度下降:小型批处理算法是最有利且被广泛使用的算法,它使用一批m训练示例来提供精确,快速的结果。在小型批处理算法中,而不是使用完整的数据集,在每次迭代中,我们使用一组称为m的{​​{1}}训练示例来计算成本函数的梯度。常见的小批量大小在batch50之间,但对于不同的应用程序可能会有所不同。

除了梯度下降变量外,还有其他各种优化算法,例如adam,rmsprop等。

我们应该使用哪个优化程序?

问题是要为我们的神经网络模型选择最佳的优化器,以便快速收敛并正确学习和调整内部参数,以使损失函数最小化。

  

亚当(Adam)在实践中效果很好,并且胜过其他自适应技术。

如果您的输入数据稀疏,则诸如256SGDNAG之类的方法将较差且性能较差。对于稀疏数据集,应使用一种自适应学习率方法。另一个好处是,我们不需要调整学习率,而是可以使用默认值获得最佳结果。

如果要快速收敛并训练深度神经网络模型或高度复杂的神经网络,则应使用momentum或任何其他自适应学习率技术,因为它们优于其他所有优化算法。

我希望这可以帮助您确定要为模型使用哪个模型。