1. Основы машинного обучения: постановка задач, типы обучения и пространство признаков
Основы машинного обучения: постановка задач, типы обучения и пространство признаков
В 1997 году компьютер Deep Blue обыграл чемпиона мира по шахматам Гарри Каспарова. Это событие часто называют триумфом искусственного интеллекта, но с точки зрения современного машинного обучения (Machine Learning, ML) это была скорее победа грубой вычислительной силы и экспертных правил, заложенных программистами. Настоящий переворот произошел тогда, когда мы перестали диктовать компьютеру правила игры и начали показывать ему примеры. Машинное обучение — это не программирование алгоритма решения задачи, а программирование процесса, в котором компьютер сам находит алгоритм, анализируя данные.
Парадигма обучения на данных
Традиционное программирование строится по схеме: «Данные + Алгоритм = Результат». Разработчик должен досконально понимать логику процесса. Если мы пишем фильтр спама на основе правил, нам нужно составить список слов-маркеров («скидка», «бесплатно», «выигрыш»). Однако спамеры быстро адаптируются, и правила приходится бесконечно усложнять.
Машинное обучение предлагает иную схему: «Данные + Результат = Алгоритм». Мы даем системе миллион писем, помеченных как «спам» и «не спам». Модель сама выявляет скрытые закономерности — например, что спам-письма часто приходят в три часа ночи, содержат много восклицательных знаков и специфические комбинации символов, которые человек мог бы и не заметить.
Формально задачу машинного обучения можно определить так: существует некоторая целевая зависимость , вид которой нам неизвестен. У нас есть обучающая выборка , где — описание объекта, а — правильный ответ. Наша цель — построить алгоритм , который будет максимально приближен к истинной функции не только на обучающих данных, но и на новых, ранее не виденных объектах. Это свойство называется обобщающей способностью.
Пространство признаков: как компьютер видит мир
Для алгоритма объект — это не изображение кота и не текст договора, а вектор в многомерном пространстве. Перевод реального объекта в числовое представление называется извлечением признаков (Feature Engineering).
Признак — это количественная или качественная характеристика объекта. Совокупность всех признаков одного объекта образует вектор признаков , где — размерность признакового пространства.
Типы признаков
Эффективность модели критически зависит от того, правильно ли мы определили типы данных, так как математические операции над ними различаются:
Матрица «объекты-признаки»
В машинном обучении данные обычно представляются в виде матрицы , где строки соответствуют объектам, а столбцы — признакам:
Здесь — количество объектов в выборке, а — количество признаков. Целевые значения для этих объектов записываются в вектор-столбец длины . Работа специалиста по данным (Data Scientist) во многом заключается в подготовке этой матрицы: очистке от шума, заполнении пропусков и нормализации значений. Если один признак измеряется в миллионах (бюджет фильма), а другой в единицах (рейтинг IMDb), многие алгоритмы «зациклятся» на больших числах, игнорируя малые, но важные детали.
Типология задач: от классификации до регрессии
Машинное обучение принято делить на несколько больших классов в зависимости от того, какие данные нам доступны и какую цель мы преследуем.
Обучение с учителем (Supervised Learning)
Это наиболее распространенный тип задач, где для каждого входного объекта известен эталонный ответ . «Учитель» здесь — это размеченные данные. Внутри этого класса выделяют две основные задачи:
1. Регрессия. Целевая переменная является вещественным числом (). Мы предсказываем непрерывную величину. Примеры: * Прогноз стоимости акций на завтра. * Определение ожидаемого срока службы промышленного оборудования. * Оценка стоимости подержанного автомобиля на основе пробега и года выпуска.
В задаче регрессии мы минимизируем отклонение предсказания от истинного значения . Например, с помощью средней квадратичной ошибки (MSE):
Здесь — число объектов, — прогноз модели, — факт. Квадрат используется для того, чтобы штрафовать модель за отклонения в любую сторону и сильнее наказывать за крупные ошибки.
2. Классификация. Целевая переменная принимает значения из конечного набора меток (классов). * Бинарная классификация: классов всего два ( или ). Примеры: одобрить кредит или отказать, является ли опухоль злокачественной. * Многоклассовая классификация: классов больше двух (). Пример: распознавание рукописных цифр (10 классов) или классификация видов растений. * Классификация с несколькими метками (Multi-label): один объект может принадлежать сразу к нескольким категориям. Пример: теги к статье или жанры фильма.
Обучение без учителя (Unsupervised Learning)
Здесь у нас есть только объекты , но нет правильных ответов . Алгоритм должен сам найти структуру в данных. * Кластеризация: разбиение объектов на группы по схожести. Например, сегментация клиентской базы для маркетинга. * Понижение размерности: сжатие признакового пространства с сохранением максимума информации. Это помогает визуализировать данные или ускорить работу других моделей. * Поиск аномалий: выявление объектов, которые сильно выбиваются из общей массы (например, поиск мошеннических транзакций).
Обучение с подкреплением (Reinforcement Learning)
Это особый тип, где есть «агент» (программа), который взаимодействует со «средой». Агент совершает действия и получает либо награду, либо штраф. Его цель — максимизировать суммарную награду. Так обучаются роботы, системы управления беспилотными автомобилями и алгоритмы для игры в шахматы или Go.
Постановка задачи и функции потерь
Чтобы обучить модель, нам нужно математически определить, что значит «хорошо обученная модель». Для этого вводится понятие функции потерь (Loss Function) , которая измеряет «штраф» за ошибку на одном конкретном объекте.
Средняя ошибка по всей выборке называется эмпирическим риском:
Процесс обучения сводится к поиску таких параметров модели , которые минимизируют этот риск:
Выбор функции потерь зависит от задачи. В классификации часто используют индикатор ошибки: (равен 1, если предсказание неверно, и 0, если верно). Однако такая функция неудобна для оптимизации, так как она разрывна. В следующих главах мы увидим, как логистическая регрессия использует гладкие аппроксимации, такие как Log-Loss, чтобы применять методы градиентного спуска.
Жизненный цикл ML-модели: от гипотезы к продакшену
Построение модели — это не разовое написание кода, а итеративный процесс. Рассмотрим его этапы на примере задачи прогнозирования оттока клиентов банка.
Проблема переобучения (Overfitting)
Это фундаментальное препятствие в машинном обучении. Представьте студента, который не учит предмет, а просто зазубривает ответы на вопросы из прошлогодних билетов. На экзамене он блестяще ответит на старые вопросы, но провалится на любом новом.
В ML происходит то же самое. Если модель слишком сложная (у нее слишком много параметров), она может идеально подстроиться под шум в обучающих данных, выучив случайные совпадения вместо реальных закономерностей. * Недообучение (Underfitting): модель слишком проста и не видит структуру даже в обучающих данных (например, пытаемся описать сложную кривую прямой линией). * Переобучение (Overfitting): модель слишком сложна и «заучивает» шум. Ошибка на обучении стремится к нулю, а на новых данных — огромна.
Борьба с переобучением ведется через регуляризацию (добавление штрафа за сложность модели) и использование независимых валидационных выборок. Мы будем подробно разбирать эти методы в контексте линейных моделей и деревьев решений.
Роль математики в машинном обучении
Хотя современные библиотеки (Scikit-learn, PyTorch, XGBoost) позволяют построить модель в три строки кода, понимание «подкапотной» части необходимо для решения нестандартных задач и отладки. * Линейная алгебра: операции с матрицами и векторами — это язык, на котором «говорят» данные. * Математический анализ: методы оптимизации (градиентный спуск) позволяют находить минимум функции потерь. * Теория вероятностей и статистика: без них невозможно оценить значимость признаков и достоверность полученных результатов.
Машинное обучение — это мост между строгой математикой и хаотичным миром реальных данных. Мы не ищем абсолютную истину, мы ищем модель, которая будет достаточно полезна для принятия решений.
В следующей главе мы перейдем от общих понятий к нашему первому серьезному алгоритму — линейной регрессии. Мы разберем, как простая идея проведения прямой линии через облако точек превращается в мощный инструмент прогнозирования и как аналитически найти оптимальные веса модели.