СтатьяОткрытый материал

Введение в машинное обучение: что это такое и какие задачи оно решает

Понятное введение в машинное обучение: отличие от обычной программы, данные, модели, обучение, классификация, регрессия, кластеризация и связь с data mining.

AI и автоматизация #ML #data mining #классификация #кластеризация #машинное обучение #обучение без учителя #обучение с учителем #регрессия

Введение в машинное обучение: что это такое и какие задачи оно решает

Обычная программа выполняет правила, которые разработчик заранее записал в коде. Если правила меняются, программу приходится изменять.

Машинное обучение используют там, где зависимость трудно описать вручную, но её можно восстановить по данным.

Обычная программа
-
правила задаёт разработчик
-
данные
-
результат
Машинное обучение
-
данные
-
алгоритм обучения
-
настроенная модель
-
результат для новых данных

Например, стоимость доставки можно рассчитывать по фиксированной формуле. Но если цена зависит от расстояния, времени суток, погоды, спроса, района и доступности курьеров, число условий быстро растёт.

В машинном обучении часть правил переносится из кода в параметры модели. Эти параметры подбираются по историческим данным.

Если закономерность изменилась, модель можно переобучить на обновлённой выборке. Но это не происходит автоматически: процесс сбора данных, проверки качества и переобучения должен быть заранее организован.

Что такое машинное обучение

Машинное обучение, или ML, - это методы, которые позволяют программе находить закономерности в данных и использовать их для предсказаний или решений.

У любой ML-задачи есть три обязательные части:

  • данные;
  • задача;
  • критерий качества.

Например, если нужно определять спам:

Данные
-
ранее полученные письма

Задача
-
определить класс нового письма

Критерий качества
-
сколько спама найдено и сколько нормальных писем заблокировано ошибочно

Если нужно прогнозировать спрос:

Данные
-
история продаж, цены, акции, сезонность

Задача
-
предсказать будущий объём продаж

Критерий качества
-
ошибка прогноза на новых периодах

Важно различать алгоритм и модель.

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

Один и тот же алгоритм, обученный на разных данных, создаёт разные модели.

Чем ML отличается от обычной программы

В обычной программе правила видны непосредственно в коде:

def risk_score(age: int, debt_ratio: float) -> int:
    score = 0

    if age < 21:
        score += 1

    if debt_ratio > 0.5:
        score += 2

    return score

Если реальные условия изменились, разработчик должен пересмотреть пороги и логику.

В ML-системе разработчик задаёт:

  • какие данные использовать;
  • какую модель обучать;
  • что считать ошибкой;
  • как проверять качество;
  • когда публиковать новую версию.

Но конкретные коэффициенты, границы и внутренние зависимости определяются по данным.

Ключевое различие:

Обычная программа
-
логика хранится в явных правилах

ML-модель
-
логика хранится в обученных параметрах

При этом машинное обучение не заменяет обычный код. Реальная система почти всегда сочетает:

обычную программную логику
+
подготовку данных
+
ML-модель
+
проверки и ограничения

Из чего состоит ML-задача

Чтобы понимать дальнейшие материалы, нужно освоить несколько базовых терминов.

Объект

Объект - отдельный пример, который анализирует модель.

Объектом может быть:

  • клиент;
  • заказ;
  • письмо;
  • изображение;
  • транзакция;
  • документ.

В таблице один объект обычно соответствует одной строке.

Признаки

Признаки - характеристики объекта, доступные модели.

Например, для заказа:

стоимость
категория товара
время оформления
регион
способ оплаты
история покупателя

Если представить объект числами, получится вектор признаков.

Вектор здесь - упорядоченный набор значений:

[4800, 21, 7, 0.84]

Набор объектов образует матрицу:

строки
-
объекты

столбцы
-
признаки

Поэтому линейная алгебра естественно появляется в ML: объекты описываются векторами, а выборки - матрицами.

Целевая переменная

Целевая переменная - правильный ответ, который модель должна научиться предсказывать.

Например:

вернёт ли клиент товар
-
0 или 1

сумма следующего заказа
-
непрерывное число

категория обращения
-
один из нескольких классов

Признаки обычно обозначают X, а целевые ответы - y.

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

ML-система работает в двух основных режимах.

Обучение

Во время обучения модель получает данные и настраивает внутренние параметры.

данные
-
предсказание
-
сравнение с правильным ответом или другой целью
-
изменение параметров

Этот цикл повторяется много раз.

Инференс

Инференс - применение уже обученной модели к новым данным.

новый объект
-
подготовка признаков
-
модель
-
прогноз

Во время инференса параметры обычно не меняются.

Основные типы машинного обучения

Типы ML удобнее различать по тому, какую обратную связь получает модель.

Обучение с учителем

В обучении с учителем для каждого объекта известен правильный ответ.

признаки X
+
целевые ответы y
-
обучение модели

Слово «учитель» не означает человека, который наблюдает за каждым шагом. Учителем является разметка.

Основные задачи с учителем:

  • классификация;
  • регрессия.

Классификация

Классификация используется, когда результатом является категория.

Примеры:

спам / не спам
мошенничество / нормальная операция
кошка / собака / птица
продажи / поддержка / оплата

Бинарная классификация

В бинарной задаче два класса. Их часто кодируют как 0 и 1.

0 - нормальная операция
1 - подозрительная операция

Здесь 0 и 1 являются кодами категорий, а не непрерывными числами.

Классификатор может вернуть готовый класс:

prediction = model.predict(X_new)

Но многие модели также возвращают оценки принадлежности к классам:

probabilities = model.predict_proba(X_new)

Например:

[[0.18, 0.82]]

Это означает:

класс 0 - 0.18
класс 1 - 0.82

После этого применяется порог.

При пороге 0.5 модель выберет класс 1.

predict() отвечает на вопрос:

Какой класс выбран?

predict_proba() отвечает на вопрос:

Какие оценки получены для классов?

Не у всех моделей есть predict_proba(), а полученная оценка не всегда идеально совпадает с реальной вероятностью. Эти ограничения разбираются отдельно в более глубоком материале.

Многоклассовая классификация

Если классов несколько:

0 - продажи
1 - поддержка
2 - оплата
3 - другое

модель выбирает один из них.

Многометочная классификация

Один объект может иметь несколько меток одновременно.

Например, статья может относиться сразу к темам:

Python
AI
автоматизация

Это отдельная постановка, потому что метки не исключают друг друга.

Регрессия

Регрессия используется, когда нужно предсказать непрерывную числовую величину.

Примеры:

  • цену;
  • время доставки;
  • объём спроса;
  • температуру;
  • сумму следующего заказа.

На графике точки показывают реальные наблюдения, а линия - зависимость, найденную моделью.

predict() регрессионной модели возвращает число:

4850.7

predict_proba() обычно не используется, потому что модель не выбирает класс.

Важно:

Если классы закодированы числами 0, 1, 2, задача остаётся классификацией. Числа здесь являются названиями категорий.

Регрессией задача становится тогда, когда расстояние между значениями имеет смысл:

4800 рублей
5200 рублей
5600 рублей

Обучение без учителя

В обучении без учителя правильных ответов y нет.

Есть только объекты и признаки:

X
-
поиск структуры

Модель пытается обнаружить закономерности, которые заранее не размечены.

Основные примеры:

  • кластеризация;
  • снижение размерности;
  • поиск аномалий.

Кластеризация

Кластеризация объединяет похожие объекты в группы.

Алгоритм не знает заранее названий вроде:

лояльные клиенты
новые покупатели
редкие дорогие покупки

Он видит только структуру данных и возвращает условные группы:

кластер 0
кластер 1
кластер 2

Смысл кластеров определяет аналитик после изучения результатов.

Классификация и кластеризация отличаются принципиально:

Классификация
-
классы известны заранее

Кластеризация
-
группы находятся без готовых меток

Self-supervised learning

Self-supervised learning создаёт обучающие цели из самих данных.

Например, из текста:

Сегодня система обработала новый заказ

можно получить задачу:

Вход
-
Сегодня система обработала новый

Цель
-
заказ

Человек не размечает каждое слово вручную. Цель автоматически извлекается из исходной последовательности.

На этом принципе обучаются многие современные языковые модели.

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

В обучении с подкреплением есть агент, который действует в среде и получает награду.

состояние
-
действие
-
новое состояние
-
награда

Например:

Агент
-
робот

Действия
-
вперёд, назад, влево, вправо

Награда
-
+100 за достижение цели
-10 за столкновение

Задача агента - найти стратегию, которая максимизирует суммарную награду.

В отличие от обучения с учителем, правильное действие для каждого состояния заранее не задано.

Data mining и машинное обучение

Data mining, или интеллектуальный анализ данных, - поиск полезных закономерностей и структур в больших наборах данных.

Машинное обучение часто используется внутри data mining, но эти понятия не совпадают полностью.

Data mining
-
постановка аналитического вопроса
-
подготовка данных
-
поиск закономерностей
-
интерпретация
-
проверка полезности

Внутри могут использоваться:

  • статистика;
  • SQL;
  • визуальный анализ;
  • кластеризация;
  • классификация;
  • поиск аномалий;
  • методы машинного обучения.

Например, задача data mining:

Найти устойчивые группы покупателей и понять, чем они отличаются.

ML-алгоритм может выполнить кластеризацию. Но затем всё равно нужны интерпретация, проверка стабильности и связь с реальной задачей.

Поэтому:

Машинное обучение
-
набор методов построения моделей

Data mining
-
более широкий процесс извлечения полезных закономерностей

Как ML связано с соседними областями

AI
-
широкая область интеллектуальных систем

Machine learning
-
модели, которые обучаются на данных

Deep learning
-
часть ML на основе глубоких нейронных сетей

Data mining
-
поиск полезных закономерностей в данных

Data science
-
полный процесс работы с данными, моделями и предметной областью

ML является важной частью AI и data science, но не заменяет их полностью.

Какие задачи решает машинное обучение

Машинное обучение используют для:

  • прогнозирования;
  • классификации;
  • рекомендаций;
  • ранжирования;
  • поиска аномалий;
  • сегментации;
  • распознавания текста, речи и изображений;
  • генерации текста, изображений и кода;
  • выбора действий в последовательных задачах.

Но ML нужен не всегда.

Когда машинное обучение не требуется

Обычная программа лучше, если:

  • правило известно точно;
  • результат должен быть детерминированным;
  • задача решается формулой;
  • достаточно SQL-запроса;
  • нет данных для обучения;
  • невозможно измерить качество результата.

Примеры:

рассчитать налог по фиксированной ставке
-
формула

проверить обязательное поле
-
обычное условие

найти заказ по ID
-
база данных

предсказать вероятность ухода клиента
-
возможная задача ML

Хорошая система часто сочетает обычную логику и ML:

программные правила
+
предсказание модели
+
ограничения
+
ручная проверка

Итог

Машинное обучение используют, когда нужную зависимость сложно задать вручную, но её можно восстановить по данным.

Базовая схема:

данные
-
объекты и признаки
-
обучающая цель
-
алгоритм обучения
-
параметры модели
-
предсказание для новых объектов

Классификация предсказывает категорию. Регрессия - непрерывное число. Кластеризация ищет группы без готовых меток. Обучение с подкреплением строит стратегию действий по наградам. Self-supervised learning создаёт цели из самих данных.

Data mining использует ML вместе со статистикой, SQL и аналитикой для поиска полезных закономерностей.

Это и есть необходимый фундамент. Следующие материалы уже могут подробно разбирать обучение модели, функции потерь, метрики, переобучение, регуляризацию и конкретные алгоритмы.

Продолжить

  1. 01 RAG-системы: как языковая модель отвечает на основе внешних данных Подробно разбираем, что такое RAG-система, из каких компонентов она состоит, как документы превращаются в индекс, как работает поиск и как LLM формирует ответ на основе найденного контекста.

Обратная связь

Материал был полезен?

Нашли ошибку или неточность? Сообщить →