我试图通过SciPy优化最小化多变量函数来最小化函数。 我用来调用函数的代码:
res = minimize(self.score_gradient, self.initialized_theta, (x,y),'newton-cg', jac = True, tol = 1e-6, options = {'maxiter':100 ,'disp':True })
score_gradient
计算得分和雅可比/渐变。雅各比/梯度用数字检查。计算后在命令行中打印得分,我在命令行中看到以下内容:
3.3275625564
3.34459750933
3.32755781796
3.34459750933
3.32755307725
3.34459750933
3.32754833425
3.34459750933
3.32754358897
3.34459750933
3.32753884139
3.34459750933
3.3275340915
3.34459750933
3.32752933931
3.34459750933
正如您所看到的,有一个计算给出相同的结果,而另一个计算得分与预期一致。但是这个函数在这个计算中停留了半天以上,而在MATLAB中,这个计算时间不超过几个小时。我知道MATLAB可能使用了不同的优化算法。 有人看到了这种行为,可以指出我做错了什么?