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

Попробуйте мысленно решить задачу вручную. Например, можно начать так: если в отзыве есть слово «ужасно», считаем риск высоким; если есть «спасибо», считаем риск низким. На первых примерах это даже выглядит разумно. Но почти сразу попадаются отзывы вроде «Поддержка вежливая, но проблема так и не решена» или «Функция хорошая, только всё зависает в конце дня». Теперь остановитесь и честно спросите себя: какое правило вы добавите дальше? И сколько таких правил вам придётся написать, чтобы система перестала путаться?

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


Когда правило заменяют примеры

В прошлом уроке мы разобрались, почему нейросеть появляется там, где жёсткие правила начинают ломаться. Но этого ещё недостаточно. Как только мы говорим: «Хорошо, не будем прописывать всё вручную, давайте учить модель по данным», сразу возникает следующий вопрос. Что именно происходит в этот момент? Каким образом примеры начинают влиять на поведение системы?

В обычной программе знание о задаче зафиксировано в коде. Автор заранее решает, что именно считать важным и как реагировать на каждый случай. Если правило оказалось плохим, он сам переписывает логику. Обучаемая модель устроена иначе. Здесь автор не описывает весь путь до ответа напрямую. Он задаёт форму модели, подбирает данные и организует процесс, в котором сама модель постепенно приближается к более удачному поведению.

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

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

Как выглядит один шаг обучения

Теперь можно увидеть общий ритм процесса. Модели дают пример из обучающей выборки. Она выдаёт свой ответ. Затем этот ответ сравнивают с правильным. Разница между ними и есть ошибка в самом общем смысле слова. Если ошибка велика, поведение модели нужно чуть подправить. Если ошибка меньше, значит она движется в нужную сторону. Весь смысл обучения построен на повторении этого цикла много раз.

Слово «предсказание» здесь важно не только технически. Оно напоминает, что модель не пересказывает правильный ответ изнутри себя. Она каждый раз строит собственную версию ответа на основе текущего состояния параметров. Поэтому обучение можно понимать как длинную последовательность попыток, где каждая следующая версия модели отвечает немного иначе, чем предыдущая.

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

Вернёмся к нашей задаче

Теперь вернёмся к отзывам клиентов из Разведки боем. Почему длинный список ручных правил здесь почти неизбежно станет хрупким, уже понятно: слишком многое зависит от контекста и сочетания признаков. Но теперь у нас есть более точный ответ и на второй вопрос. Модель учится именно потому, что ей много раз показывают примеры с известным результатом и заставляют постепенно подстраивать своё поведение.

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

Отсюда и возникает точный смысл фразы «обучение на примерах». Модель не получает от нас готовый список всех правил. Она получает много случаев, правильные ответы к ним, делает предсказания, сталкивается с ошибкой и постепенно меняет своё поведение. На следующем уроке мы пойдём ещё на один шаг глубже и разберёмся, за счёт чего внутри модели вообще можно по-разному учитывать сигналы на входе.


Обучение на примерах начинается там, где явные правила становятся слишком хрупкими или слишком длинными. Вместо полного ручного описания решения мы даём модели обучающую выборку и организуем процесс, в котором она постепенно подстраивает своё поведение.

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

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


Обсуждение урока

0
Комментарии видны всем. Чтобы участвовать в обсуждении, войдите или зарегистрируйтесь.
Модерация сообщества

Пожаловаться на комментарий

Расскажите модераторам, что именно требует внимания.