Введение в машинное обучение: что это такое и какие задачи оно решает
Обычная программа выполняет правила, которые разработчик заранее записал в коде. Если правила меняются, программу приходится изменять.
Машинное обучение используют там, где зависимость трудно описать вручную, но её можно восстановить по данным.
Обычная программа
-
правила задаёт разработчик
-
данные
-
результат
Машинное обучение
-
данные
-
алгоритм обучения
-
настроенная модель
-
результат для новых данных
Например, стоимость доставки можно рассчитывать по фиксированной формуле. Но если цена зависит от расстояния, времени суток, погоды, спроса, района и доступности курьеров, число условий быстро растёт.
В машинном обучении часть правил переносится из кода в параметры модели. Эти параметры подбираются по историческим данным.
Если закономерность изменилась, модель можно переобучить на обновлённой выборке. Но это не происходит автоматически: процесс сбора данных, проверки качества и переобучения должен быть заранее организован.
Что такое машинное обучение
Машинное обучение, или 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 и аналитикой для поиска полезных закономерностей.
Это и есть необходимый фундамент. Следующие материалы уже могут подробно разбирать обучение модели, функции потерь, метрики, переобучение, регуляризацию и конкретные алгоритмы.