Дві моделі помиляються однаково — у середньому на 0.4. Перша щоразу промахується рівно на 0.4 в один і той самий бік. Друга іноді дає точну відповідь, а іноді помиляється на 1.2 то вгору, то вниз. Це принципово різні хвороби, і лікують їх протилежними способами.
Перша модель зміщена: вона систематично не бачить чогось у даних. Її треба ускладнити. Друга має високу дисперсію: вона надто чутлива до того, які саме приклади їй дісталися. Її треба спростити. Якщо переплутати діагноз, кожна дія робитиме гірше.
Ця лекція про те, як розкласти помилку на складові, як побачити кожну з них на власні очі й чому зменшити обидві одночасно зазвичай не вдається.
01 / АнатоміяТри джерела помилки
Візьмімо задачу регресії. Ми припускаємо, що дані породжені якоюсь істинною
залежністю f(x), до якої додається випадковий шум:
Ми бачимо не f, а лише скінченну вибірку зашумлених точок. За нею
навчаємо модель f̂. Питання: наскільки f̂(x) відрізнятиметься
від справжнього y у новій точці? Відповідь розпадається на три доданки:
- Незвідний шум
σ²— усе, чого в принципі не можна передбачити за наявними ознаками. Похибка вимірювання, невраховані фактори, справжня випадковість. Жодна модель, навіть ідеальна, не опуститься нижче цієї межі. Це підлога, а не недолік алгоритму. - Зміщення (bias) — систематична похибка. Наскільки усереднена по всіх можливих навчальних вибірках модель промахується повз істину. Виникає, коли клас моделей просто не здатен описати справжню залежність: прямою не намалюєш синусоїду, скільки даних не давай.
- Дисперсія (variance) — нестабільність. Наскільки модель смикається від однієї навчальної вибірки до іншої. Виникає, коли модель настільки гнучка, що вивчає не залежність, а конкретні шумові відхилення саме цієї вибірки.
02 / ІнтуїціяМішень: влучність і купчастість
Найкоротший спосіб відчути різницю — уявити стрільбу по мішені. Кожен постріл — це модель, навчена на своїй випадковій вибірці. Центр мішені — істина.
- Влучність — де опинився центр купи пострілів. Змістився вбік від яблучка — це зміщення.
- Купчастість — наскільки постріли тісно тримаються один одного. Розкидані по всій мішені — це дисперсія.
Чотири комбінації дають чотири типові діагнози. Покрути обидва повзунки й подивись на всі чотири кути:
Інтерактив 1 · Мішень
Кожна точка — модель, навчена на своїй вибірці. Центр — істина.
03 / ТочністьПо чому береться сподівання
Тепер формально — і тут ховається деталь, яку плутають найчастіше.
Позначимо через D навчальну вибірку, а через f̂D —
модель, яку ми отримали, навчившись на ній. Ключова ідея: D —
випадкова величина. Ми витягли її з якогось джерела даних, могли б
витягти іншу. Отже, f̂D — теж випадкова величина, тільки
значеннями її є цілі функції.
Зміщення й дисперсія визначаються так:
D під знаком
сподівання — це не формальність. Сподівання береться по навчальних вибірках,
а не по точках даних. «Середня модель» 𝔼D[f̂D] — це
не середнє значення прогнозів по тестових точках і не середня лінія по осі x.
Це результат уявного експерименту: витягти тисячу різних навчальних вибірок, навчити
тисячу моделей і в кожній точці x усереднити тисячу прогнозів.Чому це важливо практично? Бо саме звідси випливає головне: дисперсію неможливо побачити на одному навчанні. Скільки не дивись на одну навчену модель, вона нічого не скаже про свою нестабільність. Дисперсія проявляється лише у порівнянні кількох запусків на різних даних. Саме тому працюють бутстреп, беггінг і крос-валідація — усі вони штучно створюють «різні вибірки», щоб побачити розкид.
04 / ВиведенняДекомпозиція крок за кроком
Покажемо, звідки береться формула з трьох доданків. Зафіксуємо точку x
і порахуємо очікуваний квадрат помилки — сподівання одразу і по вибірках D,
і по шуму ε.
Справжня відповідь у точці x дорівнює y = f(x) + ε.
Прогноз — f̂D(x). Помилка:
Шум ε незалежний від навчальної вибірки й має нульове середнє,
тому подвійний добуток при розкритті квадрата зникає, і шум відходить в окремий доданок:
Позначимо f̄(x) = 𝔼D[f̂D(x)] — ту саму «середню
модель». Вставимо її всередину дужок, нічого не змінивши:
Квадрат суми дає три доданки. Перший — сталий (не залежить від D),
тому сподівання його не змінює. Третій, подвійний добуток, обертається на нуль:
у ньому множник 𝔼D[f̄(x) − f̂D(x)] = 0 за самим
означенням середнього. Лишається:
Три доданки — це рівно шум, квадрат зміщення й дисперсія:
Кілька висновків, які варто витягти з цього виведення.
Розклад точний, а не наближений. Це тотожність, а не оцінка згори. Доданків рівно три, вони не перекриваються, і всі невідʼємні.
Він працює для квадратичної помилки. Для інших функцій втрат — скажімо, для частки помилкових класифікацій — аналогічний розклад існує, але виглядає складніше, і доданки там уже можуть взаємодіяти. Інтуїція «влучність проти купчастості» переноситься, точна формула — ні.
Зменшувати треба суму, а не доданки окремо. Модель зі зміщенням 0 і дисперсією 10 гірша за модель зі зміщенням 1 і дисперсією 1. Саме тому свідомо внесене зміщення часто окупається.
05 / ВіялоПобачити дисперсію на власні очі
Побудуємо той самий уявний експеримент по-справжньому. Візьмемо істинну функцію, згенеруємо 40 різних навчальних вибірок по 40 точок кожна й навчимо на кожній свою поліноміальну модель. Отримаємо 40 різних кривих — «віяло».
Рухай повзунок складності й дивись на дві речі окремо:
- Товста рожева крива — середня модель
f̄. Наскільки вона розходиться з сірим пунктиром (істиною) — це зміщення. - Ширина віяла — розліт окремих моделей навколо середньої. Це дисперсія.
Інтерактив 2 · Віяло з 40 паралельних світів
Кожна тонка лінія — модель, навчена на своїй вибірці з 40 точок. Товста — їхнє середнє.
06 / БалансРозклад по складності
Ті самі числа, але зібрані разом для всіх рівнів складності. Кожен стовпчик — повна очікувана помилка, поділена на три частини. Сірий фундамент однаковий скрізь — це шум, підлога, нижче якої не опуститься ніхто.
Інтерактив 3 · Три доданки на кожному рівні складності
Стовпчики складаються з шуму, зміщення² й дисперсії. Разом вони дають очікувану помилку.
07 / КриваНедо- і перенавчання
Тепер подивимось на те саме з боку практика, який жодних «сорока паралельних світів» не має, а має одну вибірку. Що він бачить?
Він бачить дві криві: помилку на навчальних даних і помилку на відкладених. І поводяться вони принципово по-різному.
| стан | train | test | переважає | лікування |
|---|---|---|---|---|
| недонавчання | висока | висока | зміщення | ускладнити модель, додати ознак |
| баланс | низька | низька | шум | нічого не чіпати |
| перенавчання | дуже низька | висока | дисперсія | спростити, регуляризувати, додати даних |
Найважливіша асиметрія: навчальна помилка падає завжди. Складніша модель завжди краще запамʼятовує те, що вже бачила, — тому вона не несе жодної інформації про якість. Уся інформація в тестовій кривій, і саме вона має форму літери U.
Інтерактив 4 · U-подібна крива тестової помилки
Рожева — помилка на навчальних даних. Бірюзова — очікувана помилка на нових.
08 / ДаніЩо дає більше даних
Є один спосіб зменшити помилку, який не вимагає жодного компромісу. Він працює рівно на одну з двох складових — і саме тому такий цінний.
Дисперсія падає приблизно як 1/n. Інтуїція проста: більше точок —
менше можливостей для окремих шумових відхилень зрушити криву, бо кожне з них тепер
має менший вплив. Зміщення від кількості даних не залежить взагалі.
Якщо модель — пряма, то мільйон точок дасть точнішу пряму, але вона так і лишиться
прямою, і синусоїду не опише ніколи.
Інтерактив 5 · Як звужується віяло від розміру вибірки
Складність фіксована. Змінюється лише кількість навчальних точок.
n. Пунктирна
сіра пряма — еталонний нахил 1/n. Наша крива йде трохи крутіше: на малих
вибірках до чесної дисперсії домішується чисельна нестійкість поліноміальної підгонки,
яка зникає, щойно точок стає помітно більше за кількість параметрів.09 / ОбмінРегуляризація як свідомий обмін
Тепер найцікавіше. Якщо зменшити обидві складові одночасно не вдається, чи можна свідомо погіршити одну заради іншої — і виграти в сумі?
Можна. Саме це робить регуляризація. Додаючи до функції втрат штраф за величину ваг, ми забороняємо моделі використовувати всю свою гнучкість:
Модель більше не може підганятися під кожну точку — отже, від вибірки до вибірки вона смикається менше. Дисперсія падає. Але водночас вона не може й точно відтворити істину, бо частину гнучкості в неї відібрали. Зміщення росте. Питання лише в тому, чи виграш перевищує програш.
Модель нижче навмисно завелика — поліном 11-го степеня на 40 точках. Проведи
λ від краю до краю:
Інтерактив 6 · λ обмінює дисперсію на зміщення
Степінь фіксовано на 11 — свідомо забагато. Змінюється лише сила штрафу.
10 / РучкиРегулятори складності
У кожної моделі є свої важелі, які рухають її вздовж тієї самої шкали. Корисно тримати цю таблицю в голові: коли діагноз поставлено, залишається знайти правильну ручку.
| модель | більше дисперсії | більше зміщення |
|---|---|---|
| поліном | вищий степінь | нижчий степінь |
| Ridge / Lasso | менше λ | більше λ |
| k-NN | менше k (аж до k = 1) | більше k |
| дерево | більша глибина, менший лист | обрізання, min_samples_leaf |
| випадковий ліс | глибші дерева | більше дерев*, менше ознак на розбиття |
| бустинг | більше ітерацій, глибші дерева | менший learning_rate, рання зупинка |
| SVM з RBF | більші C і γ | менші C і γ |
| нейромережа | більше шарів і нейронів | weight decay, dropout, рання зупинка |
* Зірочка біля випадкового лісу не випадкова. Збільшення кількості дерев — рідкісний випадок, коли дисперсія падає майже без зростання зміщення. Причина в тому, що усереднення багатьох майже незалежних моделей знижує розкид, не зачіпаючи середню модель. На цьому й тримається весь беггінг: беремо навмисно перенавчені глибокі дерева (мале зміщення, величезна дисперсія) і гасимо дисперсію усередненням. Бустинг рухається з протилежного боку: бере навмисно слабкі, зміщені пеньки й послідовно зменшує зміщення.
11 / ВинятокПодвійний спуск
Класична картинка з розділу 07 говорить: після певної складності тестова помилка починає рости й уже не спиняється. Сучасні нейромережі цю картинку демонстративно порушують.
Якщо продовжити нарощувати складність далеко за точку, де модель уже ідеально запамʼятала навчальні дані (так званий поріг інтерполяції, коли кількість параметрів приблизно дорівнює кількості прикладів), тестова помилка спершу злітає до піку — а потім знову починає падати. Крива має не одну, а дві ями. Це явище називають подвійним спуском (double descent).
Чому це не скасовує всього сказаного вище? Бо в надпараметризованому режимі існує не один спосіб ідеально пройти через навчальні точки, а нескінченно багато. І алгоритм навчання — градієнтний спуск — з усіх варіантів систематично обирає найбільш «гладкий», з найменшою нормою ваг. Тобто там працює неявна регуляризація, вбудована в сам метод оптимізації. Дисперсія падає не всупереч компромісу, а завдяки прихованому механізму, який цей компроміс і використовує.
12 / ПідсумокЩо з цим робити в понеділок
Уся ця теорія зводиться до однієї практичної процедури, яка займає пʼять хвилин і рятує тижні.
- Заміряй обидві помилки — на навчальних даних і на відкладених. Одну цифру дивитись безглуздо.
- Постав діагноз за розривом. Обидві високі й близькі — зміщення. Розрив великий — дисперсія.
- Лікуй відповідно. Зміщення: ускладнити модель, додати ознак, послабити регуляризацію. Дисперсія: спростити, посилити регуляризацію, додати даних, застосувати беггінг.
- Побудуй криву навчання, перш ніж замовляти нові дані. Плато означає, що дані вже не допоможуть.
- Не полюй на нуль. Незвідний шум існує. Модель, що показала нульову помилку, майже напевно має витік даних, а не геніальність.
І остання думка. Компроміс зміщення й дисперсії — це не технічна деталь окремого алгоритму. Це фундаментальна властивість самого навчання за скінченною вибіркою: щоб щось узагальнити, доводиться щось ігнорувати. Модель, яка не ігнорує нічого, запамʼятовує шум. Модель, яка ігнорує забагато, не бачить закономірності. Уся інженерна робота в машинному навчанні — це пошук правильної міри ігнорування.
practice.ipynb ти власноруч
порахуєш bias² і variance через бутстреп, побудуєш криву навчання
(learning_curve) і криву валідації (validation_curve),
подивишся на компроміс у k-NN, дереві та випадковому лісі й перевіриш, чи вдасться
відтворити подвійний спуск на невеликій мережі.Далі в темі
Теорію прочитано. Тепер закріпи її на практиці.