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

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

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

maxIterations=10

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

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


person David Batista    schedule 09.01.2018    source источник
comment
Кроме того, я предполагаю, что он поддерживает регуляризацию L1 и L2, но, возможно, присутствует только L1 или L2, а не оба.   -  person David Batista    schedule 09.01.2018


Ответы (1)


Мне пришлось копаться в коде, но я нашел его, так что в основном StanfordNER поддерживает множество различных алгоритмов численной оптимизации. Можно увидеть, какие из них реализованы и могут быть использованы для обучения CRF, изучив метод 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

person David Batista    schedule 13.01.2018
comment
собрал все свои заметки в блоге об этих экспериментах со StanfordNER: davidsbatista.net/ blog/2018/01/23/StanfordNER - person David Batista; 01.02.2018