Vowpal Wabbit хеш-коллизия работает лучше, чем L1 как регуляризация - PullRequest
0 голосов
/ 20 февраля 2019

У меня есть модель классификации VW, которую я хотел проверить на количество признаков и количество коллизий хешей.Я обучил его и протестировал на разных наборах данных.Наборы данных содержат более 400 тыс. Функций, поэтому с 18-битным пространством VW можно сэкономить только 260 тыс. Без коллизий.

Затем, чтобы проверить его, я создал две читаемые модели: одну с параметром --readable_model, чтобыполучить число всех хешей, второй с параметром --invert_hash, чтобы получить количество всех объектов, даже тех, которые были в столкновениях хешей.Было 425 тыс. Функций и 208 тыс. Хешей (не 260 тыс., Потому что я использовал некоторую фильтрацию с аргументом --keep, и, насколько я понимаю, vw сохраняет в хеш-таблицу, также игнорируя пространства имен).Затем я измерил качество модели, используя ROC_AUC, MCC и Average Precision.Результаты были 0,903, 0,564, 0,591.

Как видите, коллизия хешей огромна, поэтому я решил увеличить битовое пространство, установив для аргумента -b значение 24. Затем я снова обучил модель.Теперь было 425 тыс. Объектов и 425 тыс. Хэшей = нет столкновений.Однако результаты по тем же показателям были хуже (0,902,0554,0,587).

На данный момент все выглядит так, как если бы было 24-разрядное пространство с большим переобучением, в то время как 18-разрядное предотвращало более сильную модель против переобучения - это было бы хорошим объяснением, почемурезультаты были лучше на наборе тестовых данных с 18-битной моделью.

Но затем я решил уменьшить количество функций на 24-битной модели с регуляризацией L1.Некоторое время я играл с ним, и когда я получил модель с 208 тыс. Хешей и 208 тыс. Функций, я был очень удивлен, что ее результаты были еще хуже, чем результаты 18-битной модели с таким же количеством хешей.Это было 0,901,0.584,0.552.

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

1 Ответ

0 голосов
/ 20 февраля 2019

Что здесь происходит (нижняя строка)?

То, что вы испытываете, является сильным признаком чрезмерной подгонки.Далее следуют подробности.

Как это вообще возможно?

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

Но на этом сходство заканчивается.Два механизма дисконтирования очень различаются в:

  • Подмножество функций, которые они дисконтируют (специфические и случайные)
  • Метод дисконтирования (полное и частичное смешение)
  • Направление и величина дисконтирования

Специфическое или случайное дисконтирование

Регуляризация L1 (--l1 ...) выбирает очень специфические веса (ближайший ноль против нормы), в то время как случайные столкновения хешей "выбирает "случайные веса, некоторые из которых могут быть большими.

Полное или частичное дисконтирование

Регуляризация L1 полностью обрезает / удаляет выбранные веса, в то время как столкновения случайного хэша создают смеси с другимифункции.В некотором смысле (смешивание эффектов) смеси похожи, но не идентичны, что делает vw пересечение признаков с -q <XY>.

Направление и величина дисконтирования

В отличие от конкретного выборапо абсолютной величине веса случайный выбор может влиять на вес любой величины.

Более того, функция может быть плохой функцией, если рассматривать ее отдельно, но фактически вносить свой вклад, когда рассматривается в сочетании с другой функцией.Одним из примеров было бы сочетание двух плохих черт, одного с положительным, а другого с отрицательным весом.Частично отменяя друг друга, они могут привести к правдоподобно хорошей функции, которая несколько коррелирует с целевой меткой.IOW: смешивание функций иногда может превратить плохой эффект в хороший.

Как дисконтирование может помочь (или навредить) модели?

Это очень часто встречается в машинном обучении, особенно в большихпроблемы с данными.Повышение точности выбора, обрезки или смешивания элементов зависит от данных.

Если происходит сбрасывание со «плохой» функции (которая согласуется с данными обучения, но не помогает в обобщении), онаделает модель лучше.Однако, если мы упустим из виду хорошую, хорошо обобщающую функцию, это приведет к ухудшению модели при тестировании (из выборочных данных).

Связано: идея случайного сбрасывания или отбрасывания функций, даже потенциально важных.Доказано, что это мощный и полезный метод в глубоких нейронных сетях (NN), где он называется dropout . dropout стал методом de-rigueur, чтобы избежать чрезмерной подгонки при глубоком обучении.

Итог

Создание хороших моделей требует практики.Когда у вас очень большое количество функций, возможна перестройка из-за случайных эффектов (как малых, так и / или больших весов).Этого переоснащения следует избегать.

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

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

Как правило, я подозреваю, что любая модель, в которой количество примеров (строк набора данных), используемых для обучения, не намного больше, чем число признаков (отдельный набор данных).колонны).Если у вас есть сотни тысяч (10 ^ 6) функций, вам, вероятно, следует иметь 10 ^ 12 (триллионов) примеров, чтобы избежать чрезмерной подгонки.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...