Python 给定函数的计算偏导数优化函数

Python 给定函数的计算偏导数优化函数,python,numpy,scipy,Python,Numpy,Scipy,我需要优化一个函数(找到它的最小值)。该函数通过向量w进行参数化。我基本上是计算函数对每个参数的偏导数。然后我简单地使用梯度下降法。然而,据我所知,人们可以使用比梯度下降更复杂的优化方法,而梯度下降不需要调整或关注参数。我想在numpy或scipy中尝试其中一种方法,但我不知道如何使用。我需要的是一个方法,它接受计算的偏导数值作为输入,然后优化函数。在numpy或scipy中是否存在类似的内容?为您提供了输入目标函数的雅可比和海森的选项: jac:bool或callable,可选 目标函数的雅可

我需要优化一个函数(找到它的最小值)。该函数通过向量
w
进行参数化。我基本上是计算函数对每个参数的偏导数。然后我简单地使用梯度下降法。然而,据我所知,人们可以使用比梯度下降更复杂的优化方法,而梯度下降不需要调整或关注参数。我想在
numpy
scipy
中尝试其中一种方法,但我不知道如何使用。我需要的是一个方法,它接受计算的偏导数值作为输入,然后优化函数。在
numpy
scipy
中是否存在类似的内容?

为您提供了输入目标函数的雅可比和海森的选项:

jac:bool或callable,可选

目标函数的雅可比(梯度)。仅适用于CG、BFGS、牛顿CG、L-BFGS-B、TNC、SLSQP、狗腿、信托ncg。如果jac是一个布尔值且为真,则假定fun随目标函数返回梯度。如果为False,将以数值方式估计梯度。jac也可以是返回目标梯度的可调用函数。在这种情况下,它必须接受与fun相同的参数。 赫斯

hessp:可调用,可选

目标函数的Hessian(二阶导数矩阵)或目标函数的Hessian乘以任意向量p。仅适用于牛顿CG、狗腿、信任ncg。只需提供一个hessp或hess。如果提供hess,则忽略hessp。如果既不提供hess也不提供hessp,则将使用jac上的有限差分近似Hessian乘积。hessp必须计算Hessian乘以任意向量


正如@ffriend在评论中提到的,你可以找到一些有梯度和没有梯度的例子

有些,有梯度的和没有梯度的。@f朋友,谢谢!我在答案中添加了这一点,因为这是一个相当全面的教程。