Уяви двох студентів перед іспитом. Перший прочитав підручник по діагоналі й запамʼятав, що «десь там була формула». Другий вивчив напамʼять усі задачі з торішнього збірника разом із номерами сторінок і опечатками. На іспиті обидва провалились: перший не знає нічого, другий знає не те. І порада «вчи більше» допоможе рівно одному з них, а другому зашкодить.
Моделі хворіють точно так само. У цій темі ми навчимося розрізняти дві хвороби за симптомами — бо саме на цьому етапі найлегше зробити рух у неправильний бік і витратити тиждень на те, щоб зробити модель гіршою.
01 / ПостановкаШістнадцять оголошень
Повертаємось на нашу дошку оголошень про вживані телефони. Задача цього разу не про шахрайство, а найпростіша з можливих: підказати продавцю ціну. Людина відкриває форму, вибирає рік випуску свого телефона — і дошка показує, скільки за такий зазвичай просять.
Складність у тому, що марка рідкісна. За весь час на дошці зʼявилось лише 16 оголошень із підтвердженою ціною продажу — по кілька на рік із 2010-го по 2025-й. Ознака одна, рік випуску; відповідь одна, ціна в гривнях. Дата виходу моделі відома з точністю до місяця, тому рік у нас дробовий: 2012.5 — це телефон, що вийшов улітку 2012-го.
| рік випуску | ціна, грн | рік випуску | ціна, грн |
|---|---|---|---|
| 2010.40 | 2 186 | 2017.98 | 6 958 |
| 2011.63 | 3 743 | 2019.06 | 7 360 |
| 2012.52 | 2 297 | 2019.94 | 8 741 |
| 2013.34 | 4 108 | 2020.93 | 8 658 |
| 2014.54 | 3 664 | 2021.58 | 10 233 |
| 2015.46 | 4 438 | 2022.63 | 14 236 |
| 2015.79 | 4 988 | 2023.27 | 15 124 |
| 2017.27 | 4 559 | 2024.43 | 17 201 |
Далі — рівно те, що вже вміє лінійна регресія. Якщо додати до моделі не лише сам рік, а і його степені, вона починає описувати криві:
Модель лишається лінійною за коефіцієнтами β, тож
навчання не змінюється ні на крок:
підбираємо ті самі числа тим самим способом. Змінюється єдине — d,
степінь многочлена. Це і є наша ручка складності: при d = 1
модель має право провести лише пряму, при d = 15 — вигинатись як завгодно.
Крутячи цю одну ручку, ми пройдемо повз обидві катастрофи.
02 / СимптомиДві протилежні невдачі
Подивись на три моделі одразу. Дані ті самі, спосіб навчання той самий, відрізняється тільки степінь.
Схема 1 · Одні дані, три степені, три різні провали
Рожеві точки — 16 навчальних оголошень. Сіра пунктирна крива — справжня залежність ціни від року, яку ми й шукаємо. Суцільна крива — те, що знайшла модель.
Ліва картинка — недонавчання (underfitting). Модель занадто проста для явища. Ціна телефона падає з віком не по прямій: свіжий флагман втрачає тисячі гривень за рік, а десятирічному апарату вже майже нема куди дешевшати. До того ж на сірій кривій видно невеликий горб коло 2019-го — тодішня серія вийшла вдалою й тримає ціну краще за сусідні роки. Пряма не вміє бути одночасно крутою праворуч, пологою ліворуч і горбатою посередині, тож вона робить середнє з усього й систематично бреше на обох кінцях. Скільки оголошень їй не давай — пряма лишиться прямою.
Права картинка — перенавчання (overfitting). Модель занадто гнучка для тієї кількості даних, що в неї є. Многочлен 15-го степеня має 16 коефіцієнтів, тобто рівно стільки ж вільних чисел, скільки в нас оголошень, — і цієї свободи вистачає, щоб пройти точно через усі 16 точок. Між точками ж крива нічим не обмежена й вигинається як завгодно.
Головне, що варто помітити просто зараз: обидві моделі дають погані прогнози, але з протилежних причин. Одну треба відпустити, другу — приборкати. Порада «візьми складнішу модель» рятує ліву й добиває праву.
03 / ПасткаПастка ідеальної відповіді
Перенавчання підступне не тим, що модель погана. Воно підступне тим, що на навчальних даних модель ідеальна. Нуль гривень помилки. Якби ти дивився лише на це число, ти б доповів команді, що задачу розвʼязано на сто відсотків.
Щоб зрозуміти, що саме пішло не так, треба згадати, звідки взялись ці 16 цін. Ціна оголошення — це не чиста закономірність. Це закономірність плюс усе інше: подряпина на корпусі, продавець поспішає перед відʼїздом, інший продавець вирішив поторгуватись і поставив із запасом. Усе це «інше» ми називаємо шумом — воно існує, воно реальне, але воно ніяк не повʼязане з роком випуску й тому непередбачуване.
Схема 2 · Що саме вивчила складна модель
Бурштинові відрізки — відхилення кожного оголошення від справжньої залежності. Це і є шум: ціна конкретного продавця, а не ціна конкретного року.
Ось конкретний приклад. Чотирнадцяте оголошення — телефон кінця 2022 року за 14 236 грн, тоді як справжня крива в цій точці дає 12 813 грн. Ці 1 423 грн зверху — не властивість 2022 року, а властивість одного продавця, який поставив ціну із запасом, щоб було куди торгуватись. Проста модель цього оголошення не помітила й пройшла повз нього. Складна дотяглась і запамʼятала: «телефони кінця 2022-го коштують 14 236 грн». Наступного тижня інший продавець виставить телефон того самого року за 12 900 грн, і модель буде впевнено помилятись.
Це та сама межа, з якої почався курс. У темі Що таке машинне навчання ми домовились, що навчання — це узагальнення, а не запамʼятовування прикладів. Перенавчена модель переступає цю межу: вона запамʼятала таблицю замість того, щоб вивести з неї правило. До речі, найчистіший приклад такої моделі ти вже бачив — це kNN при k = 1, у якого точність на навчальних даних завжди дорівнює одиниці просто тому, що найближчий сусід кожного навчального обʼєкта — він сам.
04 / ДіагнозДві помилки замість однієї
Звідси випливає єдиний надійний спосіб помітити перенавчання: дивитись не на одне число, а на два поруч. Помилка на навчальних оголошеннях і помилка на відкладених. Ось вони для чотирьох степенів:
Схема 3 · Дві помилки для чотирьох степенів
RMSE у гривнях: наскільки в середньому модель промахується повз ціну. Ліва колонка — на 16 навчальних оголошеннях, права — на 300 відкладених.
| степінь | помилка, навчання | помилка, тест | що це |
|---|---|---|---|
| 1 | 1 654 грн | 1 573 грн | обидві високі — недонавчання |
| 3 | 695 грн | 874 грн | обидві низькі — те, що треба |
| 9 | 458 грн | 1 529 грн | навчальна падає, тестова росте |
| 15 | 0 грн | 740 696 грн | ідеально на вчорашньому, катастрофа на завтрашньому |
Придивись до першого рядка окремо: при степені 1 тестова помилка навіть трохи менша за навчальну. Ніякого розриву немає — і це діагностична ознака. Модель не запамʼятовує нічого зайвого просто тому, що їй нема чим запамʼятовувати; вона однаково безпорадна скрізь.
А тепер сформулюємо те, що ми шукаємо, одним реченням. Момент, коли навчальна помилка ще падає, а тестова вже почала рости, — це і є перехід у перенавчання. До цієї точки додаткова гнучкість витрачається на опис закономірності. Після неї — на опис шуму.
05 / КриваПовзунок складності
Знайди цей момент сам. Проведи повзунок від 1 до 15 і дивись на дві речі одночасно: на криву ліворуч і на дві помилки праворуч.
Інтерактив 1 · Степінь многочлена від 1 до 15
Ліворуч — модель на тих самих 16 оголошеннях. Праворуч — обидві помилки для кожного степеня; вертикальна риска показує, де ти зараз.
Ти щойно побачив головну картинку машинного навчання. Її варто розібрати по кістках, бо обидві криві мають форму не випадково.
- Навчальна помилка падає завжди. Це не емпіричне спостереження, а майже теорема. Многочлен 4-го степеня вміє все, що вміє многочлен 3-го (достатньо взяти нульовий старший коефіцієнт), і ще трохи. Тож найкраще, що він може зробити на навчальних даних, ніяк не гірше. Звідси головний висновок: навчальна помилка не несе інформації про якість моделі. Вона міряє памʼять, а не розуміння.
- Тестова помилка спершу падає. Поки моделі бракує гнучкості, кожен доданий степінь витрачається на щось справжнє: на вигин, який реально є в даних. Прогнози на нових оголошеннях покращуються.
- Потім вона розвертається вгору. Коли форму вже описано, наступний степінь описувати нічого. Але оптимізатор не вміє сказати «мені досить»: він зобовʼязаний зменшувати помилку на навчанні, а єдине, що там лишилось зменшувати, — це шум. Модель починає підганятись під випадкові відхилення 16 конкретних продавців. На нових оголошеннях відхилення інші, і вивчене стає активною завадою.
Разом ці дві криві дають характерну картину: навчальна монотонно вниз, тестова — літерою U. Дно цієї літери й є правильна складність. У нашому випадку дно — на степені 3 із помилкою 874 грн.
06 / ДаніДруга вісь: скільки даних
Досі ми крутили одну ручку — складність. Але в перенавчання є друга причина, і вона навіть важливіша: складність моделі завжди відносна до обсягу даних. Многочлен 9-го степеня — це не «складна модель». Це складна модель на 16 оголошеннях і цілком помірна модель на пʼятистах.
Зафіксуй степінь на девʼяти й покрути другу ручку.
Інтерактив 2 · Та сама модель на 10 і на 500 оголошеннях
Степінь фіксовано на 9. Змінюється лише кількість навчальних оголошень. Праворуч — обидві помилки залежно від обсягу вибірки.
Механізм простий і варто його промовити. Щоб крива пройшла точно через 10 точок, досить 10 коефіцієнтів. Щоб вона пройшла точно через 500 точок, коефіцієнтів треба 500 — а їх у неї лише 10. Дані перестають поміщатись у модель, і їй уже нічого не лишається, крім як описувати те спільне, що є в усіх оголошеннях, тобто закономірність. Шум окремих продавців у великій вибірці взаємно гаситься: хтось поставив дорожче, хтось дешевше, у сумі — нуль.
Тому дані — найдешевший засіб від перенавчання, коли вони є. Він не вимагає ані вибору моделі, ані підбору гіперпараметрів, ані розуміння задачі: просто зачекай, поки на дошці накопичиться більше оголошень. І це ж пояснює, чому засіб доступний не завжди:
- дані бувають дорогі: розмітити 500 медичних знімків має лікар, і кожна година його часу коштує;
- дані бувають рідкісні: наша марка телефонів дає 16 оголошень за 15 років, і 500-те доведеться чекати ще пару століть;
- дані бувають застарілі: оголошення пʼятирічної давності описують ринок, якого вже немає, і додавати їх — не завжди покращувати.
Коли даних добути не можна, лишається інший бік тієї самої монети — обмежити модель. Або просто взяти нижчий степінь, як ми робили в розділі 5, або лишити високий степінь, але заборонити коефіцієнтам розбігатись. Другий спосіб називається регуляризацією, і йому присвячена окрема тема курсу.
07 / ШумСкільки складності можна дозволити
Є ще одна величина, від якої залежить, де саме починається перенавчання, — і вона не про модель узагалі. Це рівень шуму в самих даних.
Уяви два ринки. На першому ціни майже строго визначені роком випуску: розкид навколо закономірності — сотня гривень. На другому продавці ставлять ціну як заманеться, і той самий телефон коштує від 6 до 12 тисяч. Питання: на якому ринку можна дозволити собі складнішу модель?
Інтерактив 3 · Що робить із моделлю шум у даних
Ті самі 16 оголошень і той самий рік випуску. Змінюється тільки розкид цін навколо закономірності. Праворуч — тестова помилка для всіх степенів одразу.
Логіка за цим така. Складність моделі — це її здатність повторити тонкі деталі. Коли шуму мало, тонкі деталі, які вона бачить, справжні: їх варто повторювати, тому високий степінь окупається. Коли шуму багато, ті самі тонкі деталі — це переважно випадковість, і повторювати їх означає вчити нісенітницю. Модель мусить бути грубішою, щоб не встигнути розгледіти вигадане.
Звідси практичне правило, яке рятує чимало часу: питання «яка модель складна?» не має відповіді без даних. Складна — відносно обсягу вибірки й відносно рівня шуму. Ті самі 16 оголошень при різному розкиді цін вимагають різних моделей.
08 / НедонавчанняПротилежна хвороба
Ми довго говорили про надлишок гнучкості. Тепер про її нестачу — бо симптоми там геть інші, і сплутати їх дорого.
При степені 1 наша модель має помилку 1 654 грн на навчанні й 1 573 грн на тесті. Дивись на цю пару уважно: обидва числа високі, і розриву між ними немає. Модель не вивчила зайвого — вона взагалі майже нічого не вивчила. Пряма фізично не може бути крутою праворуч і пологою ліворуч, тож вона стабільно, передбачувано й однаково помиляється скрізь.
І тут ключова відмінність у лікуванні. Перенавченій моделі ми віднімаємо свободу: знижуємо степінь, додаємо дані, вводимо штраф за великі коефіцієнти. Недонавченій моделі все це протипоказано — вона й так задихається. Їй треба дати більше:
- більше гнучкості — вищий степінь, глибше дерево, більше нейронів;
- кращі ознаки — і це зазвичай дає найбільший приріст. Наша модель знає про телефон лише рік випуску. Додай обсяг памʼяті, стан за пʼятибальною шкалою, чи є рідний зарядний пристрій — і навіть проста пряма по цих ознаках поб'є будь-який многочлен по одному року;
- слабший штраф — якщо регуляризацію вже ввели й перестарались;
- довше навчання — для ітеративних методів на кшталт градієнтного спуску висока помилка на навчанні іноді означає просто, що спуск ще не дійшов до дна.
Зверни увагу на найважчий випадок: додавання даних недонавченій моделі не допомагає взагалі. Пряма, навчена на мільйоні оголошень, — це та сама пряма, тільки проведена трохи впевненіше. Тому перед тим, як замовляти дані, діагноз треба ставити чесно: за розривом, а не за відчуттям.
09 / ДіагностикаЩо бачу — що роблю
Зберемо все в одну таблицю. Це підсумок теми, придатний для роздруку: якщо в тебе є дві помилки, у тебе вже є діагноз.
Схема 4 · Діагностична таблиця
Дві помилки поруч дають чотири можливі картини. Три з них — справжні діагнози, четверта — привід перевірити самі вибірки.
| помилка на навчанні | помилка на тесті | діагноз | що робити |
|---|---|---|---|
| висока | висока, розриву майже немає | недонавчання | ускладнити модель, додати ознак, послабити штраф, навчати довше |
| низька | низька, розрив невеликий | усе гаразд | не чіпати; далі покращувати вже за рахунок ознак |
| дуже низька | помітно вища, великий розрив | перенавчання | спростити модель, додати даних, увести регуляризацію |
| висока | помітно нижча | підозріло | шукати помилку: витік даних, різні вибірки, зсув у розподілі |
Порядок дій, який варто виконувати механічно, не роздумуючи:
- Заміряй обидві помилки. Одна цифра діагнозу не дає ніколи.
- Порівняй їх між собою — це дасть напрямок руху.
- Порівняй навчальну з тим рівнем, який тебе влаштовує. Якщо вже вона погана, ускладнюй; про перенавчання говорити ще рано.
- Зроби один крок у знайденому напрямку й переміряй. Не два кроки одразу — інакше не дізнаєшся, який із них подіяв.
10 / ЧесністьТест, у який підглянули
І тепер незручне зізнання про все, що ми робили в цій лекції.
Ми перебрали всі степені від 1 до 15, подивились на тестову помилку кожного й оголосили переможцем степінь 3. Але тестова вибірка існує для того, щоб оцінити готову модель, а не щоб обрати її. Щойно ми обрали степінь за тестом, число 874 грн перестало бути чесною оцінкою: ми взяли мінімум із пʼятнадцяти спроб, а мінімум із багатьох спроб систематично оптимістичний. Частина цих 874 грн — це те, що степінь 3 випадково вгадав саме цю тестову вибірку.
Чому ж ми все одно показали тестову криву? Бо ми тут вивчаємо поведінку явища, а не будуємо продукт. Щоб побачити U-подібну форму, потрібна саме та крива, якої на практиці не існує. Це нормальний навчальний прийом — за умови, що ти памʼятаєш: у реальній задачі ця крива будується на валідації, а тестовий конверт лежить запечатаний.
11 / ПідсумокЩо варто винести
Одна ручка — степінь многочлена — провела нас повз дві протилежні катастрофи. Ліворуч модель занадто проста, щоб побачити закономірність. Праворуч — занадто гнучка, щоб її не переплутати з шумом. Посередині вузька смуга, де прогнози справді працюють.
| ідея | суть | чому важливо |
|---|---|---|
| дві невдачі | надто просто або надто гнучко | лікуються протилежним |
| перенавчання | вивчено шум разом із закономірністю | на навчанні модель ідеальна |
| діагноз | дві помилки поруч, не одна | розрив між ними і є симптом |
| крива | навчальна вниз, тестова літерою U | дно U — правильна складність |
| дані | складність відносна до обсягу | найдешевший засіб, коли доступний |
| шум | більше шуму — простіша модель | «складна модель» без даних не визначена |
| недонавчання | погано і там, і там, розриву немає | дані не допоможуть, потрібні ознаки |
| чесність | вибір по тесту псує тест | складність підбирають на валідації |
Ми весь час говорили «модель повторює шум» і «моделі бракує гнучкості» — і жодного разу не пояснили, звідки береться літера U. Чому тестова помилка не падає монотонно, як навчальна? Що саме росте праворуч і що падає ліворуч? Відповідь у тому, що помилка складається з частин, які поводяться протилежно: систематичний промах однаково влаштованої моделі і розкид тієї самої моделі від вибірки до вибірки. Наступна тема, Влучність і купчастість, розкладає помилку на ці частини точною формулою — і тоді U-подібна крива перестає бути спостереженням і стає наслідком.
А потім буде третій шлях. Досі, щоб приборкати модель, ми або відбирали в неї степені, або добували дані. Але степінь 15 можна лишити й просто заборонити коефіцієнтам розбігатись — додати штраф за їхню величину прямо у функцію втрат. Модель формально лишається такою самою гнучкою, а фактично поводиться як значно простіша. Це регуляризація, і їй присвячена окрема тема далі в курсі.
practice.ipynb ти згенеруєш ті
самі ціни з відомої залежності, підженеш многочлени всіх степенів, побудуєш таблицю
«степінь → помилка на навчанні → помилка на тесті», знайдеш точку перелому, повториш
усе на вдесятеро більшій вибірці й побачиш, як перелом зсунувся, а наприкінці зіткнешся
з недонавчанням у чистому вигляді.Далі в темі
Теорію прочитано. Тепер закріпи її на практиці.