Введение в машинное обучение
Ключевые тезисы
- Машинное обучение (МО) — модульная область, где можно комбинировать различные части алгоритмов для поиска наилучших решений.
- Основное внимание в курсе уделяется обучению с учителем, так как нейронные сети чаще всего решают именно такие задачи.
- Ключевые этапы работы с МО: формализация задачи, подготовка данных, выбор и обучение модели, борьба с переобучением, оценка качества.
Типы задач машинного обучения
- Обучение без учителя: Нет готовых ответов. Пример — кластеризация транзакций или клиентов.
- Обучение с подкреплением: Алгоритм учится, получая награду/наказание за действия в среде (например, AlphaGo).
- Обучение с учителем: Есть объекты и известные для них ответы. Цель — восстановить функцию, связывающую объекты с ответами (таргет, целевая переменная).
Формализация задачи обучения с учителем
Объекты характеризуются признаками (фичами), которые представляются в виде вектора чисел. Это позволяет работать с данными как с матрицей (таблицей).
Типы признаков:
- Числовые: действительные числа.
- Категориальные: строки, которые можно закодировать числами (например, название района). Не имеют порядка.
- Порядковые: категории с внутренним порядком (например, оценка состояния: плохо < нормально < хорошо).
Типы задач определяются множеством ответов:
- Классификация: ответ — дискретный класс (например, 0 или 1 — кликнет/не кликнет). Пример: классификация видов ирисов.
- Регрессия: ответ — действительное число (например, цена дома).
- Ранжирование: ответ — порядковый номер (например, релевантность документов в поиске).
Метод k-ближайших соседей (k-NN)
- Как работает: Алгоритм запоминает всю обучающую выборку. Для нового объекта находит
kближайших соседей (по выбранной метрике расстояния) и возвращает преобладающий класс (классификация) или среднее значение (регрессия). - Гиперпараметр
k: Число, задаваемое до обучения. Сильно влияет на результат. - Проблемы:
- Проклятие размерности: С ростом количества признаков точки в пространстве становятся очень разреженными, и понятие "близких соседей" теряет смысл.
- Вычислительная сложность: Поиск соседей в высокоразмерных пространствах может быть очень затратным.
- Масштабирование признаков: Если признаки имеют разный масштаб (например, метры и количество комнат), стандартная евклидова метрика даст искаженные результаты. Решение — нормализация данных (например, вычитание среднего и деление на стандартное отклонение).
Обучение моделей и переобучение
Обучение — это процесс подбора параметров модели из заданного семейства функций, который минимизирует функцию ошибки на обучающих данных.
Функция потерь (loss) — измеряет ошибку на одном объекте (например, квадрат ошибки или модуль разности).
Эмпирический риск — среднее значение функции потерь на всей обучающей выборке. Процесс обучения — это поиск минимума эмпирического риска.
Переобучение — ситуация, когда модель слишком хорошо подстраивается под обучающие данные, включая шум и случайные закономерности, и плохо работает на новых данных.
- Пример: Полиномиальная регрессия высокой степени идеально проходит через все точки обучения, но дает большие ошибки на новых данных.
- Как обнаружить: Качество (loss) на обучающей выборке значительно лучше, чем на тестовой.
Борьба с переобучением: разделение данных
Чтобы честно оценить качество и бороться с переобучением, данные делят на части:
- Обучающая выборка: На этих данных происходит подбор параметров модели.
- Валидационная выборка: На этих данных происходит подбор гиперпараметров и архитектуры модели в итеративном цикле.
- Тестовая выборка: На этих данных один раз в самом конце оценивается итоговое качество модели. Не используется в процессе настройки.
- Кросс-валидация: Метод для экономии данных, когда выборка мала. Данные разбиваются на
kчастей (fold). Модельkраз обучается наk-1части и тестируется на оставшейся. Итоговое качество — среднее по всемkпрогонам. Для медленных моделей (как нейросети) применяется редко.
Алгоритм применения машинного обучения
- Собрать и разделить данные (train/validation/test).
- Предобработать данные: очистка, создание признаков, кодирование категориальных переменных, масштабирование.
- Итеративный цикл настройки:
- Выбрать модель и гиперпараметры.
- Обучить на тренировочной выборке.
- Оценить качество на валидационной выборке.
- Повторять, пока качество не станет удовлетворительным.
- Финальная оценка: Протестировать лучшую модель на тестовой выборке, чтобы получить объективную оценку её работы.
- Внедрение: Отдать модель в продакшн.