Введение в машинное обучение

Ключевые тезисы

  • Машинное обучение (МО) — модульная область, где можно комбинировать различные части алгоритмов для поиска наилучших решений.
  • Основное внимание в курсе уделяется обучению с учителем, так как нейронные сети чаще всего решают именно такие задачи.
  • Ключевые этапы работы с МО: формализация задачи, подготовка данных, выбор и обучение модели, борьба с переобучением, оценка качества.

Типы задач машинного обучения

  • Обучение без учителя: Нет готовых ответов. Пример — кластеризация транзакций или клиентов.
  • Обучение с подкреплением: Алгоритм учится, получая награду/наказание за действия в среде (например, AlphaGo).
  • Обучение с учителем: Есть объекты и известные для них ответы. Цель — восстановить функцию, связывающую объекты с ответами (таргет, целевая переменная).

Формализация задачи обучения с учителем

  • Объекты характеризуются признаками (фичами), которые представляются в виде вектора чисел. Это позволяет работать с данными как с матрицей (таблицей).

  • Типы признаков:

    • Числовые: действительные числа.
    • Категориальные: строки, которые можно закодировать числами (например, название района). Не имеют порядка.
    • Порядковые: категории с внутренним порядком (например, оценка состояния: плохо < нормально < хорошо).
  • Типы задач определяются множеством ответов:

    • Классификация: ответ — дискретный класс (например, 0 или 1 — кликнет/не кликнет). Пример: классификация видов ирисов.
    • Регрессия: ответ — действительное число (например, цена дома).
    • Ранжирование: ответ — порядковый номер (например, релевантность документов в поиске).

Метод k-ближайших соседей (k-NN)

  • Как работает: Алгоритм запоминает всю обучающую выборку. Для нового объекта находит k ближайших соседей (по выбранной метрике расстояния) и возвращает преобладающий класс (классификация) или среднее значение (регрессия).
  • Гиперпараметр k: Число, задаваемое до обучения. Сильно влияет на результат.
  • Проблемы:
    1. Проклятие размерности: С ростом количества признаков точки в пространстве становятся очень разреженными, и понятие "близких соседей" теряет смысл.
    2. Вычислительная сложность: Поиск соседей в высокоразмерных пространствах может быть очень затратным.
    3. Масштабирование признаков: Если признаки имеют разный масштаб (например, метры и количество комнат), стандартная евклидова метрика даст искаженные результаты. Решение — нормализация данных (например, вычитание среднего и деление на стандартное отклонение).

Обучение моделей и переобучение

  • Обучение — это процесс подбора параметров модели из заданного семейства функций, который минимизирует функцию ошибки на обучающих данных.

  • Функция потерь (loss) — измеряет ошибку на одном объекте (например, квадрат ошибки или модуль разности).

  • Эмпирический риск — среднее значение функции потерь на всей обучающей выборке. Процесс обучения — это поиск минимума эмпирического риска.

  • Переобучение — ситуация, когда модель слишком хорошо подстраивается под обучающие данные, включая шум и случайные закономерности, и плохо работает на новых данных.

    • Пример: Полиномиальная регрессия высокой степени идеально проходит через все точки обучения, но дает большие ошибки на новых данных.
    • Как обнаружить: Качество (loss) на обучающей выборке значительно лучше, чем на тестовой.

Борьба с переобучением: разделение данных

Чтобы честно оценить качество и бороться с переобучением, данные делят на части:

  1. Обучающая выборка: На этих данных происходит подбор параметров модели.
  2. Валидационная выборка: На этих данных происходит подбор гиперпараметров и архитектуры модели в итеративном цикле.
  3. Тестовая выборка: На этих данных один раз в самом конце оценивается итоговое качество модели. Не используется в процессе настройки.
  • Кросс-валидация: Метод для экономии данных, когда выборка мала. Данные разбиваются на k частей (fold). Модель k раз обучается на k-1 части и тестируется на оставшейся. Итоговое качество — среднее по всем k прогонам. Для медленных моделей (как нейросети) применяется редко.

Алгоритм применения машинного обучения

  1. Собрать и разделить данные (train/validation/test).
  2. Предобработать данные: очистка, создание признаков, кодирование категориальных переменных, масштабирование.
  3. Итеративный цикл настройки:
    • Выбрать модель и гиперпараметры.
    • Обучить на тренировочной выборке.
    • Оценить качество на валидационной выборке.
    • Повторять, пока качество не станет удовлетворительным.
  4. Финальная оценка: Протестировать лучшую модель на тестовой выборке, чтобы получить объективную оценку её работы.
  5. Внедрение: Отдать модель в продакшн.