Обучение Stanford-NER-CRF, контроль количества итераций и параметров регуляризации (L1,L2)

Я просматривал документацию / часто задаваемые вопросы StanfordNER, но не могу найти ничего, связанного с указанием максимального количества итераций в обучении, а также со значением параметров регуляризации L1 и L2.

Я видел ответ, который предлагается установить, например:

maxIterations=10

в файле свойств, но это не дало никаких результатов.

Можно ли установить эти параметры?

1 ответ

Мне пришлось копаться в коде, но я нашел его, поэтому в основном StanfordNER поддерживает множество различных алгоритмов численной оптимизации. Можно увидеть, какие из них реализованы и могут быть использованы для обучения CRF, изучив getMinimizer() метод в CRFClassifier.java файл.

Я настроил свой файл свойств для использования квазиньютона с ограниченной памятью Orthant-Wise, установив:

useOWLQN = true

L1-prior можно установить с помощью:

priorLambda = 10

Полезный прием - поиграть с параметром допуска сходимости TOL, который проверяется на каждой итерации: |newest_val - previous_val| / |newestVal| < TOL, TOL контролируется:

tolerance = 0.01

Еще один полезный параметр - это явное управление максимальным количеством итераций, для которых должен выполняться алгоритм обучения:

maxQNItr = 100

Другие вопросы по тегам