MLU-Explain, часть 2: компромисс смещения и разброса
Перевод визуального эссе Amazon MLU-Explain «The Bias Variance Tradeoff»: недообучение и переобучение, разложение ошибки на смещение, разброс и шум, U-образная кривая, гиперпараметры LOESS и k-ближайших соседей.
Вторая статья серии MLU-Explain на русском (о серии и карта всех статей — в части 1). Оригинал — интерактивное эссе: графики перестраиваются по мере прокрутки. Где в тексте упоминается график, мы в скобках описываем, что на нём показано. Откройте оригинал рядом.
Компромисс смещения и разброса
Заголовок раздела «Компромисс смещения и разброса»Джаред Уилбер и Брент Вернесс, январь 2021.
Ошибку предсказания можно разложить на две главные интересующие нас составляющие: ошибку из-за смещения (bias) и ошибку из-за разброса (variance). Компромисс между способностью модели уменьшать смещение и разброс лежит в основе обучения моделей машинного обучения, поэтому в этом понятии стоит разобраться.
Напрягая всё своё воображение, представим набор данных из признаков X и меток Y, как на графике слева. Представим также, что мы хотим обобщить эту зависимость на другие значения X — предсказывать будущие значения по тому, что уже видели.
Исчерпав воображение, возьмём очень простой подход к моделированию связи между X и Y — просто проведём прямую по общему тренду данных.
Простая модель
Заголовок раздела «Простая модель»Наша простая модель моделирует зависимость не лучшим образом: в данных явно есть информация, которую она не улавливает.
Качество модели будем измерять по среднеквадратичной ошибке (mean-squared error) между её выходом и истинными значениями (она показана на столбчатой диаграмме внизу). Модель близка к некоторым обучающим точкам, но в целом ей явно есть куда расти.
Ошибка на обучающих данных важна для настройки модели, но на самом деле нас интересует, как модель работает на данных, которых она раньше не видела, — на тестовых данных. Давайте проверим и их.
Низкая сложность и недообучение
Заголовок раздела «Низкая сложность и недообучение»Ой-ой, похоже, наши подозрения подтвердились — модель никуда не годится. Ошибка на тесте даже выше, чем на обучении!
В таком случае говорят, что модель недообучена (underfitting): она настолько проста, что не может как следует уловить зависимости в данных. Высокая ошибка на тесте — прямое следствие недостаточной сложности модели.
Недообученная модель слишком проста, чтобы точно уловить связь между признаками X и меткой Y.
Сложная модель
Заголовок раздела «Сложная модель»Предыдущая модель работала плохо, потому что была слишком простой. Попробуем что-нибудь посложнее. Более того, возьмём максимально сложную модель — такую, которая идеально предсказывает каждую точку обучающих данных.
Отлично! Теперь ошибка на обучении равна нулю. Как гласит старая теннессийская поговорка: «Обманешь меня раз — позор тебе. Обманешь дважды — э-э… второй раз меня не обманешь» ;).
(Примечание переводчика: шутка отсылает к знаменитой оговорке президента США Джорджа Буша-младшего, который спутал поговорку «Fool me once, shame on you; fool me twice, shame on me» — «Обманешь меня раз — позор тебе, обманешь дважды — позор мне».)
Высокая сложность и переобучение
Заголовок раздела «Высокая сложность и переобучение»Минуточку… Хотя ошибка нашей модели на обучении фактически нулевая, ошибка на тестовых данных высокая. В чём дело?
Неудивительно: модель слишком сложная. Говорят, что она переобучена (overfitting). Вместо того чтобы выучить настоящие закономерности, лежащие в основе данных, она запомнила шум, и в итоге модель не обобщается на данные за пределами обучающих.
Переобучение — ситуация, когда модель настолько подогнана под данные, на которых её обучали, что к другим наборам данных она уже неприменима.
Если ошибка на обучении низкая, а на тесте высокая, — скорее всего, вы переобучили модель.
Разложение ошибки на тесте
Заголовок раздела «Разложение ошибки на тесте»Ошибка на тесте может возникать и из-за недообучения, и из-за переобучения. Но как они связаны между собой?
В общем случае среднеквадратичную ошибку можно разложить на три составляющие: ошибку из-за смещения, ошибку из-за разброса и ошибку из-за шума.
Математически:
Или словами:
С неустранимым членом (шум) мы мало что можем сделать, но связь между смещением и разбросом можно использовать, чтобы получать предсказания лучше.
(Примечание переводчика: как читать формулу. — истинная зависимость, — предсказание модели, обученной на одной случайной выборке. Представьте, что мы много раз взяли новую обучающую выборку и заново обучили модель: — среднее предсказание по всем этим обучениям. Первое слагаемое — насколько среднее предсказание промахивается мимо истины, второе — насколько отдельные предсказания скачут вокруг своего среднего.)
Смещение
Заголовок раздела «Смещение»Смещение — это разница между средним предсказанием и истинным значением:
Член коварный. Он означает среднее предсказание после того, как модель обучили на нескольких независимых наборах данных. Смещение можно понимать как меру систематической ошибки предсказания.
Эти разные варианты (реализации) модели показаны на верхнем графике, а разложение ошибки (для каждой точки данных) — на нижнем.
У недообученных (низкой сложности) моделей бо́льшая часть ошибки приходится на смещение.
Разброс
Заголовок раздела «Разброс»Как и смещение, понятие разброса связано с разными реализациями модели. А именно: разброс показывает, насколько в среднем меняются предсказания для заданной точки данных:
Как видно на нижнем графике, в ошибке переобученных (высокой сложности) моделей гораздо больше разброса, чем смещения. Легко представить, что любые новые точки данных будут предсказываться с большой ошибкой.
Ищем баланс
Заголовок раздела «Ищем баланс»Чтобы получить лучшие результаты, нужно найти золотую середину между моделью настолько простой, что она не выучивает осмысленных закономерностей в данных, и моделью настолько сложной, что она не обобщается на новые данные.
Иначе говоря, нам не нужна недообученная модель, но и переобученная тоже не нужна. Нужно что-то посередине — модель достаточно сложная, чтобы выучить обобщаемые закономерности в данных.
Разменивая часть смещения на разброс (то есть увеличивая сложность модели), но не перегибая палку, можно найти сбалансированную модель для нашего набора данных.
Разные уровни сложности
Заголовок раздела «Разные уровни сложности»Выше мы показали для разных уровней сложности несколько реализаций модели и соответствующие разложения ошибки предсказания.
Теперь сосредоточимся на разложениях ошибки при разных уровнях сложности модели.
Для каждого уровня сложности сложим разложения ошибки по всем точкам данных и нанесём суммарные ошибки на график в точке этого уровня сложности.
Такая агрегация для сбалансированной модели (среднего уровня сложности) показана слева.
Компромисс смещения и разброса
Заголовок раздела «Компромисс смещения и разброса»Повторив агрегацию для всего диапазона сложности моделей, мы видим, что связь между смещением и разбросом в ошибке предсказания проявляется как U-образная кривая, описывающая компромисс между смещением и разбросом.
Когда модель слишком проста (малые значения по оси X), она игнорирует полезную информацию, и ошибка состоит в основном из смещения.
Когда модель слишком сложна (большие значения по оси X), она запоминает необобщаемые закономерности, и ошибка состоит в основном из разброса.
Идеальная модель стремится уменьшить и смещение, и разброс. Она находится в «золотой точке» — не слишком простая, но и не слишком сложная. Такой баланс даёт минимальную ошибку.
У многих моделей есть параметры, которые меняют итоговую выученную модель, — их называют гиперпараметрамигиперпараметрEN hyperparameterНастройка, которую не учат градиентом, а выбирают по валидации — степень полинома, λ, learning rate, число слоёв.. Посмотрим на двух примерах — LOESS-регрессии и методе k-ближайших соседей, — как с помощью гиперпараметров можно управлять компромиссом смещения и разброса.
LOESS-регрессия
Заголовок раздела «LOESS-регрессия»LOESS-регрессия (LOcally Estimated Scatterplot Smoothing, «локально оцениваемое сглаживание диаграммы рассеяния») — непараметрический метод, который проводит гладкую поверхность между откликом и предикторами. Подгонка кривой в каждой точке взвешивается по соседним данным. Это взвешивание задаёт гиперпараметр сглаживания — доля соседних данных, по которым строится каждая локальная подгонка.
Значит, компромиссом смещения и разброса в LOESS можно управлять через параметр сглаживания. Когда сглаживание маленькое, данных для точной подгонки не хватает, и разброс большой. Но если сделать сглаживание слишком сильным (пересглаживание), мы меняем локальную информацию на глобальную, и растёт смещение.
Ниже LOESS-кривая построена по двум переменным. Перемешайте обучающие данные, чтобы увидеть, как разные реализации модели влияют на разброс, и меняйте сглаживание, чтобы увидеть компромисс между недо- и переобучением (а значит, между смещением и разбросом).
(Интерактив в оригинале: кнопка «Randomize Train Data» и ползунок сглаживания.)
Метод k-ближайших соседей
Заголовок раздела «Метод k-ближайших соседей»Классификация методом k-ближайших соседей (метод k ближайших соседейметод k ближайших соседей (kNN)EN k-nearest neighbors (kNN), K-Nearest Neighbors) — простой способ отнести точку данных к классу по голосованию большинства среди её K ближайших соседей. Например, при K = 1 точка просто получает класс своего единственного ближайшего соседа. При K = 69 точка получает класс большинства среди 69 ближайших соседей.
Компромисс смещения и разброса в KNN можно наблюдать напрямую, меняя гиперпараметр K. Когда K маленький, в голосовании участвует лишь несколько соседей. Получающиеся «острова» и рваные границы — следствие большого разброса: классы определяются очень маленькими окрестностями. При больших K мы видим сильно сглаженные области, которые заметно отклоняются от истинной границы решений; если увеличить K слишком сильно, получится просто голосование большинством по всем данным. Это большое смещение. А при средних значениях K области гладкие и идут вдоль истинной границы решений.
Исследуйте компромисс сами! На левом графике — обучающие данные. На правом — области решений при текущем значении K. Более насыщенный цвет означает большую уверенность в классификации. Наведите курсор на точку, чтобы увидеть справа её классификацию, а слева — K ближайших соседей, по которым она определена.
(Интерактив в оригинале: ползунок K и кнопка «Randomize Data».)
А как же двойной спуск?
Заголовок раздела «А как же двойной спуск?»Возможно, вы слышали о явлении двойного спуска (Double Descent): за классической U-образной кривой смещения и разброса (как выше и во всех учебниках) следует второе падение ошибки. Неужели это явление перечёркивает компромисс смещения и разброса, на объяснение которого мы потратили столько времени?
Не волнуйтесь, дорогой читатель! Как мы подробно покажем в следующей серии статей, двойной спуск на самом деле подтверждает классическое понятие компромисса смещения и разброса. Следите за новостями!
(Примечание переводчика: эти статьи вышли — Double Descent и Double Descent 2. Двойной спуск важен для понимания больших нейросетей: модели с огромным числом параметров могут идеально запоминать обучающие данные и всё равно хорошо обобщаться. См. урок «Законы масштабирования».)
Наконец-то всё
Заголовок раздела «Наконец-то всё»Глубокий выдох. Наконец-то всё. Спасибо, что дочитали! Надеемся, статья оказалась полезной, на каком бы этапе пути в машинном обучении вы ни находились, и вы лучше поняли компромисс смещения и разброса.
Ради компактности мы пропустили некоторые связанные темы (например, регуляризацию), но следите за новыми статьями MLU-Explain — мы планируем объяснить и их, и другие темы машинного обучения.
Чтобы узнать о машинном обучении больше, загляните в наши курсы для самостоятельного изучения, видео на YouTube и учебник Dive into Deep Learning. Если у вас есть комментарии или идеи по статьям MLU-Explain, пишите напрямую. Код доступен здесь.
Литература и открытый код
Заголовок раздела «Литература и открытый код»Эта статья — результат следующих работ и замечательных людей, которые их создали (и внесли вклад):
- Reconciling modern machine learning practice and the bias-variance trade-off (Михаил Белкин, Дэниел Хсу, Сыюань Ма, Сумик Мандал, 2019);
- The Elements of Statistical Learning (Тревор Хасти, Роберт Тибширани, Джером Фридман, 2009);
- Dive into Deep Learning (Астон Чжан, Захари Липтон, Му Ли, Александр Смола, 2020);
- Understanding The Bias-Variance Tradeoff (Скотт Фортманн-Роу, 2012);
- LOESS Curve Fitting (statsdirect.com);
- библиотеки D3.js (Майк Босток, Филипп Ривьер), Rough Notation (Прит Шин), KaTeX (Эмили Айзенберг, Софи Алперт), Scrollama (Рассел Голденберг), d3-regression (Гарри Стивенс).
Что сделать руками
Заголовок раздела «Что сделать руками»Упражнение от переводчика: воспроизведите разложение ошибки сами.
- Возьмите истинную функцию на отрезке и шум с нормальным распределением, .
- 200 раз сгенерируйте обучающую выборку из 30 точек и обучите на каждой полиномиальную регрессию степени
1, 3 и 15 (
numpy.polyfit). - В 100 точках сетки посчитайте среднее предсказание , затем и по формулам выше. У степени 1 должно доминировать смещение, у степени 15 — разброс.
Словарик
Заголовок раздела «Словарик»| EN | RU |
|---|---|
| bias | смещение |
| variance | разброс (дисперсия предсказаний) |
| noise, irreducible error | шум, неустранимая ошибка |
| bias-variance tradeoff | компромисс смещения и разброса |
| underfitting / overfitting | недообучение / переобучение |
| mean squared error (MSE) | среднеквадратичная ошибка |
| model complexity | сложность модели |
| model realization | реализация модели (модель, обученная на одной выборке) |
| smoothing parameter | параметр сглаживания |
| K-nearest neighbors (KNN) | метод k-ближайших соседей |
| decision region | область решений |
| double descent | двойной спуск |