Настройка производительности Mallet CRF SimpleTagger - PullRequest
5 голосов
/ 28 марта 2011

Вопрос для всех, кто использовал класс SimpleTagger из библиотеки Маллета для условных случайных полей (CRF). Предположим, что я уже использую многопоточную опцию для максимального количества доступных процессоров (это так): с чего бы мне начать, и какие вещи мне следует попробовать, если мне нужно, чтобы он работал быстрее?

Смежный вопрос: есть ли способ сделать что-то похожее на Stochastic Gradient Descent, что ускорило бы процесс обучения?

Тип обучения, который я хочу сделать, прост:

Input:
Feature1 ... FeatureN SequenceLabel
...

Test Data:
Feature1 ... FeatureN
...

Output:

Feature1 ... FeatureN SequenceLabel
...

(где функции - это результат обработки, которую я сделал для данных в своем собственном коде.)

У меня были проблемы с получением любого классификатора CRF, кроме Маллета, для приблизительной работы, но мне, возможно, придется вернуться назад и вернуться к одной из других реализаций или попробовать новую.

Ответы [ 2 ]

4 голосов
/ 28 марта 2011

Да, стохастический градиентный спуск обычно намного быстрее, чем оптимизатор L-BFGS, используемый в Mallet. Я бы посоветовал вам попробовать CRFSuite , который вы можете обучать либо SGD, либо L-BFGS. Вы также можете попробовать реализацию Léon Bottou на основе SGD, но ее сложнее настроить.

В противном случае, я считаю, что CRF ++ является наиболее часто используемым программным обеспечением CRF. Однако он основан на L-BFGS, поэтому он может быть недостаточно быстрым для вас.

Как с CRFSuite, так и с CRF ++ легко начать работу.

Обратите внимание, что все это будет медленным, если у вас большое количество меток. По крайней мере, CRFSuite можно настроить так, чтобы он учитывал только наблюдаемые n-граммы меток - в (n-1) -й модели порядка - что обычно значительно ускоряет обучение и прогнозирование.

2 голосов
/ 12 августа 2012

Пожалуйста, посмотрите на эту статью: http://www.stanford.edu/~acoates/papers/LeNgiCoaLahProNg11.pdf

Кажется, что методы стохастического градиентного спуска трудно настроить и распараллелить.

...