我正在浏览 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| < TOL
,TOL
由以下部分控制:
tolerance = 0.01
另一个有用的参数是显式控制学习算法应运行的最大迭代次数:
maxQNItr = 100