Neh*_*kar 2 python numpy mathematical-optimization scipy
我正在使用scipy的fmin_l_bfgs_b优化方法对作为黑盒子的二维函数.无法直接评估渐变,因此我要求方法通过设置来近似渐变approx_grad = True.
我想知道如何计算近似梯度.我的猜测是,在每个点上,对于每个维度,梯度由前向差异近似.因此,对于N维中的每个点,进行N次评估以获得偏导数.它是否正确?
雅可比近似是用scipy.optimize.approx_fprime函数完成的,docs:
Run Code Online (Sandbox Code Playgroud)f(xk[i] + epsilon[i]) - f(xk[i]) f'[i] = --------------------------------- epsilon[i]
其中epsilon是fmin_l_bfgs_b的参数
epsilon:浮动
当
approx_grad为True 时使用的步长,用于数值计算梯度