Нейросети знают ответ на любой вопрос, могут выдать прогноз погоды и даже помочь советом в трудной ситуации. Но почему мы так уверены, что они нас не обманывают? Потому что есть надежные системы проверки, например кросс-валидация. Что это такое и как работает — объясняем на котиках.
Как работает машинное обучение
Machine Learning — процесс создания и обучения компьютерных систем. В обычном программировании компьютер принимает решение согласно прописанному заранее алгоритму. В машинном обучении он действует почти как человек: анализирует данные, прошлый опыт, ищет закономерности и дает наиболее вероятный ответ или прогноз.
Чтобы создавать и обучать компьютерные системы, используют методы математической статистики, матанализа, теорию вероятностей, теории графов. При этом разработчик не дает четкие инструкции, которые учитывают все возможные комбинации. Поиск решений и классификацию объектов машина проводит самостоятельно.
Яркий пример использования машинного обучения — распознавание объектов по камерам видеонаблюдения или по фото.
Что такое кросс-валидация
Не каждая обученная модель будет работать правильно, например предлагать вам действительно интересные посты в соцсетях. Для проверки используют кросс-валидацию в машинном обучении. Этот метод помогает оценить надежность модели и ее работу на новых данных.
Пример кросс-валидации
Представьте, у нас есть данные о длине шерсти и хвостов у 50 кошек. Мы хотим научить ИИ определять породу животных по этим параметрам. Можно разделить данные на несколько частей, например на пять. Тогда первые 40 кошек будут использоваться для обучения (группы Train), а оставшиеся 10 — для контрольного теста (группа Test).
Этот процесс повторяется несколько раз, чтобы каждая из частей выступила и в роли и Train, и в роли Test. В конце выводится средняя оценка. Это помогает понять, как хорошо модель справляется с задачей, а также сравнить результаты нескольких моделей и выбрать лучшую.
Типы кросс-валидации
Выделяют несколько типов перекрестной проверки:
- Валидация на отложенных данных (Hold-Out Cross-Validation)
Самый простой способ: данные делят на тренировочные и тестовые. Первые используются для обучения модели, а тестовые — для оценки производительности.
- K-блочная кросс-валидация (K-Fold Cross-Validation)
Данные делятся на несколько равных частей (К): одна используется для проверки, остальные — для обучения. Процесс повторяется столько раз, на сколько частей мы поделили данные. Каждый блок должен быть использован как тестовый набор.
После окончания обучения результаты тестов приводят к среднему значению. Это позволяет получить более надежную оценку производительности.
- Стратифицированная K-блочная кросс-валидация (Stratified K-Fold Cross-Validation)
Проводится аналогично K-блочной кросс-валидации, но с учетом пропорции классов в каждом блоке. Используется, когда данные имеют несбалансированные классы. Например, 80% примеров относятся к классу A (кошки женского пола), а 20% — к классу B (коты мужского пола). Мы разбиваем данные на группы таким образом, чтобы каждый блок содержал одинаковое количество примеров каждого класса (8 кошек и 2 кота).
- Оставить-P-выборок (Leave-P-Out Cross-Validation)
При этом типе валидации в каждой итерации из датасета удаляется P объектов для тестирования, например два, а остальные используются для обучения. Если P = 2, то 48 примеров мы используем для обучения, а 2 оставим для проверки. Процесс повторяется со всеми возможными комбинациями.
- Кросс-валидация на временных рядах (Time Series Cross-Validation)
В отличие от обычной K-блочной кросс-валидации, где данные делятся случайным образом на обучающие и тестовые группы, здесь учитывается их временная структура. Например, график температуры в Москве с 1780 до 2021 года — на основе этих данных система может дать прогноз, какой будет погода в следующем году или через пять лет.
Главная сложность кросс-валидации на временных рядах в том, что данные не должны пересекаться по времени: тренировочные данные должны идти строго до тестовых. Например, чтобы оценить, как модель предскажет погоду на 2001 год, можно брать для обучения все данные с 1974 до 2000 года.
Главное о кросс-валидации
Cross-Validation — это инструмент в аналитике и машинном обучении, с помощью которого проверяют производительность модели и оценить, насколько хорошо она справляется с поставленной задачей.
При кросс-валидации данные делятся на несколько частей, часть из которых используется обучения, а оставшаяся часть — для проверки. Это позволяет получить надежную оценку, так как для проверки используются данные, которые модель еще не видела.