← Все статьи

Что такое машинное обучение? Практическое объяснение для владельцев бизнеса

Burncode Team 3 минуты чтения

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

Определение по существу

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

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

Конкретный пример

Допустим, вы хотите выявлять мошеннические транзакции. Старый подход: инженер садится и пишет правила — отмечать всё, что больше $500, всё, что совершено с нового устройства, всё, что происходит в три часа ночи. Это работает, пока схемы мошенничества не поменяются, — а потом кто-то должен это заметить и переписать правила.

Подход машинного обучения: вы передаёте модели транзакции за несколько лет, каждая из которых помечена как «мошенничество» или «не мошенничество». Модель находит сочетания признаков — сумма, место, устройство, время, частота операций, — которые действительно связаны с мошенничеством в ваших собственных данных, а не в чьих-то представлениях о том, как оно выглядит. Когда схемы меняются, вы переобучаете модель на свежих данных, а не переписываете логику вручную.

В чём оно действительно сильно

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

В чём оно не сильно

Эту часть большинство презентаций пропускает. Машинное обучение плохо подходит, когда:

  • Исторических данных мало. Модель, обученная на нескольких сотнях примеров, обычно работает хуже, чем хорошо продуманный набор правил.
  • Правила простые и стабильные. Если правило «отмечать любой платёж больше $10 000» закрывает 95% вашей реальной проблемы, вам нужна не модель, а условный оператор.
  • Нужно объяснять каждое решение. Некоторые модели могут сказать, почему приняли то или иное решение; многие — нет, по крайней мере в понятной человеку форме. Если регулятору или клиенту нужна реальная причина, это важно.
  • Ошибки дорого стоят и их трудно исправить. Модель никогда не бывает права на 100%. Если неверный прогноз в вашем продукте ведёт к реальным финансовым последствиям или угрозе безопасности, нужен человек в контуре принятия решений, а не полная автоматизация.

Как понять, нужно ли оно вам

Честная проверка: сможет ли толковый сотрудник, глядя на те же данные, за полдня сформулировать приличный набор правил? Если да — пишите правила: это быстрее разработать, проще отладить и легче объяснить клиенту, чем модель. Машинное обучение оправдывает свою стоимость, когда закономерности слишком сложны или меняются слишком быстро, чтобы человек успевал за ними вручную, и когда у вас действительно есть исторические данные для обучения.

В Burncode обычно именно с этого разговора всё начинается, ещё до первой строки ИИ-кода: действительно ли задаче нужна модель или лучше подойдёт старая добрая логика, которую дешевле создать и которой проще доверять. Если модель нужна, мы встраиваем её в сам продукт, под конкретное решение, которое она должна принимать, а не прикручиваем универсальную ИИ-функцию только потому, что она значится в роадмапе.