Что здесь происходит (нижняя строка)?
То, что вы испытываете, является сильным признаком чрезмерной подгонки.Далее следуют подробности.
Как это вообще возможно?
И регуляризация, и случайные коллизии хэшей представляют собой механизмов дисконтирования для подмножества характеристик модели.Они выбирают некоторые особенности и делают их менее важными (или полностью обесцененными) в модели.
Но на этом сходство заканчивается.Два механизма дисконтирования очень различаются в:
- Подмножество функций, которые они дисконтируют (специфические и случайные)
- Метод дисконтирования (полное и частичное смешение)
- Направление и величина дисконтирования
Специфическое или случайное дисконтирование
Регуляризация L1 (--l1 ...
) выбирает очень специфические веса (ближайший ноль против нормы), в то время как случайные столкновения хешей "выбирает "случайные веса, некоторые из которых могут быть большими.
Полное или частичное дисконтирование
Регуляризация L1 полностью обрезает / удаляет выбранные веса, в то время как столкновения случайного хэша создают смеси с другимифункции.В некотором смысле (смешивание эффектов) смеси похожи, но не идентичны, что делает vw
пересечение признаков с -q <XY>
.
Направление и величина дисконтирования
В отличие от конкретного выборапо абсолютной величине веса случайный выбор может влиять на вес любой величины.
Более того, функция может быть плохой функцией, если рассматривать ее отдельно, но фактически вносить свой вклад, когда рассматривается в сочетании с другой функцией.Одним из примеров было бы сочетание двух плохих черт, одного с положительным, а другого с отрицательным весом.Частично отменяя друг друга, они могут привести к правдоподобно хорошей функции, которая несколько коррелирует с целевой меткой.IOW: смешивание функций иногда может превратить плохой эффект в хороший.
Как дисконтирование может помочь (или навредить) модели?
Это очень часто встречается в машинном обучении, особенно в большихпроблемы с данными.Повышение точности выбора, обрезки или смешивания элементов зависит от данных.
Если происходит сбрасывание со «плохой» функции (которая согласуется с данными обучения, но не помогает в обобщении), онаделает модель лучше.Однако, если мы упустим из виду хорошую, хорошо обобщающую функцию, это приведет к ухудшению модели при тестировании (из выборочных данных).
Связано: идея случайного сбрасывания или отбрасывания функций, даже потенциально важных.Доказано, что это мощный и полезный метод в глубоких нейронных сетях (NN), где он называется dropout . dropout стал методом de-rigueur, чтобы избежать чрезмерной подгонки при глубоком обучении.
Итог
Создание хороших моделей требует практики.Когда у вас очень большое количество функций, возможна перестройка из-за случайных эффектов (как малых, так и / или больших весов).Этого переоснащения следует избегать.
Существует много способов избежать переоснащения.Регуляризация - это всего лишь один из конкретных способов уменьшить переоснащение.Иногда более общий случайный подход, который затрагивает все функции, а не только те, которые имеют малый вес, может быть полезен в целом.
Когда это происходит, намек на то, что число функций может быть слишком большим,и вы, возможно, переоцениваете их.
Как правило, я подозреваю, что любая модель, в которой количество примеров (строк набора данных), используемых для обучения, не намного больше, чем число признаков (отдельный набор данных).колонны).Если у вас есть сотни тысяч (10 ^ 6) функций, вам, вероятно, следует иметь 10 ^ 12 (триллионов) примеров, чтобы избежать чрезмерной подгонки.
Еще одна вещь, которую я хотел бы сделать с большим количеством функций,состоит в том, чтобы случайным образом перемешать порядок примеров и смешать несколько моделей, чтобы убедиться, что конкретный порядок не вызывает чрезмерного соответствия.Из-за снижения скорости обучения онлайн-обучение имеет тенденцию перевешивать ранние примеры над более поздними.