Наряд: Ні срібної кулі?


21

Я розумію, що навіть якщо в відповідності з належною перехресної процедурою вибору перевірки і моделі, перенавчання буде , якщо один шукає в моделі досить важко , якщо накласти обмеження на складності моделі, період. Крім того, часто люди намагаються навчитися штрафувати щодо складності моделі з даних, що підриває захист, який вони можуть надати.

Моє питання: Скільки правдивого є твердження вище?

Я часто чую, як лікарі-медики говорять: " У моїй компанії / лабораторії ми завжди намагаємося з кожної наявної моделі (наприклад, з бібліотек, як caret або scikit-learn ), щоб побачити, яка з них працює найкраще ". Я часто заперечую, що такий підхід може легко перетворити навіть у тому випадку, якщо вони серйозно ставляться до перехресної перевірки та зберігають набори, які вони хочуть. Крім того, чим важче вони шукають, тим більше шансів на те, що вони можуть переоцінити. Іншими словами, надмірна оптимізація - це справжня проблема, і немає евристики, яка допоможе вам систематично боротися з нею. Чи помиляюся я так думаю?


Ви питаєте про ML конкретно або багатоваріантні моделі взагалі?
румчо

@rumtscho все в ML.
Амеліо Васкес-Рейна

1
Дякуємо @CagdasOzgenc: "чим більший простір пошуку (розглянуті моделі), тим гірший результат" . Не впевнений, про який рівень абстракції "пошуковий простір" ви тут посилаєтесь, але, "намагаючись досить наполегливо", я, звичайно, маю на увазі пошук усе більше і більше моделей, і тим самим збільшуючи складність / пошуковий простір "мета-моделі" (якщо ви хочете), що ми намагаємося вмістити.
Амеліо Васкес-Рейна

Відповіді:


8

Не ціла відповідь, але одне, що люди не помічають у цій дискусії, - це те, що означає перехресне підтвердження (наприклад), чому ви його використовуєте та що це стосується?

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

Тому вони повинні використовувати вкладене резюме. І вони також повинні використовувати "Target Shuffling" (перестановка / тестування перестановки), обгорнуту протягом усього їхнього процесу, щоб побачити, наскільки добре їхня процедура зробить, якщо ви порушите взаємозв'язок між залежними та незалежними змінними - тобто наскільки краще ви робите, ніж випадкові враховуючи весь ваш процес?


1
+1. Вибір моделі з одним (або занадто мало) шарами резюме, які виконують пошук по сітці (вибір моделі), безумовно, може призвести до надмірного розміщення (для всіх, хто цікавиться, рекомендую, наприклад, це та джерела в ньому). Я читав про "Цільове переміщення" (для інших читачів, рекомендую цю експозицію ), але ніколи не використовував її; Цікаво, чи можна зловживати цим (наприклад, робити кілька тестів, що призводять до помилкових позитивних результатів, і, таким чином, знову шукати "досить важко" (?)).
Амеліо Васкес-Рейна

7

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

Те, як ви сформулювали своє запитання, робить відповідь досить легкою: в крайньому випадку, так, переоформлення, ймовірно, якщо не певне. Срібної кулі немає, і я сумніваюся, хтось підказав би інше. Однак, існує все ще досить широкий спектр, коли ступінь надягання є мінімальним, щоб бути прийнятним. Наявність здорової кількості невидимих ​​даних у вашому наборі проведення перевірки достовірності допомагає. Маючи кілька наборів небачених перевірок перевірки ще краще. Мені пощастило працювати в полі, де щодня надходять великі кількості нових даних.

Якщо я перебуваю в стані, коли я застряг зі статичним набором даних менше ніж 2000-3000 спостережень (наприклад, медичні дані, до яких важко дійти), я, як правило, використовую лише лінійні моделі, тому що я часто бачив переповнення градієнтом прискорення та підтримка векторних машин на досить малих наборах даних. З іншого боку, я розмовляв із топ-Kaggler (топ 5%), який сказав, що він створює десятки тисяч моделей для кожного змагання, а потім їх ансамблює, використовуючи кілька тисяч моделей у своєму остаточному ансамблі. Він сказав, що це головна причина його успіху на остаточних лідерах.


1
Так. Я працював з даними, за якими спостерігалися мільйони спостережень. Незалежно від того, яку валідацію я намагався (kfold, завантажувальний і навіть простий утримування), в моделях було мало варіацій. Зі збільшенням ваших даних тим менше уваги потрібно ставити, як перевіряти.
Рікардо Крус

Іншими словами, жодна модель не має достатньої міри свободи, щоб "запам'ятати" мільйони спостережень.
Рікардо Крус

5

Стільки залежить від масштабу. Я б хотів, щоб я міг розраховувати на те, що я маю понад 2000-3000 випадків, як, наприклад, @RyanZotti; У мене рідко є 1/10, що у багатьох. Це велика різниця в перспективі між "великими даними" машинного навчання людей та тими, хто працює в таких галузях, як біомедицина, які можуть пояснити деякі різні точки зору, які ви знайдете на цьому сайті.

Я представлю евристичне пояснення мого сприйняття цієї проблеми. Основна проблема при надмірному розмірі, як описано на сторінці Вікіпедії , - це співвідношення між кількістю справ та кількістю параметрів, які ви оцінюєте. Тож почніть з грубої ідеї, що якщо у вас є моделі M , ви вибираєте серед і p параметрів для моделі, то ви оцінюєте щось у порядку параметри Mp .

Якщо є небезпека перевиконання, є два загальних способи повернутися до більш узагальнюючої моделі: зменшити кількість параметрів або певним чином покарати їх.

З адекватно великими наборами даних ви ніколи не можете наблизитись до надмірного розміщення. Якщо у вас є 20000 випадків і 20 різних моделей зі 100 параметрами на модель, то, можливо, ви не матимете проблем навіть без пеналізації, оскільки у вас ще 10 випадків на ефективний параметр. Не спробуйте цю стратегію моделювання лише у 200 випадках.

Усереднення моделей може розглядатися як форма штрафу. На прикладі Kaggler, який наводить @RyanZotti, кількість випадків, ймовірно, величезна, і кожна з "декількох тисяч" моделей у фінальному ансамблі окремо вносить лише невелику частку остаточної моделі. Будь-який наклад, специфічний для конкретної моделі, що сприяє, не матиме великого впливу на кінцевий результат, і надзвичайно велика кількість випадків у змаганнях Kaggler ще більше знижує небезпеку перевитрати.

Отже, як і у багатьох питаннях тут, єдиною розумною відповіддю є: "Це залежить". У цьому випадку це залежить від співвідношення кількості випадків та ефективної кількості досліджуваних параметрів, а також кількості санкцій, що застосовуються.


2

Я думаю, що це дуже гарне питання. Мені завжди хочеться спостерігати криву форми "U" в експериментах перехресної перевірки з реальними даними. Однак мій досвід даних із реального світу (~ 5 років у транзакціях з кредитними картками та даними про освіту) не говорить про те, що придатність може легко статися у величезній кількості (мільярди рядів) реальних даних .

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

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

Нарешті, я думаю, що мої твердження можуть бути правдивими лише за умови, що у вас є мільярди балів даних на тренуванні. Інтуїтивно зрозумілі, дані набагато складніші, ніж ви моделюєте, тому ви не будете надмірно придатними. Для мільярдів рядків даних, навіть якщо ви використовуєте модель з тисячами параметрів, це добре. У той же час ви не можете дозволити собі обчислення для побудови моделі з мільйонами вільних параметрів.

На мою думку, саме тому нейронна мережа та глибоке навчання стали популярними в наші дні. Якщо порівнювати мільярди зображень в Інтернеті, будь-яка модель, якій ви можете дозволити собі навчання, недостатня для надмірної форми.


1

Я погоджуюся з @ ryan-zotti, що достатньо важкий пошук не обов'язково призводить до перевиконання - або, принаймні, не до такої кількості, щоб ми могли назвати це надмірним. Дозвольте спробувати висловити свою точку зору з цього приводу:

Бокс якось сказав:

Пам’ятайте, що всі моделі неправильні; практичне питання полягає в тому, наскільки вони мають бути помилковими, щоб не бути корисними.

(Для досконалості знадобляться всі дані, що, в свою чергу, в першу чергу усуне потребу в моделі).

1

Тому що: врешті-решт у нас завжди буде помилка / надмірна / недооцінка моделі - це здатність виявляти / вимірювати цю помилку в межах нашого інтересу, щоб зробити розумний вибір, який має значення.


1

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.