Валидация модели
Материал из MachineLearning.
Валидация моделей — совокупность методов оценки качества модели на данных, которые не использовались непосредственно при её обучении. В машинном обучении валидация применяется для выбора алгоритма, настройки гиперпараметров и оценки способности модели работать с новыми объектами.
Необходимость валидации связана с тем, что малая ошибка на обучающей выборке не гарантирует хорошего качества после внедрения. Модель может запомнить случайные особенности данных и показать высокий результат только на уже известных примерах. Такое явление называется переобучением.
Результат валидации не является доказательством универсальной пригодности модели. Он зависит от состава данных, способа их разделения и выбранной метрики качества.
Основная задача
Пусть объекты и ответы
порождаются неизвестным распределением
. Модель
оценивается по ожидаемому риску
где — функция потерь.
Распределение неизвестно, поэтому истинный риск обычно невозможно вычислить. Вместо него используется средняя ошибка на конечной выборке:
Если ошибка вычисляется на данных обучения, её значение обычно оказывается заниженным, поскольку параметры модели подбирались именно по этим объектам.
Валидационная ошибка вычисляется на данных, не участвовавших в обучении параметров. Она лучше характеризует обобщающую способность, но остаётся случайной величиной и может изменяться при другом разбиении данных.
Валидация решает две разные задачи:
- выбор модели и гиперпараметров;
- оценка качества уже выбранной процедуры.
Использование одной и той же выборки для обеих задач приводит к оптимистическому смещению оценки.[1]
Обобщающая способность
Обобщающая способность — способность модели сохранять качество на объектах, не входивших в обучающую выборку.
Обычно предполагается, что обучающие и будущие данные получены из одного распределения. На практике это условие часто нарушается: данные могут зависеть от времени, относиться к одним и тем же пользователям или поступать из разных организаций.
Поэтому схема валидации должна соответствовать реальному сценарию применения. Если модель предназначена для новых пациентов, записи одного пациента нельзя распределять между обучением и проверкой. Если требуется прогноз будущего, контрольные данные должны быть получены позже обучающих.
Переобучение и недообучение
Переобучение возникает, когда модель описывает не только устойчивые закономерности, но и случайный шум. Его типичный признак — малая обучающая ошибка при значительно большей валидационной.
Недообучение означает, что модель не способна описать существенные зависимости. В этом случае высокими остаются обе ошибки.
Переобучение зависит не только от сложности модели, но и от объёма данных, качества признаков, уровня шума и количества проверенных конфигураций.
Разделение данных
В классической схеме данные делятся на три части.
Обучающая выборка используется для оценки параметров модели.
Валидационная выборка применяется для выбора алгоритма, признаков и гиперпараметров.
Тестовая выборка служит для итоговой оценки уже выбранной процедуры.
Если результат на тестовой выборке влияет на изменение модели, эта выборка фактически становится валидационной и перестаёт обеспечивать независимую оценку.
После завершения настройки модель может быть повторно обучена на объединении обучающей и валидационной частей. Тестовые данные при этом не используются.
Валидация на удержанной выборке
Валидация на удержанной выборке, или hold-out validation, предполагает однократное разделение данных на обучающую и контрольную части.
Преимущество метода состоит в низкой вычислительной стоимости: каждая конфигурация обучается один раз.
Основное ограничение — зависимость результата от конкретного разбиения. При малом объёме данных различные разделения могут давать заметно отличающиеся оценки.
Метод обычно применяется, когда данных достаточно много и обе части остаются репрезентативными.
Универсального соотношения между обучающей и контрольной выборками не существует. Важны не только доли, но и абсолютное число объектов, а в классификации — количество примеров каждого класса.
Перекрёстная проверка
Перекрёстная проверка, или cross-validation, многократно разделяет данные на обучающие и контрольные части. Разные объекты поочерёдно используются для проверки, что позволяет эффективнее использовать ограниченную выборку.
k-блочная перекрёстная проверка
При -блочной перекрёстной проверке выборка делится на
непересекающихся блоков:
На каждом шаге один блок используется для проверки, а остальные — для обучения. Итоговая ошибка равна среднему значению по блокам:
Часто применяются значения или
, обеспечивающие компромисс между устойчивостью оценки и вычислительной стоимостью.[1]
Стратификация
При стратифицированной перекрёстной проверке в каждом блоке сохраняются приблизительно одинаковые доли классов.
Стратификация особенно важна при несбалансированной классификации, когда редкий класс может отсутствовать в отдельных блоках.
Она не устраняет зависимость между объектами и не защищает от утечки данных.
Повторная перекрёстная проверка
При повторной проверке разбиение выполняется несколько раз с различными случайными состояниями.
Метод позволяет оценить чувствительность результата к конкретному разделению, но увеличивает вычислительную стоимость.
Результаты разных повторений не являются полностью независимыми, поскольку используются одни и те же исходные данные.
Leave-One-Out
При Leave-One-Out Cross-Validation каждый объект поочерёдно используется как единственный контрольный пример:
Метод использует почти всю выборку для каждого обучения, но требует запусков и может быть чувствителен к отдельным объектам.
Он применяется главным образом при очень малом числе независимых наблюдений.
Групповая валидация
Во многих задачах отдельные строки таблицы не являются независимыми. Несколько записей могут относиться к одному пользователю, пациенту, устройству, документу или видеоролику.
Если объекты одной группы попадают одновременно в обучение и валидацию, модель может запомнить особенности группы, что приводит к завышенной оценке.
При Group K-Fold все объекты одной группы помещаются в один блок. Обучающая и контрольная части не содержат общих групп.
Такая схема оценивает способность модели работать с новыми группами, а не только с новыми записями уже известных групп.
Валидация временных данных
Для временных данных случайное перемешивание обычно некорректно, поскольку модель может получить доступ к информации из будущего.
Должно выполняться условие:
Здесь обозначает моменты времени, относящиеся к обучающей выборке, а
— моменты времени, относящиеся к валидационной выборке.
При простом временном разделении ранние данные используются для обучения, а более поздние — для проверки.
Вложенная перекрёстная проверка
При активном подборе гиперпараметров обычная перекрёстная проверка может давать заниженную ошибку. Среди большого числа конфигураций выбирается не только сильная модель, но и модель, которой случайно подошло конкретное разбиение.
Вложенная перекрёстная проверка содержит два уровня:
- внутренний цикл выбирает гиперпараметры;
- внешний цикл оценивает всю процедуру выбора.
На каждом внешнем шаге один блок откладывается. На оставшихся данных проводится внутренний подбор, после чего выбранная модель проверяется на внешнем блоке.
Метод особенно полезен при малой выборке и отсутствии отдельного тестового набора.[1]
Главный недостаток — высокая вычислительная стоимость.
Бутстрэп и out-of-bag-оценка
Бутстрэп формирует выборки того же размера путём случайного выбора объектов с возвращением.[1]
Вероятность того, что конкретный объект не попадёт в бутстрэп-выборку, приблизительно равна
Следовательно, одна такая выборка содержит около 63,2 % различных объектов исходного набора.
Объекты, не вошедшие в конкретную выборку, называются out-of-bag-объектами и могут использоваться для проверки модели.
Этот подход применяется, например, в случайных лесах.[1]
Бутстрэп также используется для оценки неопределённости и построения доверительных интервалов.
Валидация полного конвейера
Валидации подлежит весь процесс обработки данных:
- исходные данные → предварительная обработка → признаки → модель
Все операции, параметры которых оцениваются по данным, должны выполняться отдельно внутри каждой обучающей части. К ним относятся:
- заполнение пропусков;
- нормализация;
- кодирование категорий;
- отбор признаков;
- уменьшение размерности;
- балансировка классов;
- выбор порога классификации.
Если, например, среднее значение признака вычислено по всей выборке до разделения, контрольные данные уже повлияли на обучение.
Утечка данных
Утечка данных — попадание в обучение информации, которая не должна быть доступна при реальном прогнозировании.
Основные виды утечки:
- признак прямо или косвенно содержит правильный ответ;
- одинаковые или почти одинаковые объекты попадают в разные части;
- обработка признаков выполняется до разделения;
- модель использует сведения из будущего.
Утечка приводит к завышенной оценке качества и может сделать модель непригодной после внедрения.
Для её предотвращения необходимо определить момент прогнозирования, допустимый набор информации и корректную единицу разделения.
Выбор гиперпараметров
Пусть обозначает конфигурацию гиперпараметров. Выбирается значение
Чем больше конфигураций проверяется, тем выше вероятность переобучения на валидационной выборке.
Для уменьшения смещения применяются независимая тестовая выборка, вложенная перекрёстная проверка и ограничение пространства поиска.
В системах AutoML эта проблема особенно заметна, поскольку автоматически проверяется большое число моделей и преобразований.
Метрики
Схема валидации определяет, на каких данных измеряется качество, а метрика — что именно измеряется.
Выбор метрики должен соответствовать задаче. Например, доля правильных ответов может быть малоинформативна при сильном дисбалансе классов.
Если порог классификации подбирается по данным, он также считается гиперпараметром и должен настраиваться внутри валидационного цикла.
Для некоторых метрик результат зависит от способа агрегирования. Можно усреднить значения по блокам либо объединить вневыборочные прогнозы и вычислить метрику один раз. Выбранный способ должен быть указан.
Статистическая неопределённость
Валидационная оценка зависит от случайного состава данных, разделения на блоки и случайности обучения.
Разброс метрик по блокам полезен для диагностики, но эти значения не являются независимыми, поскольку обучающие множества перекрываются.
Не существует универсальной несмещённой оценки дисперсии перекрёстной проверки, основанной только на ошибках её блоков.[1]
Для оценки неопределённости используются повторные разбиения, бутстрэп и независимые тестовые выборки.
Доверительный интервал не устраняет систематическое смещение, вызванное утечкой данных или нерепрезентативной выборкой.
Воспроизводимость
Для воспроизводимости необходимо фиксировать:
- версию данных;
- правила разделения;
- индексы блоков;
- случайные состояния;
- этапы обработки;
- пространство гиперпараметров;
- способ вычисления метрики.
Сохранение самих индексов разделения надёжнее, чем фиксация только начального состояния генератора случайных чисел.
Если модель чувствительна к инициализации, одного запуска недостаточно для оценки устойчивости.
Особенности отдельных задач
Несбалансированная классификация
При редком положительном классе используется стратификация.
Балансировка и генерация синтетических объектов выполняются только внутри обучающей части.
Если примеров редкого класса слишком мало, оценка качества остаётся неопределённой независимо от выбранной схемы.
Регрессия
Для регрессии иногда применяется приближённая стратификация по интервалам целевой переменной, но она не является обязательной.
При наличии выбросов следует анализировать не только среднюю ошибку, но и распределение отдельных отклонений.
Компьютерное зрение
Кадры одного видео, фрагменты одного изображения и снимки одного объекта должны находиться в одной части данных.
Единицей разделения может быть видеоролик, сцена, пациент или физический объект.
Обработка текстов
Дубликаты, тексты одного автора и документы из одной временной серии могут создавать зависимость между выборками.
Для оценки переноса на новых авторов применяется групповое разделение, для будущих документов — временное.
Медицинские данные
Все обследования одного пациента должны находиться в одной части.
Проверка на данных другой клиники часто даёт более реалистичную оценку переносимости, чем случайное разделение внутри одной базы.
Внутренняя и внешняя валидация
Внутренняя валидация использует разделение одного набора данных.
Внешняя валидация проводится на независимо собранных данных: в другой организации, в другом регионе или в более поздний период.
Внешняя проверка лучше выявляет зависимость модели от конкретного источника, но также не доказывает универсальность.
Сдвиг распределения
Валидация предполагает, что контрольные данные похожи на будущие.
Если распределение признаков, классов или способов сбора данных изменяется, оценка может перестать отражать реальное качество.
При ожидаемом изменении схема валидации должна его воспроизводить. Для временного сдвига используется проверка на более позднем периоде, для организационного — на данных другой организации.
Типичные ошибки
К наиболее распространённым ошибкам относятся:
- оценка модели на обучающих данных;
- использование тестовой выборки при настройке;
- обработка всей выборки до разделения;
- разделение связанных объектов;
- перемешивание временных данных;
- сравнение моделей на разных блоках;
- выбор схемы по максимальной метрике;
- сообщение только среднего результата без анализа разброса.
Эти ошибки приводят к завышенной или плохо интерпретируемой оценке качества.
Практический выбор схемы
При большом числе независимых объектов обычно достаточно hold-out-разделения.
При малой или средней выборке применяется -блочная перекрёстная проверка.
Для несбалансированной классификации используется стратификация.
Если строки относятся к одним и тем же сущностям, требуется групповое разделение.
Для временных данных применяется последовательная проверка без перемешивания.
При активном подборе гиперпараметров и отсутствии независимого тестового набора используется вложенная перекрёстная проверка.
Корректной считается схема, наиболее близко воспроизводящая способ получения новых данных после внедрения.
Ограничения интерпретации
Валидационная метрика не устанавливает истинность модели и не доказывает правильность описываемого механизма.
Высокое качество означает только то, что модель хорошо решает выбранную задачу на данных определённого происхождения согласно выбранной метрике.
Валидация также не оценивает автоматически безопасность, справедливость или практическую полезность системы.
Если исходная выборка не представляет целевую совокупность, корректная процедура разделения не устраняет это ограничение.
Основное эпистемологическое ограничение валидации состоит в том, что неизвестное будущее заменяется конечным набором уже наблюдавшихся примеров. Такая оценка необходима, но не является гарантией будущего качества.
См. также
- Кросс-валидация
- Переобучение
- Обобщающая способность
- Функция потерь
- Матрица ошибок
- Регуляризация
- Выбор модели
- Сдвиг распределения
Примечания
Литература
- Bengio Y., Grandvalet Y. No Unbiased Estimator of the Variance of K-Fold Cross-Validation // Journal of Machine Learning Research. 2004. Vol. 5. P. 1089–1105.
- Bishop C. M. Pattern Recognition and Machine Learning. New York: Springer, 2006.
- Cawley G. C., Talbot N. L. C. On Over-fitting in Model Selection and Subsequent Selection Bias in Performance Evaluation // Journal of Machine Learning Research. 2010. Vol. 11. P. 2079–2107.
- Efron B., Tibshirani R. J. An Introduction to the Bootstrap. New York: Chapman & Hall, 1993.
- Hastie T., Tibshirani R., Friedman J. The Elements of Statistical Learning. 2nd ed. New York: Springer, 2009.
- Kohavi R. A Study of Cross-Validation and Bootstrap for Accuracy Estimation and Model Selection // Proceedings of IJCAI. 1995. P. 1137–1143.
- Vapnik V. N. Statistical Learning Theory. New York: Wiley, 1998.

