CoreNLP 使用QNMinimizer代替OWLQNMinimizer,

oprakyz7  于 5个月前  发布在  其他
关注(0)|答案(3)|浏览(78)

CRFClassifier和ColumnDataClassifier中的l1reg选项默认使用OWLQNMinimizer,但它并未在公共发布版本中提供。我将此问题发布在了邮件群组中,Manning教授表示可以使用QNMinimizer来获得正则化功能。

我成功地修改了ColumnDataClassifier中的代码,使l1reg正常工作。请问为什么官方发布版本中没有进行这个更改呢?

o4hqfura

o4hqfura1#

你能在这里或者在pull request中贴出你是如何让它为ColumnDataClassifier工作的吗?我可以在这个更改上添加。我认为这只是一个疏忽,因为一些代码仍然期望OWLQNMinimizer的代码。

我对CRFClassifier的理解是,如果你使用useQN=trueuseOWLQN=truepriorLambda=1.0(或者任何你想要的值),它会给你想要的效果。

8dtrkrch

8dtrkrch2#

我评论了第1383行和第1472行,它们分别是
Minimizer<DiffFunction> minim = ReflectionLoading.loadByReflection("edu.stanford.nlp.optimization.OWLQNMinimizer", globalFlags.l1reg);

Minimizer<DiffFunction> minim = new QNMinimizer(); ((QNMinimizer)minim).useOWLQN(true, globalFlags.l1reg);
但这只是个临时解决方案。有很多地方使用了OWLQNMinimizer。例如,如果我们设置了useBinary,我们还需要更改LogisticClassifierFactory

p4rjhz4m

p4rjhz4m3#

关于这个有任何更新吗?

相关问题