如何配置 Stanford QNMinimizer 以获得与 scipy.optimize.minimize L-BFGS-B 相似的结果
How configure Stanford QNMinimizer to get similar results as scipy.optimize.minimize L-BFGS-B
我想配置 Stanford Core NLP Lib 中的 QN-Minimizer 以获得与 scipy 优化 L-BFGS-B 实现或获得适合于的标准 L-BFSG 配置几乎相似的优化结果大多数事情。我将标准参数设置如下:
我要复制的python例子:
scipy.optimize.minimize(neuralNetworkCost, input_theta, method = 'L-BFGS-B', jac = True)
我尝试在 Java 中做同样的事情:
QNMinimizer qn = new QNMinimizer(10,true) ;
qn.terminateOnMaxItr(batch_iterations);
//qn.setM(10);
output = qn.minimize(neuralNetworkCost, 1e-5, input,15000);
我需要的是一个坚实而通用的L-BFSG配置,适合解决大多数问题。
我也不确定,如果我需要为标准 L-BFGS 配置设置其中一些参数:
useAveImprovement = ?;
useRelativeNorm = ?;
useNumericalZero = ?;
useEvalImprovement = ?;
提前感谢您的帮助,我是该领域的新手。
信息资源:
斯坦福核心 NLP QNMinimizer:
http://nlp.stanford.edu/nlp/javadoc/javanlp-3.5.2/edu/stanford/nlp/optimization/QNMinimizer.html#setM-int-
https://github.com/stanfordnlp/CoreNLP/blob/master/src/edu/stanford/nlp/optimization/QNMinimizer.java
Scipy 优化L-BFGS-B:
http://docs.scipy.org/doc/scipy/reference/generated/scipy.optimize.minimize.html
http://docs.scipy.org/doc/scipy-0.14.0/reference/generated/scipy.optimize.fmin_l_bfgs_b.html
提前致谢!
你有的应该没问题。 (你真的遇到过任何问题吗?)
在最大迭代次数和最大函数求值时都设置终止可能有点矫枉过正,因此您可能会省略 qn.minimize()
的最后一个参数,但从文档中可以看出 scipy 确实将两者与默认值为 15000。
一般来说,使用 robustOptions(像您一样使用 true
的第二个参数)应该提供可靠的最小化器,类似于 scipy 的 pgtol
收敛准则。其他选项用于特殊情况或只是试验它们的工作方式。
我想配置 Stanford Core NLP Lib 中的 QN-Minimizer 以获得与 scipy 优化 L-BFGS-B 实现或获得适合于的标准 L-BFSG 配置几乎相似的优化结果大多数事情。我将标准参数设置如下:
我要复制的python例子:
scipy.optimize.minimize(neuralNetworkCost, input_theta, method = 'L-BFGS-B', jac = True)
我尝试在 Java 中做同样的事情:
QNMinimizer qn = new QNMinimizer(10,true) ;
qn.terminateOnMaxItr(batch_iterations);
//qn.setM(10);
output = qn.minimize(neuralNetworkCost, 1e-5, input,15000);
我需要的是一个坚实而通用的L-BFSG配置,适合解决大多数问题。
我也不确定,如果我需要为标准 L-BFGS 配置设置其中一些参数:
useAveImprovement = ?;
useRelativeNorm = ?;
useNumericalZero = ?;
useEvalImprovement = ?;
提前感谢您的帮助,我是该领域的新手。
信息资源: 斯坦福核心 NLP QNMinimizer: http://nlp.stanford.edu/nlp/javadoc/javanlp-3.5.2/edu/stanford/nlp/optimization/QNMinimizer.html#setM-int- https://github.com/stanfordnlp/CoreNLP/blob/master/src/edu/stanford/nlp/optimization/QNMinimizer.java
Scipy 优化L-BFGS-B: http://docs.scipy.org/doc/scipy/reference/generated/scipy.optimize.minimize.html http://docs.scipy.org/doc/scipy-0.14.0/reference/generated/scipy.optimize.fmin_l_bfgs_b.html
提前致谢!
你有的应该没问题。 (你真的遇到过任何问题吗?)
在最大迭代次数和最大函数求值时都设置终止可能有点矫枉过正,因此您可能会省略 qn.minimize()
的最后一个参数,但从文档中可以看出 scipy 确实将两者与默认值为 15000。
一般来说,使用 robustOptions(像您一样使用 true
的第二个参数)应该提供可靠的最小化器,类似于 scipy 的 pgtol
收敛准则。其他选项用于特殊情况或只是试验它们的工作方式。