【发布时间】:2015-09-07 01:17:47
【问题描述】:
我想配置来自 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
提前致谢!
【问题讨论】:
-
What I need is a solid and general L-BFSG configuration, that is suitable to solve most problems.- 如果有一组参数对几乎所有函数都非常有效,那么这些参数将是默认参数,你不觉得吗?优化任意的非凸函数可能非常困难甚至是不可能的。参数通常很重要,必须针对问题进行调整。 -
感谢您的回答!我以为会出现这样的事情:-D 但是你认为我的参数等于 scipy 吗?
标签: java optimization machine-learning scipy stanford-nlp