我正在查看 StanfordNER 文档/常见问题解答,但我找不到与指定训练中的最大迭代次数以及正则化参数 L1 和 L2 的值相关的任何内容。
我看到了一个建议设置的答案,例如:
maxIterations=10
在属性文件中,但没有给出任何结果。
可以设置这些参数吗?
我正在查看 StanfordNER 文档/常见问题解答,但我找不到与指定训练中的最大迭代次数以及正则化参数 L1 和 L2 的值相关的任何内容。
我看到了一个建议设置的答案,例如:
maxIterations=10
在属性文件中,但没有给出任何结果。
可以设置这些参数吗?
我不得不挖掘代码但找到了它,所以基本上 StanfordNER 支持许多不同的数值优化算法。getMinimizer()
通过查看文件中的方法,可以看到哪些已实现并可用于训练 CRF
CRFClassifier.java
。
我通过设置将我的属性文件配置为使用 Orthant-Wise Limited-memory Quasi-Newton:
useOWLQN = true
L1-prior 可以设置为:
priorLambda = 10
一个有用的技巧是使用收敛容差参数 TOL,该参数在每次迭代时检查:|newest_val - previous_val| / |newestVal| < TOL
,TOL
由以下控制:
tolerance = 0.01
另一个有用的参数是明确控制学习算法应该运行的最大迭代次数:
maxQNItr = 100