← Предыдущая глава |

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

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

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

Общие методы

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

Увеличение количества данных

Один из наиболее эффективных способов избежать переобучения - это просто собрать больше качественных данных. Чтобы понять, насколько эффективно увеличение объема данных для конкретной модели, мы можем построить кривую обучения. Для построения кривой обучения мы обучаем модель на тренировочных сетах разного размера - 10%, 20% и так далее. После каждого этапа обучения мы оцениваем модель на одном и том же фиксированном валидационном сете. Как видно на Рисунке 1.1, точность на валидации увеличивается с ростом размера тренировочной выборки. Это свидетельствует о том, что увеличение объема данных действительно может улучшить качество модели.

Рисунок 1.1: Кривая обучения для тренировочных сетов разного размера
Рисунок 1.1: Кривая обучения для тренировочных сетов разного размера

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

Аугментация данных

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

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

Рисунок 1.2: Различные техники аугментации изображений
Рисунок 1.2: Различные техники аугментации изображений

Аугментация данных - де-факто стандарт для датасетов, содержащих изображения (см. Рисунок 1.2) и текстовые данные. Однако существуют методы, которые можно применять и к табличным данным.

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

Предварительное обучение

Как мы уже обсуждали в Главе 2, self-supervised обучение позволяет использовать большие не размеченные датасеты для предобучения нейронный сетей. Это, в свою очередь, также позволяет уменьшить переобучение на небольших целевых датасетах.

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

Иногда датасет может быть крайне маленьким и не подходить для обучения с учителем, например, если в нем есть всего пара размеченных примеров каждого класса. Если наш классификатор должен работать в условиях, когда сбор дополнительных размеченных данных невозможен, то мы можем воспользоваться few-shot подходом к обучению.

← Предыдущая глава |

Комментарии (0)