Введение
Переобучение является серьезной проблемой для моделей машинного обучения. Многие новички в области данных могут стать жертвами этого. Итак, что такое переобучение? Что ж, можно начать с примера. Допустим, мы хотим предсказать, будет ли конкретный продукт продаваться летом, на основе предыдущих данных о продажах аналогичного продукта. Итак, мы начинаем с обучения модели на основе набора данных из 10 000 данных о продажах и их результатах. При использовании этой модели на исходном наборе данных удается предсказать результаты с точностью 99%. Из-за этого модель кажется хорошей. Однако после запуска на новом невидимом наборе данных о продажах точность модели составляет только 50%. Итак, что случилось? Что ж, это означает, что модель плохо обобщает данные обучения на невидимые данные. Эта проблема известна как переобучение, и начинающим специалистам по данным может быть сложно ее преодолеть.
Сигнал против шума
При разработке прогнозной модели «сигналом» будет фактическая базовая закономерность, которую вы пытаетесь изучить на основе данных. «Шум» — это случайность или другие нерелевантные данные из набора данных. Допустим, вы решили смоделировать рост и возраст детей. При достаточно большом размере выборки вы легко сможете найти взаимосвязь между ними. Это будет сигналом.
С другой стороны, если бы мы попытались создать модель с размером выборки только одной местной школы, взаимосвязь могла бы быть не такой очевидной. Это происходит из-за выбросов, таких как ребенок с высокими родителями, и других случайностей. Шум вызывает помехи в сигналах. Хорошо функционирующий алгоритм машинного обучения должен будет отделять сигнал от шума. Если алгоритм имеет слишком много входных функций или если он не регуляризован должным образом, он может в конечном итоге запомнить шум вместо поиска сигнала. Это приведет к тому, что модель будет делать прогнозы на основе шума, а не сигнала, что делает ее очень хорошей для обучающих данных, но не работает для новых и невидимых данных. Это делает эту модель переобученной.
Читайте также: Как искусственный интеллект выбирает рекламу, которую вы видите
Качество подгонки и неподгонка
Прежде чем рассматривать переобучение и его аналог недооснащения, нам нужно посмотреть, что подразумевается под степенью соответствия. Степень соответствия — это статистический термин, который используется для определения того, насколько точно прогнозируемые значения модели соответствуют истинным наблюдаемым значениям. Модель будет считаться переподходящей, если она хорошо соответствует обучающим данным, но плохо соответствует новым и ранее неизвестным наборам данных.
Теперь, чтобы лучше понять переобучение, мы можем рассмотреть противоположную проблему, известную как недостаточное оснащение. В отличие от переоснащения, недостаточное оснащение происходит, когда созданная модель слишком проста. Это означает, что он содержит слишком мало функций и слишком сильно регуляризован, что делает его негибким при попытке изучить набор данных.
Существует известная концепция под названием «Компромисс смещения-дисперсии», которая гласит, что простые ученики, как правило, имеют меньшую дисперсию в своих прогнозах, но они будут более склонны к неверным результатам. С другой стороны, сложные ученики будут иметь большую вариативность в своих прогнозах. Имейте в виду, что дисперсия — это просто мера того, насколько каждое число в наборе данных отличается от среднего и от любого другого числа в наборе данных. Низкая дисперсия идеальна, поскольку означает, что вы можете лучше прогнозировать информацию о наборе данных на основе выборочных данных. Высокая дисперсия означает, что значения менее последовательны, поэтому делать прогнозы сложнее.
И смещение, и дисперсия используются как формы ошибки прогнозирования в машинном обучении и могут влиять друг на друга. Это означает, что если вы попытаетесь уменьшить ошибку из-за систематической ошибки, это может привести к увеличению ошибки из-за дисперсии. Эта обратная зависимость является ключевой концепцией, когда речь идет об алгоритмах машинного обучения.
Обнаружение переобучения в машинном обучении
Теперь, когда мы знаем о переоснащении, как нам его обнаружить? Ну, краткий ответ: мы не можем. Это связано с тем, что мы не знаем, насколько хорошо наша модель будет работать на новых данных, пока не протестируем ее. Чтобы попытаться решить эту проблему, ученые, работающие с данными, разделят исходный набор данных на обучающий и тестовый набор. Обучающий набор используется для обучения созданной модели. Тестовый набор будет представлять собой новые невидимые данные, на которых мы сможем использовать нашу модель.
С помощью этого метода мы можем получить общее представление о том, насколько хорошо наша модель будет работать на новых данных. Если наша модель на обучающем наборе работает намного лучше, чем на тестовом, то существует высокая вероятность того, что она переоснащена.
Например, если созданная нами модель имела точность 99 процентов на обучающих данных, но точность только на 50 процентов на тестовых данных, то можно предположить, что наша модель переобучена. Другой возможный метод обнаружения переобучения — начать с очень простой модели. Имейте в виду, что простая модель будет иметь высокую погрешность и низкую дисперсию. Затем эту простую модель можно использовать в качестве ориентира при использовании более сложных алгоритмов. Эта идея чаще всего используется в библиотеке Python SciKit-Learn.
Предотвращение переобучения в машинном обучении
Теперь, когда у нас есть некоторые идеи о том, как определить, когда наша модель переобучена, это все еще не решает проблему, как предотвратить это в первую очередь. К счастью, есть несколько способов предотвратить переобучение.
Самый популярный из них известен как перекрестная проверка. Основная идея перекрестной проверки состоит в том, чтобы использовать исходные данные обучения для создания нескольких разделений мини-тестов. Затем эти разделения используются для настройки создаваемой модели. При стандартной перекрестной проверке в k-кратном порядке мы разделяем данные на складки. Складки можно рассматривать как подмножества данных. При k-кратной перекрестной проверке будет k подмножеств. После этого алгоритм обучается на k-1 складках, а оставшиеся складки используются в качестве тестового набора. Приведенный здесь тестовый набор иногда также называют «сгибом удержания».
Перекрестная проверка также позволяет настраивать гиперпараметры только с использованием исходного обучающего набора. Имейте в виду, что гиперпараметры в контексте машинного обучения относятся к параметру, значение которого используется для управления процессом обучения. Имея возможность настраивать гиперпараметры, вы сможете сохранить набор тестов как невидимые данные при выборе окончательной модели. Теперь давайте разберем выбор гиперпараметров на пошаговый метод для облегчения понимания, поскольку это важно.
Перекрестная проверка выбора гиперпараметров
В следующем примере мы будем выполнять 10-кратную перекрестную проверку. Этот процесс состоит из семи этапов, которые можно увидеть ниже:
- Разделите тренировочные данные на 10 частей.
- Выберите набор гиперпараметров из всех наборов гиперпараметров, которые вы хотите рассмотреть.
- Когда вы выбрали набор гиперпараметров, обучите свою модель с ними, но только на первых 9 сгибах.
- Оцените модель на 10й
- Повторите шаги 3 и 4, но каждый раз держите новую складку.
- Суммируйте свои результаты по всем 10 показателям. Это то, что вы будете использовать в качестве показателя производительности для выбранного вами набора гиперпараметров.
- Повторите шаги со 2 по 6 для всех выбранных вами наборов гиперпараметров.
Читайте также: Роль искусственного интеллекта в транспорте.
Заключение
Переобучение является серьезной проблемой в машинное обучение мир. Однако перекрестная проверка — очень умный способ обойти эту проблему, повторно используя обучающие данные, разделяя их на части и переключаясь между ними. Самая популярная форма известна как k-кратная перекрестная проверка. Чтобы по-настоящему освоить перекрестную проверку, я бы порекомендовал попрактиковаться с ней и посмотреть, как она используется для решения реальных проблем. Спасибо, что прочитали эту статью.
Рекомендации
Браунли, Джейсон. Лучшее глубокое обучение: тренируйтесь быстрее, уменьшайте переобучение и делайте более точные прогнозы. Мастерство машинного обучения, 2018.
де Прадо, Маркос Лопес. Достижения в области финансового машинного обучения. Джон Уайли и сыновья, 2018.
Кун, Макс и Кьелл Джонсон. Разработка функций и выбор: практический подход к прогнозным моделям. ЦРК Пресс, 2019.
ВандерПлас, Джейк. Справочник по Python Data Science: основные инструменты для работы с данными. «О’Рейли Медиа, Инк.», 2016 г.