Лучшие модели находятся в идеальной точке: хорошо обобщают, достаточно учатся, но не слишком много.
Делиться

Создание моделей машинного обучения немного похоже на приготовление пищи: слишком мало приправ — и блюдо пресное, слишком много — и оно перебивает вкус. Цель? Идеальный баланс — достаточная сложность, чтобы передать вкус данных, но не слишком большая, чтобы не перегружать.
В этой статье мы рассмотрим две наиболее распространённые ошибки при разработке моделей: переобучение и недообучение . Независимо от того, обучаете ли вы свою первую модель или настраиваете уже сотую, контроль этих концепций — ключ к созданию моделей, которые действительно работают в реальном мире.
Переобучение
Что такое переобучение?
Переобучение — распространённая проблема моделей науки о данных. Это происходит, когда модель слишком хорошо обучается на обученных данных, то есть, обучается на закономерностях, характерных для обученных данных и шума. Следовательно, она не способна делать качественные прогнозы на основе ранее неизвестных данных.
Почему переобучение является проблемой?
- Низкая эффективность: Модель не способна к эффективному обобщению. Закономерности, выявленные ею во время обучения, неприменимы к остальным данным. Судя по ошибкам обучения, создаётся впечатление, что модель работает отлично, хотя на самом деле ошибки тестирования или реальные ошибки не столь оптимистичны.
- Прогнозы с высокой дисперсией: Модель работает нестабильно, а прогнозы ненадёжны. Небольшие корректировки данных приводят к высокой дисперсии прогнозов.
- Обучение сложной и дорогостоящей модели: Обучение и создание сложной модели в продакшене — это дорогостоящая и ресурсоёмкая работа. Если более простая модель работает так же хорошо, эффективнее использовать её.
- Риск потери доверия бизнеса: специалисты по анализу данных, излишне оптимистичные при экспериментах с новыми моделями, могут обещать бизнесу завышенные результаты. Если переобучение обнаруживается только после презентации модели, это может существенно подорвать доверие и затруднить восстановление доверия к ней.
Как определить переобучение
- Перекрёстная проверка: В ходе перекрёстной проверки входные данные разбиваются на несколько наборов (наборы обучающих и тестовых данных). Различные наборы входных данных должны давать схожие результаты погрешности тестирования. Большой разрыв в производительности между наборами может указывать на нестабильность модели или утечку данных, что может быть признаком переобучения.
- Отслеживайте ошибки обучения, тестирования и обобщения. Ошибка при развёртывании модели (ошибка обобщения) не должна существенно отличаться от уже известных вам ошибок. Если вы хотите пойти ещё дальше, рассмотрите возможность внедрения оповещения о мониторинге, если производительность развёрнутой модели значительно отклоняется от ошибки проверочного набора.
Как смягчить/предотвратить переобучение
- Удалить признаки: слишком большое количество признаков может слишком сильно «руководить» моделью, что приведет к тому, что модель не сможет эффективно обобщать данные.
- Увеличение объема обучающих данных: предоставление большего количества примеров для обучения позволяет модели лучше обобщать данные и становится менее чувствительной к выбросам и шуму.
- Увеличить регуляризацию: методы регуляризации помогают, штрафуя уже завышенные коэффициенты. Это защищает модель от слишком точного соответствия данным.
- Корректировка гиперпараметров: некоторые гиперпараметры, которые подобраны слишком точно, могут привести к тому, что модель не сможет хорошо обобщаться.
Недообучение
Что такое недообучение?
Недообучение происходит, когда природа модели или её признаки слишком упрощены для адекватного описания базовых данных. Это также приводит к неточным прогнозам на основе ранее не исследованных данных.
Почему недообучение является проблематичным?
- Низкая производительность: Модель плохо работает на обучающих данных, поэтому она также плохо работает на тестовых и реальных данных.
- Прогнозы с высокой степенью смещения: модель неспособна делать надежные прогнозы.
Как определить недообучение
- Ошибки обучения и тестирования будут неудовлетворительными.
- Ошибка обобщения будет высокой и, возможно, близкой к ошибке обучения.
Как исправить недообучение
- Расширение функций: внедрение новых функций или добавление более сложных функций (например, добавление эффектов взаимодействия/полиномиальных членов/сезонных членов), которые будут улавливать более сложные закономерности в базовых данных.
- Увеличение объема обучающих данных: предоставление большего количества примеров для обучения позволяет модели лучше обобщать данные и становится менее чувствительной к выбросам и шуму.
- Уменьшение мощности регуляризации: при применении слишком мощного метода регуляризации признаки становятся слишком однородными, и модель не отдает приоритет ни одному признаку, что не позволяет ей изучать важные закономерности.
- Настройка гиперпараметров: изначально сложная модель с неподходящими гиперпараметрами может не отражать всю сложность модели. Уделение большего внимания их настройке может быть полезным (например, добавление большего количества деревьев в случайный лес).
- Если все остальные варианты не решают основную проблему, возможно, стоит отказаться от модели и заменить ее на ту, которая способна улавливать более сложные закономерности в данных.
Краткое содержание
Машинное обучение — это не волшебство, а баланс между слишком большим и слишком малым. Переобучение модели — и она становится перфекционистом, неспособным справляться с новыми ситуациями. Недообучение — и она полностью упускает суть.
Лучшие модели работают в оптимальном режиме: хорошо обобщают, достаточно обучаются, но не слишком много . Понимая и управляя переобучением и недообучением, вы не только улучшаете показатели, но и укрепляете доверие, снижаете риски и создаёте решения, которые сохранятся и после окончания обучения.
Ресурсы
[1] https://medium.com/@SyedAbbasT/what-is-overfitting-underfitting-regularization-371b0afa1a2c
[2] https://www.datacamp.com/blog/what-is-overfitting
Источник: towardsdatascience.com



























