训练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| < TOL
,TOL
由以下因素控制:
tolerance = 0.01
另一个有用的参数是明确控制学习算法应该运行:
的最大迭代次数
maxQNItr = 100
我正在查看 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| < TOL
,TOL
由以下因素控制:
tolerance = 0.01
另一个有用的参数是明确控制学习算法应该运行:
的最大迭代次数maxQNItr = 100