在Python中进行梯度下降的一种方法是自己编写代码。然而,考虑到它在机器学习中是多么流行的概念,我想知道是否有一个我可以导入的 Python 库,它为我提供了一种梯度下降方法(最好是小批量梯度下降,因为它通常比批量和随机梯度下降更好,但如果我错了,请纠正我(。
我检查了NumPy和SciPy,但找不到任何东西。我没有使用TensorFlow的经验,但浏览了他们的在线API。我找到了tf.train.GradientDescentOptimizer,但没有参数可以让我选择批量大小,所以我对它的实际含义相当模糊。
对不起,如果我听起来很天真。我正在自学很多这些东西。
显而易见,梯度下降正在优化函数。当您使用来自某个库的梯度下降的某些实现时,您需要使用此库的构造指定函数。例如,函数在TensorFlow中表示为计算图。你不能只采用一些纯粹的python函数,并要求TensorFlow的梯度下降优化器来优化它。
如果您的用例允许您使用 TensorFlow 计算图(以及所有相关的机制 - 如何运行函数、计算其梯度(,tf.train.*Optimizer
将是一个显而易见的选择。否则,它是无法使用的。
如果您需要一些轻量级的东西,https://github.com/HIPS/autograd 可能是所有流行库中的最佳选择。它的优化器可以在这里找到:https://github.com/HIPS/autograd/blob/master/autograd/misc/optimizers.py