Кожен курс машинного навчання починається з однієї й тієї самої картинки: помилка на тесті спершу падає, потім росте, а між ними є оптимальна складність. Ця картинка правильна. Проблема в тому, що вона намальована лише до певної межі — і за цією межею починається територія, де вона просто перестає діяти.
Найбільші мовні моделі мають сотні мільярдів параметрів на вибірках, які помітно менші. За класичною логікою вони мали б катастрофічно перенавчитись. Вони не перенавчаються. Явище, яке пояснює цей розрив між теорією й практикою, називають подвійним спуском (double descent). Розберімо його від самого початку, крок за кроком.
01 / НагадуванняКласична U-крива
Спершу відновімо те, що ми вже знаємо. Помилку моделі на нових даних розкладають на три доданки:
Зміщення (bias) — це системний недолік самої форми моделі. Пряма не здатна описати хвилю, скільки б даних ти їй не дав: вона промахуватиметься завжди в одну й ту саму сторону. Дисперсія (variance) — це чутливість до конкретної вибірки: якщо забрати кілька точок і додати кілька інших, наскільки сильно зміниться навчена модель. Незвідний шум прибрати неможливо в принципі.
Ці два перші доданки тягнуть у різні боки. Проста модель має велике зміщення й малу дисперсію. Складна — навпаки. Сума дає U-подібну криву з мінімумом десь посередині, і саме той мінімум ми звикли шукати крос-валідацією.
Інтерактив 1 · Класичний компроміс
Поліноміальна регресія на 24 навчальних точках, степінь до 18. Унизу — помилка на навчанні й на 300 тестових точках.
Зверни увагу на одну обставину, яку в підручниках зазвичай не проговорюють: степінь полінома тут обмежений чотирнадцятьма. Не випадково. Навчальних точок двадцять чотири, і щойно кількість параметрів моделі дорівняє кількості точок, відбувається щось якісно нове. Саме туди ми зараз і підемо.
02 / МежаПоріг інтерполяції
Позначмо кількість навчальних прикладів через N, а кількість вільних
параметрів моделі — через p. Поки p < N, рівнянь більше, ніж
невідомих: модель фізично не може пройти крізь усі точки, вона змушена шукати компроміс.
Це звична територія.
Коли p = N, рівнянь і невідомих порівну. Система стає визначеною, і — за
звичайних умов — існує рівно один набір параметрів, який проводить модель
точно крізь кожну навчальну точку. Навчальна помилка стає нулем. Ця точка й називається
порогом інтерполяції (interpolation threshold).
Коли p > N, невідомих стає більше, ніж рівнянь. Розвʼязків, які проходять
крізь усі точки, стає нескінченно багато — ціла лінійна множина. Навчальна помилка нульова
в усіх них, тому дані вже нічого не вибирають. Вибір робить алгоритм навчання.
І ось цей вибір, як ми побачимо, вирішує все.
03 / КартаТри режими
Отже, вісь складності розпадається не на дві частини (недонавчання / перенавчання), а на три:
| режим | умова | навчальна помилка | що відбувається |
|---|---|---|---|
| класичний | p < N | > 0, спадає | працює компроміс зміщення-дисперсії, тестова помилка малює U |
| поріг | p ≈ N | досягає 0 | єдиний інтерполюючий розвʼязок, тестова помилка вибухає |
| надпараметризований | p > N | дорівнює 0 | інтерполянтів безліч, алгоритм обирає найгладший — помилка знову спадає |
Назва «подвійний спуск» описує форму саме тестової кривої: вона спадає в класичному режимі, робить різкий сплеск на порозі й спадає вдруге — уже за порогом. Друга спадна гілка може опуститись нижче, ніж будь-яка класична модель. Це не помилка експерименту. Це відтворюваний ефект.
04 / СтендМодель для експерименту
Щоб побачити явище на власні очі, потрібна модель, у якої можна плавно крутити кількість параметрів. Повноцінна нейромережа тут незручна: у неї надто багато сторонніх джерел випадковості (ініціалізація, порядок батчів, момент зупинки). Тому візьмемо мінімальний стенд, який дає ту саму поведінку в чистому вигляді.
Ідея така: беремо p випадкових нелінійних ознак — кожна
ознака φk(x) — це фіксована випадкова гладка хвиляста
функція від x. Далі поверх них вчиться звичайна лінійна модель:
Ознаки не навчаються — навчаються тільки ваги γ. Це рівно те, чим є
нейромережа з одним випадковим прихованим шаром і навченим виходом; і рівно те, чим
приблизно є дуже широка мережа біля точки ініціалізації. Кожна ознака зібрана як випадкова
суміш косинусів, причому високочастотні складові беруться з меншою амплітудою — тобто наші
ознаки в середньому гладкі, але не однакові.
p ≤ N, ваги шукаємо
методом найменших квадратів — мінімізуємо суму квадратів залишків. Коли p > N
і розвʼязків із нульовою помилкою безліч, беремо серед них той, у якого
найменша норма ‖γ‖. Це стандартний і, як побачимо, дуже
змістовний вибір.Дані: 24 навчальні точки з гладкої кривої плюс гаусів шум. Тестова вибірка — 300 точок, щоб оцінка помилки була стабільною. Кожну цифру нижче усереднено (медіана) по 15 незалежних наборах випадкових ознак, інакше крива стрибала б від одного невдалого розкладу.
05 / ГоловнеКрива подвійного спуску
Ось вона. Рухай повзунок кількості параметрів і дивись, як модель проходить усі три
режими. Вертикальна лінія — поріг p = N = 24.
Інтерактив 2 · Крива подвійного спуску
Обидві осі логарифмічні. Пунктирна вертикаль — поріг інтерполяції p = N = 24.
Прочитай цю картинку уважно. У класичному режимі все як у підручнику. На порозі помилка підскакує в кілька разів — саме тут класична інтуїція каже «стоп, далі буде тільки гірше». Але далі стає краще: чим більше параметрів понад поріг, тим нижча тестова помилка, і вона опускається нижче за найкращу класичну модель.
06 / ФормаЯк виглядає підгонка в кожному режимі
Числа — це добре, але корисніше побачити самі криві. Перемикай режими. Кнопка внизу міняє випадковий набір ознак: зверни увагу, як сильно результат залежить від цього жеребу саме на порозі — і як мало він важить, коли параметрів багато.
Інтерактив 3 · Одна модель, чотири режими складності
Сірий пунктир — справжня функція. Рожеві точки — навчальні дані з шумом.
07 / Механізм пікуЧому саме на порозі вибухає
Тепер найважливіше питання лекції: звідки береться пік. Пояснення простіше, ніж здається, і воно геометричне.
При p = N умова «пройти крізь усі навчальні точки» — це квадратна система
лінійних рівнянь. У неї, за звичайних умов, рівно один розвʼязок.
Це і є ключ. У класичному режимі модель хоча б могла обирати компроміс. У надпараметризованому вона обиратиме серед багатьох інтерполянтів. А тут вибору немає взагалі: розвʼязок один, і ніхто не гарантував, що він хороший.
Ознаки випадкові, а отже майже напевно якісь дві з них виявляться майже пропорційними одна одній. Щоб така пара разом дала потрібне значення в навчальних точках, коефіцієнти мусять бути велетенськими й протилежними за знаком: вони гасять один одного там, де є дані.
Взаємне гасіння тримається рівно в навчальних точках. Варто відійти на крок убік — і різниця величезних доданків перестає бути малою. Функція вистрілює вгору або вниз. Саме це ти бачив у попередньому інтерактиві при p = 24.
Отже пік — це не «перенавчання» у звичному розумінні. Це жорсткість: на порозі модель змушена взяти єдиний доступний спосіб інтерполяції, а цей спосіб вимагає розвʼязку з гігантською нормою.
08 / ВимірюванняНорма коефіцієнтів
Розмову про «величезну норму» легко перевірити числом. Побудуймо ‖γ‖ —
довжину вектора ваг — як функцію кількості параметрів:
Інтерактив 4 · Норма ваг на осі складності
Та сама вісь p, що й на головній кривій. Вісь норми логарифмічна.
09 / Механізм спускуЧому за порогом знову падає
Тепер друга половина відповіді. Додаємо ще одну ознаку понад поріг — і множина
інтерполюючих розвʼязків із однієї точки перетворюється на цілу пряму. Ще одну — на
площину. При p = 200 і N = 24 ця множина має розмірність 176.
Усі ці розвʼязки однаково ідеальні на навчальних даних. Але між точками вони поводяться зовсім по-різному: одні вистрілюють, інші йдуть плавно. І тепер у нас є з чого обирати. Ми обираємо той, у якого мінімальна норма:
Чому мінімальна норма означає гладкість? Бо велика норма — це саме та ситуація з великими протилежними коефіцієнтами, які гасяться в точках і розлітаються між ними. Обмежити довжину вектора ваг — значить заборонити такий баланс. Функція, зібрана з малих коефіцієнтів перед гладкими ознаками, сама виходить гладкою.
А тепер головне: чим більше ознак, тим ширша множина, у якій ми шукаємо найгладший варіант, — і тим гладшим виявляється знайдений мінімум. Ось чому норма ваг монотонно спадає праворуч від піку, і разом із нею спадає тестова помилка. Більша модель дає не більше свободи схибити, а більше свободи вибрати добре.
10 / Назва явищаНеявна регуляризація
Принцип «серед усіх ідеальних розвʼязків бери найкоротший» — це і є неявна регуляризація (implicit regularization). Неявна, бо ми ніде не дописували штраф у функцію втрат: він виникає сам, із самого способу навчання.
І це не абстракція. Градієнтний спуск, запущений з нуля на надпараметризованій лінійній задачі, збігається саме до розвʼязку мінімальної норми — бо кожен крок градієнта лежить у просторі, натягнутому на ознаки навчальних обʼєктів, і алгоритм ніколи не виходить за межі цього простору. Тобто звичайний SGD уже несе в собі регуляризатор, про який ми не просили.
У глибоких мережах роль такого прихованого регуляризатора грає ще й архітектура. Згортковий шар не вміє вивчити довільну функцію — він уміє вивчати те, що локальне й повторюване. Це різко звужує множину досяжних інтерполянтів, причому звужує в правильний бік. Схильність архітектури до певного типу розвʼязків називають індуктивним зміщенням (inductive bias).
11 / ПеревіркаЧи винен у піку шум
Природна гіпотеза: пік виникає тому, що модель на порозі змушена точно відтворити шум. Перевірмо її експериментом — покрутимо рівень шуму від нуля до великого й подивимось, що станеться з кривою.
Інтерактив 5 · Скільки шуму — стільки й наслідків
Бліда крива — той самий експеримент без шуму, для порівняння. Бордова горизонталь — найкраща класична модель.
Висновок з цього експерименту двоякий. Пік — наслідок жорсткості, а не шуму. Але користь від переходу за поріг — навпаки, повністю залежить від того, наскільки чисті твої дані. Якщо в мітках багато випадковості, інтерполювати їх точно немає сенсу: ти відтворюєш шум, хай і гладко. Саме тому наступний крок — подивитись, що дає явний штраф.
12 / ЛікиЯвний штраф прибирає пік
Додамо у функцію втрат звичайний L2-штраф, тобто гребеневу регресію (Ridge):
Тепер ми не вимагаємо точної інтерполяції — ми торгуємось між точністю на навчальних даних і величиною ваг. Оскільки пік був спричинений саме гігантською нормою, штраф має його зрізати. Перевірмо:
Інтерактив 6 · Ridge проти піку
Бліда пунктирна крива — без штрафу (λ = 0). Суцільна — з поточним λ.
13 / МасштабЩо це означає для великих мереж
Тепер перенесімо картинку на реальні моделі. Сучасна мережа має параметрів на порядки більше, ніж прикладів у навчальній вибірці. Тобто вона живе глибоко праворуч від порогу — там, де класична крива взагалі не намальована.
Це пояснює кілька спостережень, які інакше виглядають парадоксально:
- Збільшення моделі часто допомагає, а не шкодить. Кожен новий параметр розширює множину інтерполянтів, серед яких навчання шукає найгладший. Класична інтуїція «менше параметрів — менше перенавчання» тут просто не діє.
- Мережі досягають нульової помилки на навчанні й усе одно узагальнюють. Відома робота показала, що великі мережі здатні вивчити навіть повністю випадкові мітки. Тобто ємності в них надлишок — а працюють вони добре не через брак ємності, а через те, який розвʼязок обирає навчання.
- Проміжний розмір буває найгіршим. Модель, у якої параметрів приблизно стільки ж, скільки прикладів, може виявитись гіршою і за меншу, і за більшу. Якщо збільшення мережі раптом погіршило результат — не виключено, що ти просто зайшов у пік і не дійшов до другої гілки.
- Пік буває не лише за розміром моделі. Ту саму форму спостерігали вздовж тривалості навчання (epoch-wise double descent) і навіть уздовж розміру вибірки: інколи більше даних тимчасово шкодить, бо зсуває поріг у поточну робочу точку.
14 / ПідсумокПрактичні висновки
Що з усього цього забрати в роботу:
- Не бійся кількості параметрів самої по собі. Обмежувати варто не розмір, а норму ваг, амплітуду оновлень, кількість кроків — усе те, що реально керує гладкістю розвʼязку.
- Обходь околиці порогу. Найризикованіша конфігурація — та, де параметрів приблизно стільки ж, скільки навчальних прикладів. Або суттєво менше, або суттєво більше.
- Не роби висновків з двох точок. Якщо збільшення моделі погіршило метрику, це може бути підйом до піку, а не межа корисності. Треба будувати криву, а не порівнювати дві конфігурації.
- Явна регуляризація нікуди не поділась. Ridge, weight decay, рання зупинка й аугментація прибирають пік і на брудних даних дають більше, ніж чиста надпараметризація.
- Чистота міток важливіша, ніж здається. Виграш другої гілки прямо залежить від рівня шуму: чим брудніші дані, тим менше сенсу інтерполювати їх точно.
І фінальна думка, з якою варто йти далі. Питання «чи перенавчиться модель» уже не зводиться до підрахунку параметрів. Правильне питання інше: яку саме функцію серед усіх можливих обирає моє навчання — і чи схильна вона до того типу розвʼязків, який підходить до моєї задачі. Формальний доказ того, що цей вибір справді означає «найгладша крива», ми розберемо в другій частині.
Далі в темі
Теорію прочитано. Тепер закріпи її на практиці.