训练斯坦福-NER-CRF,控制迭代次数和正则化(L1,L2)参数



我正在浏览 StanfordNER 文档/常见问题解答,但我找不到与指定训练中的最大迭代次数以及正则化参数 L1 和 L2 的值相关的任何内容。

我看到一个建议设置的答案,例如:

maxIterations=10

在属性文件中,但这没有给出任何结果。

是否可以设置这些参数?

我不得不深入研究代码但找到了它,所以基本上 StanfordNER 支持许多不同的数值优化算法。人们可以看到哪些已经实现,并且可以通过查看 getMinimizer() CRFClassifier.java文件中的方法。

我通过设置将我的属性文件配置为使用Orthant-Wise Limited-Memory Quasi-Newton:

useOWLQN = true

L1 先验可以设置为:

priorLambda = 10

一个有用的技巧是使用收敛容差参数 TOL,该参数在每次迭代时都会检查:|newest_val - previous_val| / |newestVal| < TOLTOL由以下部分控制:

tolerance = 0.01

另一个有用的参数是显式控制学习算法应运行的最大迭代次数:

maxQNItr = 100

最新更新