当前位置 : 主页 > 网络安全 > 测试自动化 >

机器学习 – Mallet CRF SimpleTagger性能调整

来源:互联网 收集:自由互联 发布时间:2021-06-22
对于使用 Java库Mallet的SimpleTagger类进行条件随机场(CRF)的人来说,这是一个问题.假设我已经使用多线程选项来获得我可用的最大CPU数量(这是这种情况):我将从哪里开始,如果我需要它运行
对于使用 Java库Mallet的SimpleTagger类进行条件随机场(CRF)的人来说,这是一个问题.假设我已经使用多线程选项来获得我可用的最大CPU数量(这是这种情况):我将从哪里开始,如果我需要它运行得更快,我应该尝试哪些事情?

一个相关的问题是,是否有办法做一些类似于随机梯度下降的东西,这会加速训练过程?

我想要做的培训类型很简单:

Input:
Feature1 ... FeatureN SequenceLabel
...

Test Data:
Feature1 ... FeatureN
...

Output:

Feature1 ... FeatureN SequenceLabel
...

(其中的功能是我在自己的代码中对数据进行处理的输出.)

我在使用除Mallet以外的任何CRF分类器时遇到了大问题,但是我可能不得不再次回溯并重新访问其中一个实现,或尝试新的实现.

是的,随机梯度下降通常比Mallet中使用的L-BFGS优化器更快.我建议你试试 CRFSuite,你可以用SGD或L-BFGS训练.您也可以尝试使用LéonBottou的 SGD-based implementation,但这样设置起来比较困难.

否则,我相信CRF++是最常用的CRF软件.它基于L-BFGS,所以它可能不够快.

CRFSuite和CRF都应该很容易上手.

请注意,如果您有大量标签,所有这些都会很慢.至少CRFSuite可以配置为仅考虑在第(n-1)阶模型中观察到的标签-n-gram,这通常会使训练和预测更快.

网友评论