Почему модель с параметрами больше числа примеров иногда снова улучшается?
Ошибка модели складывается из трёх частей. Смещение — систематический
промах слишком простой модели. Вариативность — метания слишком гибкой,
которая ловит случайный шум. И сам шум — неустранимый разброс данных.
Понять, как эти три величины меняются со сложностью модели, — значит
понять переобучение до самых костей.
Три источника ошибки
В прошлом уроке мы увидели переобучение как растущий разрыв
между обучением и тестом. Теперь разберём его изнутри. Почему модель
ошибается на новых данных? Причин ровно три.
Первая — смещение: если модель слишком проста, она в принципе не способна
описать закономерность, как прямая не согнётся в синусоиду. Вторая —
вариативность: слишком гибкая модель так старательно подгоняется под
конкретную обучающую выборку, что ловит и её случайный шум, а на другой
выборке выдаст совсем иное. Третья — сам шум в данных: даже идеальная
модель не предскажет случайную часть, её не устранить ничем. Ожидаемая
ошибка квадрата отклонения распадается на эти три слагаемых
точно:
Шутка фон Неймана — про вариативность: дай модели достаточно параметров,
и она опишет что угодно, включая бессмыслицу. Искусство — в балансе.
Смещение и вариативность
Эти две части тянут в разные стороны. Простая модель имеет большое
смещение, но малую вариативность: она стабильно, хоть и грубо, промахивается.
Сложная — малое смещение, но большую вариативность: в среднем метит верно,
но швыряется от выборки к выборке. Измерим оба вклада на полиномиальной
регрессии, наращивая степень.
Синяя кривая (смещение²) падает с ростом степени: гибкая модель точнее в
среднем. Красная (вариативность) растёт: гибкая модель нестабильна. Их
сумма плюс шум — чёрная полная ошибка, U-образная с минимумом на степени
3. Ниже зелёной черты — неустранимый шум σ2 — не опуститься.
Три полинома
Увидим смещение и вариативность своими глазами. Возьмём одни и те же
зашумлённые точки и подгоним полиномы трёх степеней.
Степень 1 (прямая) не гнётся под изгибы — большое смещение. Степень 3
идёт по истинной функции — баланс. Степень 11 проходит сквозь все точки,
но дико скачет между ними, поймав шум, — огромная вариативность. Одни
данные, три судьбы.
Шум неустраним
Есть предел, ниже которого не опустится никакая модель, — неустранимый
шум. Если в данных есть случайная составляющая (ошибка измерения,
непредсказуемость мира), даже точная модель истинной закономерности
оставит эту случайность необъяснённой.
Полином через все точки
Крайний случай гибкости — интерполяция: модель проходит ровно через все
обучающие точки, обнуляя ошибку на них. Через n точек всегда можно
провести полином степени n−1. Но между точками такой полином выписывает
дикие петли: заставив кривую задеть каждую точку, мы обрекли её на
бешеные колебания.
Двойной спуск
Долгое время U-образная кривая считалась полной правдой: расти сложность —
и ошибка на тесте, дойдя до минимума, только вверх. На ней держалась вся
классическая мудрость: выбирай модель поскромнее, не давай ей заучить
данные. Но у огромных современных моделей — нейросетей с миллиардами
параметров, которых куда больше, чем обучающих примеров, — обнаружили
странность, прямо противоречащую этой мудрости. Если наращивать сложность
дальше порога интерполяции, где модель точно проходит все точки, ошибка
на тесте, взлетев до пика, вновь начинает падать. Сеть, зазубрившая всю
обучающую выборку наизусть, вопреки классике обобщает — и тем лучше, чем
она больше.
Слева — классическая картина: спуск к минимуму, подъём к пику ровно на
пороге интерполяции. Но справа от порога, у сверхбольших моделей, ошибка
падает снова — второй спуск. Простая U-интуиция описывает лишь левую
половину.
Почему второй спуск возможен
Разгадка — в том, какую из многих интерполирующих функций выбирает
обучение. За порогом интерполяции таких функций, точно проходящих через
все точки, бесконечно много, и среди них есть и дикие, и на удивление
гладкие. Градиентный спуск и минимизация нормы весов регуляризацией
тяготеют к самым гладким из них — а гладкая интерполяция обобщает неплохо.
Огромная сеть не обязана метаться: у неё есть простор выбрать
плавное решение, и обучение ей в этом помогает.
Русская линия: предел приближения
Есть ли у смещения принципиальный предел — наименьшая ошибка, достижимая
классом моделей заданной сложности? Да, и измерил её Андрей Колмогоров. В
1936 году он ввёл поперечники — величину, равную наилучшей возможной
точности приближения функций целым классом моделей заданной размерности.
Поперечник Колмогорова — это, по сути, теоретический пол смещения: ниже
него класс такой сложности опуститься не может, как ни подбирай модель.
Из теории поперечников выросла вся современная теория приближения, а вместе
с ней — понимание, сколько сложности нужно модели, чтобы в принципе
описать тот или иной класс закономерностей. Смещение, вариативность и поперечники
Колмогорова — три взгляда на один вопрос: как сложность модели соотносится
с трудностью задачи.
Лаборатория подгонки
Степень полинома: от прямой до диких скачков
График шире экрана — листайте по горизонтали →
Загружается живая иллюстрация…
Порядок опытов. Двигайте степень полинома и следите за двумя числами.
Ошибка на обучении падает всегда — гибкая кривая всё точнее проходит через
точки. А ошибка на новых данных сперва падает, затем растёт: у неё
минимум, и он не там, где ошибка на обучении. Поймайте степень, при которой
кривая идёт по истинной функции, а не сквозь каждую точку. Потом
доведите степень до предела и полюбуйтесь дикими петлями переобучения.
Сборка: три части одной ошибки
Ошибка модели на новых данных распадается на три слагаемых: смещение²
(систематический промах простой модели), вариативность (метания гибкой
модели, ловящей шум) и неустранимый шум самих данных. Со сложностью
смещение падает, вариативность растёт, и полная ошибка U-образна с
минимумом посередине — мы видели это на полиномах, от прямой до диких
петель интерполяции. Нулевая ошибка на обучении не триумф, а тревога:
ниже уровня шума не опуститься честно. Классическая U-картина, однако, не
вся правда: у сверхбольших моделей за порогом интерполяции наступает
второй спуск, потому что гладкая интерполяция обобщает неплохо, а обучение
её и выбирает. За всем этим — теория приближения и поперечники Колмогорова,
задающие предел смещению. Теперь мы понимаем переобучение до дна. Дальше —
как выжать больше из данных, которые есть: об аугментации и переносе знаний.