Чому між етапом навчання та етапом оцінювання існує асиметрія?


27

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

Крім того, я бачив деякі цифри, кинуті навколо того, яку кількість наборів даних слід використовувати для навчання та скільки для оцінювання, наприклад 2/3 та 1/3 відповідно. Чи є теоретична основа для вибору конкретного розподілу?

Відповіді:


15

Дуже смішно, що найактуальніша відповідь насправді не відповідає на питання :), тому я подумав, що було б непогано підкріпити це ще трохи теорією - здебільшого взятою з "Data Mining: Практичні інструменти та методи машинного навчання" та Тома Мітчелла «Машинне навчання» .


Вступ

Таким чином, у нас є класифікатор і обмежений набір даних, і певна кількість даних повинна надходити в навчальний набір, а решта використовується для тестування (при необхідності третій підмножина використовується для перевірки).

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

Очевидно, що навчальний набір повинен бути більшим, ніж тестовий набір - тобто розкол не повинен бути 1: 1 (головна мета - тренуватися , а не тестувати ) - але незрозуміло, де повинен бути розкол.

Процедура проведення.

Процедура розбиття «суперсети» на підмножини називається методом тримання . Зауважте, що ви можете легко пощастити, і приклади певного класу можуть бути відсутніми (або заздалегідь представленими) в одному з підмножин, які можна вирішити за допомогою

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

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

Перехресне підтвердження.

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

  • ми використовуємо 2/3 для тренінгу та 1/3 для тестування
  • і повторіть процедуру три рази, щоб, зрештою, кожен екземпляр був використаний рівно один раз для тестування.

Це називається потрійною перехресною валідацією , і якщо стратифікація також прийнята (що часто відповідає дійсності), вона називається стратифікованою потрійною перехресною валідацією .

Але ось ось ось стандартний спосіб - це не розділення 2/3: 1/3. Цитуючи "Обмін даними: практичні інструменти та методи машинного навчання" ,

Стандартним способом [...] є використання стратифікованої 10-кратної перехресної перевірки. Дані поділяються випадковим чином на 10 частин, в яких клас представлений приблизно в тих же пропорціях, що і в повному наборі даних. Кожна частина проводиться по черзі, а схема навчання навчається на дев'ятих десятих десятках; тоді її коефіцієнт помилок обчислюється на наборі утримування. Таким чином, процедура навчання виконується в цілому 10 разів на різних навчальних наборах (кожен з яких має багато спільного). Нарешті, 10 оцінок помилок усереднюються, щоб отримати загальну оцінку помилок.

Чому 10? Оскільки «..Extensive тести на численних набори даних, з різними методами навчання, показали , що 10 про правильне кількості складок , щоб отримати кращу оцінку помилки, і є також деякі теоретичні докази того, що підтримує це ..» гавань я Я не знайшов, які обширні тести та теоретичні докази вони мали на увазі, але це здається гарним початком для копання більше - якщо ви хочете.

Вони в основному просто кажуть

Хоча ці аргументи аж ніяк не є переконливими, і дебати в колах машинного навчання та обміну даними продовжують бурхливо обговорювати, яка найкраща схема для оцінки, десятикратна перехресна перевірка стала стандартним методом на практиці. [...] Більше того, немає нічого магічного в тому, що точне число 10: 5-кратна або 20-кратна перехресна перевірка, ймовірно, буде майже такою ж хорошою.

Бутстрап, і - нарешті! - відповідь на оригінальне запитання.

Але ми ще не дійшли до відповіді, чому часто рекомендується 2/3: 1/3. Я вважаю, що це успадковано від методу завантаження .

Він заснований на вибірці з заміною. Попередньо ми помістили зразок з "грандіозного набору" точно в одну з підмножин. Бутстрапінг відрізняється, і зразок може легко з’явитися як у навчальному, так і в тестовому наборі.

Давайте розглянемо один конкретний сценарій, коли ми беремо набір даних D1 з n екземплярів і відбираємо його n разів із заміною, щоб отримати інший набір даних D2 з n екземплярів.

Тепер пильно дивіться.

Оскільки деякі елементи в D2 (майже напевно) будуть повторюватися, у вихідному наборі даних повинні бути деякі екземпляри, які не були вибрані: ми використовуватимемо їх як тестові екземпляри.

Який шанс, що конкретний екземпляр не був підібраний для D2 ? Ймовірність того, що вас підхоплять за кожне захоплення, дорівнює 1 / n, тому навпаки (1 - 1 / n) .

Коли ми множимо ці ймовірності разом, це (1 - 1 / n) ^ n є e ^ -1, що становить приблизно 0,3. Це означає, що наш тестовий набір буде приблизно 1/3, а навчальний набір - приблизно 2/3.

Я думаю, що це причина, чому рекомендується використовувати розділення 1/3: 2/3: це співвідношення взято з методу оцінки завантаження.

Згортаючи його.

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

Процедура завантаження може бути найкращим способом оцінки помилок для дуже малих наборів даних. Однак, як і перехресне підтвердження виходу з одного виходу, воно має недоліки, які можна проілюструвати, розглядаючи особливу, мистецьку ситуацію [...] повністю випадкового набору даних з двома класами. Дійсний показник помилок становить 50% для будь-якого правила прогнозування. Але схема, яка запам'ятовувала навчальний набір, дала б ідеальний показник повторної заміни 100%, так що випадки вилучення = 0, а завантажувальний механізм 0,632 буде змішувати це з вагою 0,368 до дають загальний показник помилок лише 31,6% (0,632 ¥ 50% + 0,368 ¥ 0%), що вводить в оману оптимістично.


13

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

y = a0 + a1 * X + a2 * X ^ 2 + ... + an * X ^ m

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

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

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

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

Найкращий спосіб вибрати правильний компроміс - скласти помилки навчання та тестування для моделей різної складності, а потім вибрати ту, де помилка тесту мінімальна (див. Малюнок нижче). введіть тут опис зображення


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

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

1
@winwaed Питання "Чому існує ...?", "Чому це?" та "Чи є ...?", усі чітко позначені знаками запитання. Я знайомий із явищем, і мені здається, що це інтуїтивно зрозуміло, і я знайомий з емпіричними прикладами, але я не знаю, чому це так, і, здається, теорія інформації повинна мати відповідь для мене. Вищеописаний коментар був лише відображенням того, що, можливо, питання "чому" не є особливо актуальними, коли ви емпірично перевірили закономірності, які ви можете використовувати.
Тамзін Блейк

7

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


Хороший приклад - це дуже те саме, що і з науковими гіпотезами. Ми все ще говоримо про моделі, будь то статистичні моделі ML або моделі Всесвіту.
winwaed

1

Поки @andreiser дав блискучу відповідь на другу частину питання ОП щодо розбиття даних про навчання / тестування, а @niko пояснив, як уникнути перевиконання, але ніхто не довів до суті питання: чому використовувати різні дані для навчання та оцінювання допомагає нам уникнути перевитрати.


Наші дані розділені на:

  1. Навчальні екземпляри
  2. Випади перевірки
  3. Тестові (оцінювальні) випадки

М

М1,...,Мн

Важливо усвідомити, які існують ролі екземплярів перевірки та тесту.

  1. Навчальні екземпляри - використовуються для підгонки моделей.
  2. Елементи перевірки - використовуються для вибору моделі
  3. Тестові (оцінювальні) екземпляри - використовуються для вимірювання точності моделі на нових даних

Докладніші відомості див. На сторінці 222 Елементи статистичного навчання: видобуток даних, умовиводи та прогнозування для отримання більш детальної інформації.

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