Connect with us

ИИ 101

Что такое Переобучение?

mm

Что такое Переобучение?

Когда вы обучаете нейронную сеть, вы должны избегать переобучения. Переобучение – это проблема в машинном обучении и статистике, где модель слишком хорошо учится на закономерностях обучающего набора данных, идеально объясняя обучающий набор данных, но не в состоянии обобщить свою предсказательную силу на другие наборы данных.

Чтобы сказать иначе, в случае модели с переобучением она часто показывает чрезвычайно высокую точность на обучающем наборе данных, но низкую точность на данных, собранных и запущенных через модель в будущем. Это быстрое определение переобучения, но давайте рассмотрим концепцию переобучения более подробно. Давайте посмотрим, как происходит переобучение и как его можно избежать.

Понимание “Фита” и Недообучения

Бывает полезно рассмотреть концепцию недообучения и “фита” в целом, когда обсуждается переобучение. Когда мы обучаем модель, мы пытаемся разработать框架, который способен предсказать природу или класс элементов в наборе данных на основе характеристик, которые описывают эти элементы. Модель должна быть в состоянии объяснить закономерность в наборе данных и предсказать классы будущих точек данных на основе этой закономерности. Чем лучше модель объясняет связь между характеристиками обучающего набора, тем “лучше” наш модель.

Синяя линия представляет предсказания модели, которая недообучается, в то время как зеленая линия представляет модель с лучшим фитом. Фото: Pep Roca via Wikimedia Commons, CC BY SA 3.0, (https://commons.wikimedia.org/wiki/File:Reg_ls_curvil%C3%ADnia.svg)

Модель, которая плохо объясняет связь между характеристиками обучающих данных и, таким образом, не может точно классифицировать будущие примеры данных, недообучает обучающие данные. Если бы вы график предсказанной связи недообучающей модели против фактического пересечения характеристик и меток, предсказания бы отклонились от метки. Если бы у нас был график с фактическими значениями обучающего набора, модель с сильным недообучением бы сильно промахнулась мимо большинства точек данных. Модель с лучшим фитом бы прошла через центр точек данных, с отдельными точками данных, которые были бы немного отклонены от предсказанных значений.

Недообучение часто возникает, когда недостаточно данных для создания точной модели или когда пытаются разработать линейную модель с нелинейными данными. Больше данных или больше характеристик часто помогают уменьшить недообучение.

Итак, почему бы нам не создать модель, которая объясняет каждую точку в обучающем наборе данных идеально? Разве идеальная точность не является желательной? Создание модели, которая слишком хорошо учится на закономерностях обучающих данных, – это то, что вызывает переобучение. Обучающий набор данных и другие, будущие наборы данных, которые вы запускаете через модель, не будут идентичны. Они, скорее всего, будут очень похожи во многих отношениях, но они также будут отличаться ключевыми способами. Следовательно, разработка модели, которая объясняет обучающий набор данных идеально, означает, что вы в конечном итоге получите теорию о связи между характеристиками, которая не обобщается хорошо на другие наборы данных.

Понимание Переобучения

Переобучение возникает, когда модель слишком хорошо учится на деталях внутри обучающего набора данных, что вызывает проблемы у модели при предсказании на внешних данных. Это может произойти, когда модель не только учится характеристикам набора данных, но также учится случайным колебаниям или шуму внутри набора данных, придавая им важность.

Переобучение более вероятно возникает, когда используются нелинейные модели, поскольку они более гибкие при обучении на характеристиках данных. Непараметрические алгоритмы машинного обучения часто имеют различные параметры и методы, которые можно применить для ограничения чувствительности модели к данным и, таким образом, уменьшить переобучение. Например, модели решающих деревьев очень чувствительны к переобучению, но техника, называемая обрезкой, может быть использована для случайного удаления некоторых деталей, которые модель выучила.

Если бы вы график предсказаний модели на оси X и Y, у вас бы была линия предсказаний, которая зигзагообразно изгибается туда и обратно, что отражает тот факт, что модель слишком сильно постаралась объяснить все точки в наборе данных.

Контроль Переобучения

Когда мы обучаем модель, мы идеально хотим, чтобы модель не делала ошибок. Когда производительность модели сходится к правильным предсказаниям на всех точках данных в обучающем наборе, фит становится лучше. Модель с хорошим фитом способна объяснить почти весь обучающий набор данных без переобучения.

Когда модель обучается, ее производительность улучшается со временем. Темп ошибок модели уменьшается по мере прохождения времени обучения, но он уменьшается только до определенной точки. Точка, в которой производительность модели на тестовом наборе начинает снова увеличиваться, обычно является точкой, в которой происходит переобучение. Чтобы получить лучший фит для модели, мы хотим остановить обучение модели в точке наименьших потерь на обучающем наборе, прежде чем ошибка начнет снова увеличиваться. Оптимальная точка остановки может быть определена путем построения графика производительности модели во время обучения и остановки обучения, когда потери минимальны. Однако один риск этого метода контроля переобучения заключается в том, что указание конечной точки для обучения на основе тестовой производительности означает, что тестовые данные становятся частью процесса обучения и теряют свой статус “не тронутых” данных.

Существует несколько способов борьбы с переобучением. Одним из методов уменьшения переобучения является использование тактики ресэмплирования, которая работает путем оценки точности модели. Вы также можете использовать валидационный набор данных в дополнение к тестовому набору и построить график точности обучения против валидационного набора вместо тестового набора. Это сохраняет ваш тестовый набор данных незримым. Популярным методом ресэмплирования является к-фолд кросс-валидация. Этот метод позволяет вам разделить данные на подмножества, на которых обучается модель, а затем производительность модели на этих подмножествах анализируется для оценки того, как модель будет работать на внешних данных.

Использование кросс-валидации – один из лучших способов оценить точность модели на незримых данных, и когда она сочетается с валидационным набором данных, переобучение часто может быть сведено к минимуму.

Блогер и программист с специализацией в Machine Learning и Deep Learning темах. Daniel надеется помочь другим использовать силу ИИ для социального блага.