Переоснащение: нет серебряной пули?

21

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

Мой вопрос: сколько правды в приведенном выше утверждении?

Я часто слышу, как практикующие ML говорят: « В моей компании / лаборатории мы всегда пробуем каждую доступную модель (например, из таких библиотек, как caret или scikit-learn ), чтобы увидеть, какая из них работает лучше всего ». Я часто утверждаю, что этот подход может легко переопределиться, даже если они серьезно относятся к перекрестной проверке и сохраняют наборы удержания любым удобным для них способом. Более того, чем сложнее они ищут, тем больше шансов, что они переоденутся. Другими словами, чрезмерная оптимизация является реальной проблемой, и нет эвристики, которая может помочь вам систематически бороться с ней. Я ошибаюсь, если я так думаю?

Амелио Васкес-Рейна
источник
Вы спрашиваете о ML конкретно или о многомерных моделях в целом?
rumtscho
@rumtscho все в ML.
Амелио Васкес-Рейна
1
Спасибо @CagdasOzgenc: « Чем больше пространство поиска (рассматриваемые модели), тем хуже результат» . Не уверен, на какой уровень абстракции «пространство поиска» вы ссылаетесь здесь, но под «достаточно усердной попыткой» я, конечно, имею в виду поиск по все большему количеству моделей и, следовательно, увеличение сложности / пространства поиска «метамодели». (если вы хотите), что мы пытаемся соответствовать.
Амелио Васкес-Рейна

Ответы:

8

Не полный ответ, но одна вещь, которую люди упускают из виду в этом обсуждении, - что означает перекрестная проверка (например), почему вы используете ее и что она охватывает?

Проблема, с которой я сталкиваюсь при слишком сложном поиске, состоит в том, что резюме, которое делают люди, часто находится в одной модели. Это легко сделать, установив folds=аргумент процедуры подбора модели. Но когда вы переходите к нескольким моделям и даже к нескольким процедурам создания нескольких моделей, вы добавляете еще один или два слоя, которые вы не включили в CV.

Поэтому они должны использовать вложенное резюме. И им также следует использовать «Target Shuffling» (тестирование передискретизации / перестановки), охватывающий весь их процесс, чтобы увидеть, насколько хорошо будет их процедура, если вы нарушите взаимосвязь между зависимыми и независимыми переменными - то есть, насколько лучше вы делаете, чем случайные учитывая весь ваш процесс?

Wayne
источник
1
+1. Выбор модели с одним (или слишком небольшим) слоем CV, который выполняет поиск по сетке (выбор модели), может определенно привести к переоснащению (всем, кто интересуется, я рекомендую, например, это и источники там). Я читал о «Target Shuffling» (для других читателей я рекомендую эту экспозицию ), но никогда не использовал его сам; Интересно, можно ли этим также злоупотреблять (например, делать несколько тестов, которые в конечном итоге приводят к ложным срабатываниям, и, таким образом, снова искать «достаточно сложно» (?)).
Амелио Васкес-Рейна
7

За 4 года или около того опыта я обнаружил, что опробование каждой модели, доступной в карете (или scikit-learn), не обязательно приводит к переоснащению. Я обнаружил, что если у вас достаточно большой набор данных (более 10 000 строк) и более или менее равномерный баланс классов (т. Е. Нет дисбаланса классов, как в случае кредитного риска или маркетинговых проблем), то переоснащение имеет тенденцию быть минимальным. Стоит отметить, что мой поиск по сетке по параметрам настройки имеет тенденцию быть не более 30 перестановок на модель. В крайнем случае, если бы вы использовали 100 или 1000 перестановок на модель, вы, вероятно, подошли бы лучше.

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

Если я нахожусь в положении, в котором застрял со статическим набором данных, состоящим из менее чем 2000-3000 наблюдений (например: медицинские данные, которые трудно найти), я обычно использую только линейные модели, потому что я часто видел перегрузку с градиентом поддерживающие и поддерживающие векторные машины на достаточно небольших наборах данных. С другой стороны, я разговаривал с одним из лучших Kaggler (5% лучших), который сказал, что он создает десятки тысяч моделей для каждого соревнования, а затем объединяет их, используя несколько тысяч моделей в своем последнем ансамбле. Он сказал, что это было главной причиной его успеха в финальных таблицах лидеров.

Райан Зотти
источник
1
Ага. Я работал с данными, которые имели наблюдения в миллионах. Независимо от того, какую проверку я пробовал (kfold, начальную загрузку и даже простую задержку), в моделях было мало вариаций. По мере того как ваши данные увеличиваются, тем меньше внимания вы уделяете проверке.
Рикардо Круз,
Другими словами, ни одна модель не обладает достаточной степенью свободы, чтобы «запомнить» миллионы наблюдений.
Рикардо Круз,
5

Так много зависит от масштаба. Я бы хотел рассчитывать на то, что у меня будет более 2000-3000 дел, как, например, у @RyanZotti; У меня редко бывает 1/10 этого количества. Это большая разница в перспективе между людьми, обучающимися машинному обучению с использованием «больших данных», и теми, кто работает в таких областях, как биомедицина, что может объяснить некоторые из различных перспектив, которые вы найдете на этом сайте.

Я представлю эвристическое объяснение моего взгляда на эту проблему. Основная проблема в переоснащении, как описано на странице Википедии , заключается в связи между количеством наблюдений и количеством оцениваемых вами параметров. Итак, начните с грубой идеи, что если у вас есть M моделей, которые вы выбираете, и p параметров на модель, то вы оцениваете что-то порядка порядка Mp параметров.

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

С достаточно большими наборами данных вы никогда не приблизитесь к переоснащению. Если у вас есть 20 000 случаев и 20 различных моделей с 100 параметрами на модель, то у вас могут не быть проблем даже без штрафа, поскольку у вас все еще есть 10 случаев на эффективный параметр. Не пробуйте эту стратегию моделирования только с 200 случаями.

Усреднение модели может рассматриваться как форма наказания. В примере Kaggler, цитируемом @RyanZotti, число случаев предположительно огромно, и каждая из «нескольких тысяч» моделей в окончательном ансамбле по отдельности вносит лишь небольшую долю в окончательную модель. Любое переоснащение, характерное для конкретной модели, не оказывает большого влияния на конечный результат, и чрезвычайно большое количество случаев в соревновании Кагглера еще больше снижает опасность переобучения.

Так что, как и во многих других вопросах, единственный разумный ответ: «Это зависит». В этом случае это зависит от соотношения между количеством дел и эффективным количеством рассмотренных параметров, а также от того, сколько применяется наказание.

магистр педагогических наук
источник
2

Я думаю, что это очень хороший вопрос. Я всегда хочу наблюдать кривую U-образной формы в перекрестных проверочных экспериментах с реальными данными. Тем не менее, мой опыт работы с данными реального мира (~ 5 лет в транзакциях по кредитным картам и с данными об образовании) не говорит мне о том, что подгонка может легко произойти в огромных объемах (миллиард строк) данных реального мира .

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

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

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

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

Haitao Du
источник
1

Я согласен с @ ryan-zotti, что достаточно жесткий поиск не обязательно приводит к переоснащению - или, по крайней мере, не до такой степени, чтобы мы называли это перегрузкой. Позвольте мне попытаться высказать свою точку зрения на это:

Коробка однажды сказала:

Помните, что все модели не правы; практический вопрос в том, насколько неправильными они должны быть, чтобы не быть полезными.

(Чтобы быть идеальным, потребовались бы все данные, что, в свою очередь, исключило бы необходимость модели в первую очередь).

Неправильные модели также включают переоснащение1, Но мы не будем об этом заботиться или даже замечать. Вопрос в том, какое количество моделей, отклоняющихся от реальности, мы можем а) ​​измерить вообще и б) найти приемлемым, чтобы не называть это чрезмерным или недостаточным соответствием - потому что оба всегда будут применяться немного ко всей модели, которую мы когда-либо построим. Если наши модели , в конце концов удовлетворяют нашим требованиям , но , например , сверх- / underfit только минимальный, или сверх- / underfit на части (возможно) данные , которые не рассматриваются в нашем случае применения мы принимаем его - это не обязательно о предотвращении всех за кадром - / underfitting.

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

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


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

geekoverdose
источник