Машинное обучение
Кратко
Машинное обучение (machine learning) — наука об алгоритмах, которые автоматически улучшаются благодаря опыту, то есть данным. Вместо того чтобы программировать правила вручную, инженер собирает примеры, а модель сама настраивает свои параметры так, чтобы правильно обрабатывать новые, ранее не виденные данные. Это главный рабочий инструмент современного искусственного интеллекта.
Для чего используется
- Классификация — отнести объект к категории: спам или не спам, какой объект на снимке с БПЛА.
- Регрессия — предсказать число: цену, расход энергии, время до отказа.
- Ранжирование — упорядочить результаты поиска или рекомендации.
- Кластеризация — сгруппировать похожие объекты без готовых меток, например документы по темам.
- Снижение размерности — сжать данные для визуализации и ускорения обработки.
- Генерация — порождать новые объекты: текст, изображения (см. генеративные модели).
Как работает
Обучение строится вокруг выборки. Обучающая выборка — набор объектов, каждый описан признаками: численными, категориальными, бинарными или порядковыми (ординальными). Если для объектов известны правильные ответы — таргеты, — говорят об обучении с учителем.
Аналогия с подготовкой к экзамену по задачнику: студент решает задачи (объекты), сверяется с ответами (таргеты) и корректирует своё понимание. Экзамен — это новые задачи: важно не заучить задачник, а научиться решать.
Технически модель настраивают, минимизируя функцию потерь — дифференцируемую функцию, которая измеряет, насколько предсказания расходятся с ответами. Дифференцируемость нужна, чтобы работал градиентный спуск: оптимизируют суррогат метрики, а не саму метрику.
Главная опасность — переобучение: модель слишком точно подстроилась под обучающие данные и потеряла способность обобщать (студент вызубрил задачник, но не решает новые задачи). Средства борьбы — регуляризация: штрафы на веса, dropout, аугментация данных.
Три вида обучения:
- с учителем (supervised) — есть правильные ответы; задачи классификации, регрессии, ранжирования, генерации;
- без учителя (unsupervised) — ответов нет, ищется структура данных: кластеризация, снижение размерности;
- с подкреплением (reinforcement) — агент учится через взаимодействие со средой и сигнал награды (см. обучение с подкреплением).
Основные компоненты
- данные: обучающая, валидационная и тестовая выборки;
- признаки объектов и таргеты;
- модель — от линейной регрессии до нейронной сети;
- функция потерь и оптимизатор;
- метрики качества и кросс-валидация для честной оценки.
Примеры
- Классические алгоритмы на практике: градиентный бустинг, k-ближайших соседей, случайный лес, логистическая регрессия, k-means, PCA.
- scikit-learn — стандартная открытая (BSD) библиотека классического ML для Python на основе NumPy и SciPy: классификация, регрессия, кластеризация, снижение размерности, подбор моделей, предобработка.
- Учебник ШАД (Яндекс) — бесплатный русскоязычный онлайн-учебник по машинному обучению: от основ до тем из свежих научных статей.
Связанные темы
- Искусственный интеллект
- Нейронные сети
- Глубокое обучение
- Обучение с подкреплением
- Генеративные модели
Источники
- Учебник по машинному обучению (ШАД, Яндекс) — определение, виды обучения, выборка, признаки, функция потерь, переобучение.
- Deep Learning (Goodfellow, Bengio, Courville) — методы регуляризации (гл. 7).
- AIMA (Russell, Norvig) — место машинного обучения в структуре ИИ.
- scikit-learn — задачи и алгоритмы классического ML на практике.