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

Training Stanford-NER-CRF, control number of iterations and regularisation (L1,L2) parameters

我正在查看 StanfordNER documentation/FAQ,但找不到与指定训练中的最大迭代次数以及正则化参数 L1 和 L2 的值相关的任何内容。

看到一个回答建议设置,比如:

maxIterations=10

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

是否可以设置这些参数?

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

我通过设置将我的属性文件配置为使用 Orthant-Wise 有限内存拟牛顿:

useOWLQN = true

L1-prior 可以设置为:

priorLambda = 10

一个有用的技巧是使用收敛公差参数 TOL,它在每次迭代时检查:|newest_val - previous_val| / |newestVal| < TOLTOL 由以下因素控制:

tolerance = 0.01

另一个有用的参数是明确控制学习算法应该运行:

的最大迭代次数

maxQNItr = 100