Надмірне навчання

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

Розгляньте рисунок 11. Уявіть, що кожна геометрична фігура представляє місцеположення дерева в лісі квадратної форми. Сині ромби позначають місцеположення здорових дерев, а помаранчеві кружечки – хворих.

Рисунок 11. Цей рисунок містить близько 60 точок, половина з яких – здорові дерева, а інша половина – хворі.
            Здорові дерева в основному ростуть у північно-східному квадранті, хоча в північно-західному теж є кілька таких. Хворі дерева в основному ростуть у південно-східному квадранті, але деякі є і в інших.
Рисунок 11. Навчальний набір даних: місцеположення здорових і хворих дерев у лісі квадратної форми.

 

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

Завдяки складним формам, показаним на рисунку 12, удалось успішно класифікувати всі дерева, крім двох. Якщо уявити, що форми – це модель, то вона просто чудова.

Чи дійсно це так? Справді чудова модель успішно класифікує нові приклади. На рисунку 13 показано, що відбувається, коли та сама модель робить прогнози на основі нових прикладів із тестового набору.

Рисунок 13. Нова група здорових і хворих дерев, накладена на модель із рисунка 12. Модель неправильно класифікує багато дерев.
Рисунок 13. Тестовий набір даних: складна модель для відрізнення хворих дерев від здорових.

 

Отже, складна модель із рисунка 12 показала хороші результати на навчальному наборі даних, але досить погані – на тестовому. Це класичний випадок надмірного пристосування моделі до навчального набору даних.

Пристосування, надмірне навчання й недостатнє навчання

Модель повинна робити якісні прогнози на основі нових даних. Тобто слід прагнути створити модель, яка "пристосовується" саме до них.

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

Рисунок 14. Графік у декартовій системі координат. Вісь X позначено як "якість прогнозів на основі навчального набору даних". Вісь Y позначено як "якість прогнозів на основі реальних даних". Крива починається з вихідної точки координат і поступово підіймається, але потім так само швидко спадає. Нижня ліва частина кривої (низька якість прогнозів як для реальних даних, так і для навчального набору) позначена як "недостатньо навчені моделі". Права нижня частина кривої (низька якість прогнозів для реальних даних, але висока – для навчального набору) – "надмірно навчені моделі". Вершина кривої (висока якість прогнозів для реальних даних і середня – для навчального набору) – "пристосовані моделі".
Рисунок 14. Недостатньо навчені, надмірно навчені й пристосовані моделі.

 

Узагальнення є протилежністю надмірного навчання. Тобто модель, яка добре узагальнює, робить гарні прогнози на основі нових даних. Ваша мета – створити модель, яка добре узагальнює нові дані.

Виявлення надмірного навчання

Виявити надмірне навчання допомагають такі криві:

  • криві втрат;
  • криві узагальнення.

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

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

 

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

Крива узагальнення добре пристосованої моделі – це дві криві втрат, які мають подібні форми.

Причини надмірного навчання

Загалом надмірне навчання спричиняє одна або обидві з проблем, наведених нижче.

  • Набір даних для навчання (або перевірки чи тестування) неналежно відображає реальні дані.
  • Модель надто складна.

Передумови узагальнення

Модель тренується на навчальному наборі даних, але її якість залежить від того, як добре вона робить прогнози для нових прикладів, зокрема реальних даних. Під час розробки моделі набір даних для тестування виконує роль проксі (замінника) реальних даних. Щоб навчити модель, яка добре узагальнює, набір даних має відповідати вимогам, описаним нижче.

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

Щоб краще розібратися у вимогах, описаних вище, виконайте вправи.

Вправи. Перевірте свої знання

Розгляньмо такі розділи набору даних.
Горизонтальна смужка, розділена на три частини: 70% від неї становить навчальний набір, 15% – набір для перевірки, ще 15% – тестовий.
Що потрібно зробити, щоб приклади в наборах для навчання, перевірки й тестування мали подібний статистичний розподіл?
Добре перемішати приклади в наборі даних, перш ніж розділити їх.
Так. Якщо добре перемішати приклади, збільшується ймовірність того, що розділи будуть статистично подібними.
Відсортувати приклади за часом отримання.
Якщо приклади в наборі даних не стаціонарні, через сортування розділи стануть менш схожими.
Нічого не робити. Якщо прикладів достатньо, завдяки закону середніх чисел розподіли будуть і так статистично подібними.
На жаль, це не так. Приклади з певних розділів набору даних можуть відрізнятися від прикладів з інших.
Потоковий сервіс розробляє модель, яка прогнозуватиме популярність потенційних нових серіалів на наступні три роки. Потоковий сервіс планує навчати модель на наборі даних, який містить сотні мільйонів прикладів за попередні десять років. Чи виникнуть проблеми із цією моделлю?
Мабуть. Смаки глядачів змінюються, і не завжди їх можна прогнозувати на основі минулої поведінки.
Так. Смаки глядачів не є сталими, вони постійно змінюються.
Однозначно ні. Набір даних достатньо великий, щоб модель робила хороші прогнози.
На жаль, смаки глядачів не є сталими.
Напевно, ні. Смаки глядачів змінюються циклічно, і це можна прогнозувати. Дані за десять років дадуть змогу моделі робити хороші прогнози щодо майбутніх тенденцій.
Хоча деякі аспекти індустрії розваг є певною мірою циклічними, модель, навчена на минулих даних, майже напевно матиме проблеми зі створенням прогнозів на наступні кілька років.
Модель прогнозуватиме, скільки часу потрібно, щоб пройти одну милю, на основі даних про погоду (температури, точки роси й опадів). Дані зібрано протягом одного року в місті, де погода значно змінюється залежно від сезону. Чи можна побудувати й протестувати модель на основі цього набору даних, навіть якщо показники погоди сильно змінюються залежно від сезону?
Так
Так, на основі цього набору даних можна побудувати й протестувати модель. Просто слід переконатися, що його розділено на однакові частини, щоб дані з усіх чотирьох сезонів розподілилися рівномірно.
Ні
Якщо цей набір даних містить достатньо прикладів температури, точки роси й опадів, на його основі можна побудувати й протестувати модель. Просто слід переконатися, що його розділено на однакові частини, щоб дані з усіх чотирьох сезонів розподілилися рівномірно.

Складна вправа

Ви створюєте модель, яка прогнозує для пасажирів ідеальну дату покупки квитка на конкретний поїзд. Наприклад, квиток на поїзд, який відправляється 23 липня, модель може рекомендувати користувачам купувати 8 липня. Залізнична компанія оновлює ціни щогодини на основі низки факторів, але переважно на поточній кількості доступних місць. Тобто:

  • якщо доступно багато місць, ціни на квитки зазвичай низькі;
  • якщо доступних місць дуже мало, ціни на квитки зазвичай високі.
Ваша модель демонструє низькі втрати на наборах даних для перевірки й тестування, але іноді робить надзвичайно погані прогнози на основі реальних даних. Чому?
Натисніть, щоб дізнатися відповідь