Используя наше воображение, мы можем представить набор данных, состоящий из признаков X и меток Y, как показано слева. Также представим, что мы хотим обобщить эту зависимость на дополнительные значения X — то есть предсказывать будущие значения на основе того, что мы уже видели.
Истощив наше воображение, мы можем применить очень простой подход к моделированию зависимости между X и Y, просто проведя линию, соответствующую общей тенденции данных.
Простая модель
Наша простая модель не лучшим образом описывает эту зависимость — очевидно, что она не улавливает часть информации в данных.
Мы будем измерять производительность нашей модели, глядя на среднеквадратичную ошибку её предсказаний по сравнению с истинными значениями (отображается на нижней гистограмме). Наша модель близка к некоторым точкам обучающей выборки, но в целом есть явные возможности для улучшения.
Ошибка на обучающих данных важна для настройки модели, но нас действительно волнует, как она работает на данных, которые мы раньше не видели, называемых тестовыми данными. Давайте проверим это.
Низкая сложность и недообучение
Ой, похоже, наши прежние подозрения подтвердились — наша модель неудовлетворительна. Ошибка на тестовых данных даже выше, чем на обучающих!
В этом случае мы говорим, что наша модель недообучена: она настолько проста, что не может адекватно уловить зависимости в данных. Высокая тестовая ошибка является прямым следствием недостаточной сложности модели.
Недообученная модель — это модель, которая слишком проста, чтобы точно уловить зависимости между её признаками X и меткой Y.
Сложная модель
Предыдущая модель работала плохо, потому что была слишком простой. Давай попробуем что-то более сложное. Фактически, давай сделаем модель максимально сложной — обучим модель, которая идеально предсказывает каждую точку в обучающих данных.
Отлично! Теперь наша ошибка на обучающих данных равна нулю. Как гласит старая поговорка в Теннесси: «Обмани меня раз — позор тебе. Обмани меня дважды — э... больше не обманешь ;).»
Высокая сложность и переобучение
Подождите-ка... Несмотря на то, что ошибка на обучающих данных практически равна нулю, ошибка на тестовых данных высока. В чём дело?
Неудивительно, что наша модель слишком сложна. Мы говорим, что она переобучена. Вместо того чтобы изучить истинные тенденции, лежащие в основе нашего набора данных, она запомнила шум, и в результате модель не обобщается на данные за пределами обучающей выборки.
Переобучение — это случай, когда модель настолько специфична для данных, на которых она обучалась, что больше не применима к другим наборам данных.
В ситуациях, когда ошибка на обучающих данных низкая, а на тестовых — высокая, вы, вероятно, переобучили модель.
Разложение тестовой ошибки
Наша тестовая ошибка может быть результатом как недообучения, так и переобучения данных, но как эти два явления связаны друг с другом?
В общем случае среднеквадратичная ошибка может быть разложена на три компоненты: ошибка из-за смещения, ошибка из-за дисперсии и ошибка из-за шума.
Или, математически:
Мы мало что можем сделать с неприводимым членом, но мы можем использовать взаимосвязь между смещением и дисперсией для получения лучших предсказаний.
Смещение
Смещение представляет собой разницу между средним предсказанием и истинным значением:
Термин довольно сложный. Он относится к среднему предсказанию после того, как модель была обучена на нескольких независимых наборах данных. Мы можем рассматривать смещение как меру систематической ошибки в предсказании.
Различные реализации модели показаны на верхнем графике, а разложение ошибки (для каждой точки данных) показано на нижнем графике.
Для недообученных (низкой сложности) моделей большая часть нашей ошибки связана со смещением.
Дисперсия
Как и в случае со смещением, понятие дисперсии также связано с различными реализациями нашей модели. В частности, дисперсия измеряет, насколько в среднем варьируются предсказания для данной точки данных:
Как видно на нижнем графике, предсказания переобученных (высокой сложности) моделей показывают гораздо больше ошибок из-за дисперсии, чем из-за смещения. Легко представить, что любые невидимые точки данных будут предсказаны с высокой ошибкой.
Поиск баланса
Чтобы добиться наилучших результатов, мы должны найти золотую середину между моделью, которая настолько проста, что не может уловить значимые закономерности в данных, и моделью, которая настолько сложна, что не обобщается на невидимых данных.
Другими словами, мы не хотим недообученную модель, но также не хотим переобученную. Нам нужно что-то среднее — модель с достаточной сложностью, чтобы изучить обобщаемые закономерности в наших данных.
Увеличивая сложность модели, жертвуя некоторым смещением ради дисперсии, и не переусердствуя, мы можем найти сбалансированную модель для нашего набора данных.
На разных уровнях сложности
Мы только что показали, на разных уровнях сложности, примеры реализаций модели вместе с соответствующими разложениями ошибок предсказания.
Давай направим наше внимание на разложение ошибок на разных уровнях сложности модели.
Для каждого уровня сложности мы агрегируем разложение ошибок по всем точкам данных и построим график агрегированных ошибок для их уровня сложности.
Это агрегирование, применённое к нашей сбалансированной модели (т.е. среднему уровню сложности), показано слева.
Компромисс между смещением и дисперсией
Повторяя это агрегирование по всему диапазону сложностей модели, мы можем увидеть, как взаимосвязь между смещением и дисперсией в ошибках предсказания проявляется в виде U-образной кривой, описывающей компромисс между смещением и дисперсией.
Когда модель слишком проста (т.е. малые значения по оси X), она игнорирует полезную информацию, и ошибка в основном состоит из смещения.
Когда модель слишком сложна (т.е. большие значения по оси X), она запоминает необобщаемые закономерности, и ошибка в основном состоит из дисперсии.
Идеальная модель стремится минимизировать как смещение, так и дисперсию. Она находится в оптимальной точке — не слишком простая и не слишком сложная. Достижение такого баланса обеспечит минимальную ошибку.