Тема 3. Машинное обучение: постановка задачи
В теме 2 мы рассмотрели методы, в которых поведение системы задаётся вручную — алгоритмы поиска и правила вывода. У такого подхода обнаружились принципиальные ограничения: эксперт не всегда способен сформулировать своё знание в виде правил, базы знаний дороги в сопровождении, а закономерности в данных вроде изображений или текстов не сводятся к десяткам продукций. Машинное обучение даёт другой ответ: вместо того чтобы записывать правила, мы показываем системе примеры и поручаем извлечь закономерность самостоятельно.
В этой теме мы формализуем, что означает «обучить модель», как разделить данные для честной оценки и почему любой проект машинного обучения начинается не с глубокой нейронной сети, а с простейшей базовой модели. Содержание темы — это методологический каркас, на который будут опираться все следующие темы курса: от классификации и регрессии до оценки качества и ансамблевых методов.
Что такое машинное обучение
Определение и ключевая идея
Классическое определение машинного обучения принадлежит Тому Митчеллу 1: программа обучается на опыте применительно к классу задач и мере качества , если её показатель на задачах улучшается с накоплением опыта . За этой суховатой формулировкой стоит простая мысль: алгоритм не «знает», как решать задачу, и сам по себе на новой задаче работает плохо; но при наличии данных и измеримой меры качества он подбирает свои внутренние параметры так, чтобы эту меру повысить.
Сам термин machine learning появился ещё в 1959 году у А. Самуэля, разработавшего программу игры в шашки, которая улучшала свою игру за счёт самонастройки оценочной функции 2. Программа Самуэля играла лучше своего автора — и именно это, а не победа над человеком как таковая, сделало работу классической: впервые система с фиксированной архитектурой повышала качество по мере накопления опыта, без вмешательства программиста.
Различие между классическим программированием и машинным обучением удобно представить как разные потоки данных. В классическом программировании входами являются данные и правила, выходом — ответы: программист задаёт логику, машина выполняет вычисление. В машинном обучении вход — данные и желаемые ответы, выход — правило (модель), которое впоследствии можно применять к новым данным. Это переворачивание потока — концептуальный сдвиг, обозначенный ещё в 1990-х статистическим поворотом в ИИ.
Перейдём к формальной постановке для самого распространённого случая — обучения с учителем. Пусть — пространство объектов, — пространство ответов. Имеется неизвестное распределение над ; из него независимо извлечена обучающая выборка (англ. training set) . Задача — построить функцию , которая хорошо предсказывает по не только на обучающей выборке, но и на новых объектах из того же распределения. Мера того, насколько плохо согласуется с истинным , задаётся функцией потерь (англ. loss function) . Для классификации типичный выбор — нулевая потеря ; для регрессии — квадратичная .
Качество модели на распределении в целом описывается истинным риском (англ. true risk) — математическим ожиданием потерь . Распределение нам недоступно, поэтому на практике минимизируется эмпирический риск на обучающей выборке: . Это переход от истинного риска к его оценке по конечной выборке — источник почти всех проблем машинного обучения: модель, идеально подогнанная под обучающие данные, может оказаться катастрофически плохой на новых. К этой коллизии мы вернёмся в разделе про смещение и разброс.
Параметры модели подбираются в ходе обучения (англ. fitting) — оптимизационной процедуры, минимизирующей эмпирический риск или его регуляризованный вариант. Выбор семейства моделей (линейная регрессия, дерево решений, нейронная сеть) определяет, какие зависимости в принципе возможны; обучение определяет конкретные значения параметров; а оценка качества — насколько модель полезна. Эти три шага — выбор семейства, обучение, оценка — образуют структуру любого учебника по машинному обучению, в том числе классических 34.
Типы задач машинного обучения
В теме 1 мы упоминали три большие парадигмы — обучение с учителем, без учителя и с подкреплением. Здесь сосредоточимся на их различиях с точки зрения формальной постановки.
Обучение с учителем предполагает, что для каждого объекта обучающей выборки известен «правильный» ответ. По характеру ответа задача делится на две: классификацию (англ. classification), где принимает значения из конечного множества меток (например, «спам» / «не спам»), и регрессию (англ. regression), где — вещественное число (цена квартиры, температура завтра). Хотя алгоритмы для классификации и регрессии часто разные, общая методологическая рамка — выборка, функция потерь, оценка обобщающей способности — для них совпадает. Темам 4 и 5 курса посвящены, соответственно, классификации и регрессии.
Обучение без учителя работает с выборкой , в которой ответы отсутствуют. Цель — обнаружить структуру: разбить объекты на группы (кластеризация), снизить размерность представления, выявить аномалии. Поскольку «правильного» ответа нет, оценка качества опирается на косвенные критерии: компактность кластеров, доля сохранённой дисперсии, интерпретируемость найденных групп. Этой парадигме посвящена тема 6.
Обучение с подкреплением описывает агента, который взаимодействует со средой: совершает действия, получает в ответ числовое вознаграждение и со временем подбирает стратегию, максимизирующую суммарную награду в долгосрочной перспективе. Постановка фундаментально отличается тем, что обучающие данные не существуют заранее — они порождаются взаимодействием самого агента со средой. В рамках настоящего курса обучение с подкреплением затрагивается обзорно; систематическое изложение — в 5.
На границах этих трёх парадигм возникают гибриды. Полу-учитель комбинирует малую размеченную выборку с большой неразмеченной — полезен, когда разметка дорога, а сырых данных много. Самообучение формирует учительский сигнал из самих данных, без участия аннотатора: например, языковая модель предсказывает следующее слово, для чего разметка не нужна — продолжение текста уже есть в нём самом. Именно на самообучении построены современные большие модели; для нас важно, что методологически они всё ещё подпадают под рамку «обучающая выборка → функция потерь → оптимизация», просто способ получения сигнала экзотический.
Методология обучения и оценки
Разделение данных
Главный вопрос в оценке модели — насколько хорошо она будет работать на данных, которых не видела при обучении. Иногда говорят про «обобщающую способность», иногда — про «генерализацию». Прямой способ её измерить — отложить часть данных до обучения и не показывать модели до момента финальной проверки.
Стандартная схема — разделить размеченные данные на три непересекающиеся части. Обучающая выборка используется для подгонки параметров модели. Валидационная выборка (англ. validation set) нужна для подбора гиперпараметров — настроек, которые не входят в число обучаемых параметров: глубина дерева, коэффициент регуляризации, число соседей в kNN, скорость обучения и так далее. Тестовая выборка (англ. test set) — финальная оценка качества на данных, которые модель не видела ни на одном этапе.
Принципиально важно понимать, чем валидационная выборка отличается от тестовой. Если по результатам валидации мы выбрали гиперпараметры, мы «подсмотрели» в неё — и метрика на валидационной выборке уже завышена относительно того, что будет на действительно новых данных. Поэтому финальное число, которое сообщают заказчику или включают в отчёт, всегда измеряется на тестовой выборке, и трогать её до финального запуска нельзя. Этот принцип кажется простым, но соблюсти его дисциплинированно труднее, чем кажется: на собрании по проекту легко поддаться соблазну «давайте посмотрим, что будет на тесте» — после этого тест перестаёт быть тестом.
Типичные пропорции — 60 / 20 / 20 или 70 / 15 / 15 для умеренных по размеру датасетов. Для очень больших датасетов абсолютное число объектов в тестовой выборке важнее доли — десяти тысяч примеров обычно достаточно, даже если это 0.1% всех данных. Для маленьких датасетов выделение отдельной валидационной выборки расточительно, и его заменяет кросс-валидация (теме 7).
При классификации с несбалансированными классами случайное разделение может оставить в тестовой выборке непредставительное число объектов миноритарного класса. Решение — стратификация (англ. stratification): разбиение, сохраняющее пропорции классов в каждой части.
Самый коварный артефакт нечестной оценки — утечка данных (англ. data leakage) 6. Утечкой называется любое попадание в обучающую выборку информации, которая в реальной эксплуатации модели недоступна или появляется позже целевого момента предсказания. Несколько типичных сценариев.
Первый — временная утечка. Если объекты выборки имеют временную привязку (транзакции, медицинские записи, события сенсоров), случайное разделение перемешивает прошлое и будущее. Модель, обучившаяся на будущих данных и проверенная на прошлых, может показать прекрасные метрики, которые рассыплются в продакшене. В таких задачах разбиение делают по времени: всё, что раньше даты , — в обучении, всё, что позже, — в тесте.
Второй — утечка целевой переменной (англ. target leakage). В обучающие признаки случайно попадает информация, выводимая из самого ответа: например, в задаче «предсказать факт оттока клиента» в признаки попадает «дата ухода клиента», заполняемая только для уже ушедших. Модель учится тривиально и идеально, но в реальной задаче этого признака нет в момент предсказания.
Третий — утечка через нормализацию. Если масштабирование или иную предобработку рассчитать на полной выборке до разделения, статистики (среднее, стандартное отклонение) уже включают информацию из тестовой части. Корректный приём — оценивать параметры предобработки только на обучающей выборке и применять их к валидации и тесту.
Утечка коварна тем, что обнаруживается чаще всего постфактум, после внедрения модели в продакшен и расхождения её фактического качества с ожидаемым. Аккуратное разделение данных — простая дисциплина с большим практическим эффектом.
Компромисс смещения и разброса
Сделать так, чтобы модель хорошо работала на обучающей выборке, сравнительно несложно: достаточно взять достаточно гибкое семейство — глубокое дерево или нейронную сеть со многими параметрами — и подогнать его под обучающие данные. Проблема в том, что хорошее качество на обучении не означает хорошего качества на новых данных. Этот разрыв между обучающей и тестовой ошибкой имеет строгое математическое описание.
Рассмотрим задачу регрессии с истинной зависимостью , где — шум с нулевым средним и дисперсией . Пусть — модель, обученная на выборке . Ожидаемая квадратичная ошибка в точке по всем возможным выборкам раскладывается на три слагаемых:
Эта декомпозиция, известная как разложение на смещение и разброс (англ. bias-variance decomposition) 7, даёт принципиальную картину источников ошибки.
Смещение (англ. bias) — систематическое отклонение средних предсказаний модели от истинной зависимости. Высокое смещение возникает, когда модель слишком проста для данных: линейная регрессия на нелинейной зависимости даст низкое смещение в линейных областях и высокое — на нелинейных участках. Это недообучение (англ. underfitting) — модель не способна воспроизвести структуру данных даже при их избытке.
Разброс (англ. variance) — чувствительность модели к составу обучающей выборки. Высокий разброс означает, что при небольшом изменении модель меняется сильно. Это переобучение (англ. overfitting) — модель запоминает обучающие примеры, в том числе их случайные особенности и шум, и теряет способность обобщать.
Шум — неустранимая часть ошибки, обусловленная случайностью данных. Никакая модель не может предсказать точнее, чем позволяет случайная компонента ; задача — приблизиться к этой границе, а не пытаться её преодолеть.
С точки зрения сложности модели смещение и разброс ведут себя противоположно. Слишком простая модель имеет высокое смещение и низкий разброс; слишком сложная — низкое смещение, но высокий разброс. Тестовая ошибка как сумма этих компонент имеет минимум при некоторой промежуточной сложности — это знаменитая «U-образная» зависимость, лежащая в основе всей методологии регуляризации.
Практический способ управлять этим компромиссом — регуляризация (англ. regularization) 4. К минимизируемому функционалу добавляется штраф за сложность модели, например за величину её параметров: вместо оптимизируется , где — мера сложности (сумма квадратов коэффициентов в ridge, сумма модулей в lasso, число параметров в информационных критериях). Коэффициент балансирует подгонку и сложность: при регуляризации нет, при больших модель «зажата». Подбор — отдельная задача, решаемая обычно через валидационную выборку или кросс-валидацию. Конкретные регуляризованные модели мы рассмотрим в теме 5.
Стоит оговориться, что классическая U-образная картина — это идеализация. На современных глубоких сетях с миллионами и миллиардами параметров наблюдается явление двойного спуска (англ. double descent) 8: при дальнейшем увеличении сложности после первого минимума ошибка снова падает. Объяснение этого феномена выходит за рамки темы; для нас важно, что классический компромисс смещения и разброса — рабочая модель для большинства практических задач, но не универсальный закон.
Построение базовой модели
Понятие baseline
Прежде чем браться за сложные модели — градиентный бустинг, глубокие сети, ансамбли — в задаче машинного обучения строят базовую модель (англ. baseline). Это простейшая стратегия предсказания, не предполагающая обучения как такового или обучения тривиального. Её роль — задать точку отсчёта: любая более сложная модель должна давать качество существенно лучше базового, иначе её использование не оправдано.
Простейшие стратегии baseline зависят от типа задачи. В классификации стандартный выбор — предсказание мажоритарного класса (англ. most frequent): всем объектам тестовой выборки приписывается тот класс, который чаще всего встречается в обучающей. Альтернатива — стратифицированный случайный выбор, при котором класс назначается с вероятностью, пропорциональной его доле. В регрессии аналог — предсказание среднего (или медианы) целевой переменной обучающей выборки.
Эти стратегии выглядят примитивно, но именно их простота делает их полезными. Если построенная классификация на медицинских данных даёт 95% accuracy, а baseline-стратегия «всем здоров» даёт 94% (поскольку класс «болен» встречается у 6% пациентов), то реальный вклад модели — 1 процентный пункт; и тогда уместно спросить, стоит ли он усилий по обучению, сопровождению и валидации. Без baseline это сравнение невозможно: показатель «95% точности» сам по себе ни о чём не говорит.
Помимо тривиального baseline, полезно строить и разумный baseline — простую модель, реалистично пригодную к использованию. В классификации это часто логистическая регрессия на сырых или слабо обработанных признаках; в регрессии — линейная регрессия. Если градиентный бустинг даёт 0.92 ROC AUC, а логистическая регрессия — 0.90, прирост качества от перехода к сложной модели надо взвешивать с её стоимостью: обучение бустинга дольше, интерпретируемость хуже, риск переобучения выше. Этот разговор — сколько мы готовы платить за процент точности — содержательнее любого спора об «лучшей модели вообще». На него прямо указывает классический обзор практических уроков машинного обучения 9, где правило «попробуй простое прежде сложного» названо одним из самых стабильных.
Критерии перехода от baseline к более сложным методам — это разница метрик, превышающая шум их оценки. Если baseline даёт accuracy 0.85 ± 0.02 (среднее ± стандартное отклонение по кросс-валидации), а более сложная модель — 0.86 ± 0.02, то их доверительные интервалы перекрываются и переход неоправдан; если 0.92 ± 0.02 — переход осмыслен. Методам корректной оценки доверительных интервалов и сравнения моделей посвящена тема 7.
Связь с подготовкой данных
В курсе «Введение в анализ данных» (ВвАД) обсуждались методы подготовки признакового пространства: очистка от пропусков, обработка выбросов, кодирование категориальных признаков, масштабирование. Эта работа — фундамент машинного обучения: качество модели определяется качеством признаков не меньше, чем выбором алгоритма.
Принцип «мусор на входе — мусор на выходе» (англ. garbage in, garbage out) применим к машинному обучению с двойной силой. Алгоритм не способен компенсировать неинформативные признаки или системные ошибки в разметке — он лишь подберёт параметры, максимально согласующиеся с тем, что ему дали. Если в разметке систематически путаются два класса, модель воспроизведёт эту путаницу. Если важный для задачи признак не зафиксирован, никакая глубокая сеть его не вычислит из доступных.
Практический вывод — на начальных этапах проекта машинного обучения время, потраченное на разведку данных, проверку разметки и инженерию признаков, оплачивается лучше, чем время, потраченное на подбор архитектур. Эту мысль регулярно повторяет практическая литература по ML 10, и она же отражена в правиле «80% работы дата-сайентиста — это подготовка данных».
В лабораторной работе по этой теме мы воспользуемся датасетом, подготовленным в курсе ВвАД, и построим на нём базовую модель. Никакой сложной алгоритмики — задача в том, чтобы корректно разделить данные, выбрать осмысленную метрику, посчитать baseline-стратегию и зафиксировать результат как точку отсчёта для всех последующих экспериментов.
Литература
- Mitchell T. M. Machine Learning. — McGraw-Hill, 1997.
- Samuel A. L. Some Studies in Machine Learning Using the Game of Checkers. — IBM Journal of Research and Development, 1959, С. 210–229, DOI: 10.1147/rd.33.0210.
- Hastie T., Tibshirani R., Friedman J. The Elements of Statistical Learning: Data Mining, Inference, and Prediction. — Springer, 2009, DOI: 10.1007/978-0-387-84858-7.
- Bishop C. M. Pattern Recognition and Machine Learning. — Springer, 2006.
- Sutton R. S., Barto A. G. Reinforcement Learning: An Introduction. — MIT Press, 2018.
- Kaufman S., Rosset S., Perlich C., Stitelman O. Leakage in Data Mining: Formulation, Detection, and Avoidance. — ACM Transactions on Knowledge Discovery from Data, 2012, С. 15:1–15:21, DOI: 10.1145/2382577.2382579.
- Geman S., Bienenstock É., Doursat R. Neural Networks and the Bias/Variance Dilemma. — Neural Computation, 1992, С. 1–58, DOI: 10.1162/neco.1992.4.1.1.
- Belkin M., Hsu D., Ma S., Mandal S. Reconciling Modern Machine-Learning Practice and the Classical Bias-Variance Trade-off. — Proceedings of the National Academy of Sciences, 2019, С. 15849–15854, DOI: 10.1073/pnas.1903070116.
- Domingos P. A Few Useful Things to Know About Machine Learning. — Communications of the ACM, 2012, С. 78–87, DOI: 10.1145/2347736.2347755.
- Kuhn M., Johnson K. Feature Engineering and Selection: A Practical Approach for Predictive Models. — Chapman and Hall/CRC, 2019, DOI: 10.1201/9781315108230.