Подбор метапараметров CRF/LBFGS для POS Tagger's

Jul 01, 2016 20:45

В этом цикле обновления парсера и POS Tagger'а я решил немного поиграться параметрами оптимизатора, попробовать выжать парочку сотых процента в точности.

Используемая в POS Tagger'е библиотека CRFSuite по умолчанию использует LBFGS. Среди гиперпараметров этого оптимизатора интересны два - параметры регуляризации L1 и L2. Для задания используются опции командной строки:

--set=c1=NNN
--set=c2=NNN

для L1 и L2 соответственно. По умолчанию CRFSuite принимает L1=0 и L2=1.

Обсчет по полному датасету занимает больше двух суток, что делает эксперименты недопустимо длительными и скучными. Поэтому подбор выполнялся на урезанном до 100,000 предложений корпусе. Фактически получился случайный подбор - я менял параметры руками в небольшом разумном диапазоне, получая для каждой пары величину ошибаемости на тестовом наборе данных.

Кроме точности на тестовом наборе, в качестве побочной метрики можно было взять размер файла с сохраненной моделью, так как L1 регуляризация может сильно урезать набор учитываемых моделью признаков. Как показали эксперименты, количество активных признаков и размер файла модели меняются в пределах порядка. В целом, чем выше L1, тем компактнее модель и меньше активных признаков. Хотя L2 тоже влияет на размер модели - см. таблицу ниже.

Кроме того, увеличение L1 сильно замедляет обсчет, так как ухудшается сходимость.

С точностью все намного сложнее. Из таблички видно, что есть что-то типа оптимального значения пары, на котором точность наилучшая. Отклонение любого из регуляризаторов от оптимума ухудшает точность.

Без регуляризации получается самая массивная и самая неточная модель.

L1=0     L2=0    err=1.78%   size=52,564,120
L1=0     L2=0.5  err=1.55%   size=52,564,120
L1=0     L2=1    err=1.56%
L1=0.05  L2=0.5  err=1.53%   size=14,243,764
L1=0.1   L2=0    err=1.65%   size=2,307,468
L1=0.1   L2=0.5  err=1.51%   size=10,604,896
L1=0.1   L2=1    err=1.54%   size=12,656,044
L1=0.1   L2=2    err=1.61%   size=14,911,556

conditional random fields, crf, вероятностная русская морфология, вероятностная модель, machine learning, частеречная разметка, pos tagger

Previous post Next post
Up