Искусственный интеллект

Пример обучения нейросети: пошагово от данных до готовой модели

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

5 мин чтения · Нейросети · Машинное обучение · Компьютерное зрение · Обучение ИИ

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

Как учится нейросеть и чем она отличается от обычной программы

Обычную программу пишут правилами: если выполнено условие, сделай действие. Для распознавания кошек так не получится — правила вроде «уши треугольные, есть усы» ломаются на первой же необычной фотографии. Нейросеть получает не правила, а примеры с правильными ответами и сама подбирает внутренние параметры — веса — так, чтобы ошибаться как можно реже. Этот подбор и называют обучением нейросети.

Этап 1. Подготовка данных

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

  • Сбор: нужны тысячи фотографий обоих классов. Для учебной задачи подойдут открытые наборы изображений, для рабочей — собственные данные компании.
  • Разметка: у каждой фотографии должна быть метка «кошка» или «собака». Ошибки в разметке модель добросовестно выучит, поэтому разметку выборочно проверяют.
  • Баланс: примеров каждого класса должно быть примерно поровну, иначе модель привыкнет чаще называть более частый класс.
  • Предобработка: изображения приводят к одному размеру, например 224 на 224 пикселя, а значения яркости — к диапазону от 0 до 1.
  • Разделение: данные делят на обучающую, валидационную и тестовую выборки — например, 80, 10 и 10 процентов. На тестовых примерах модель не учится: они нужны для честной проверки.

Этап 2. Выбор архитектуры

Для изображений традиционно используют свёрточные нейронные сети (CNN). Упрощённо они устроены так:

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

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

Этап 3. Настройка гиперпараметров

Гиперпараметры задаёт разработчик до начала обучения — сама модель их не подбирает:

  • размер пакета (batch size) — сколько изображений сеть обрабатывает за один шаг;
  • количество эпох — сколько раз сеть пройдёт через всю обучающую выборку;
  • скорость обучения (learning rate) — насколько сильно меняются веса за шаг: слишком большая не даст модели сойтись, слишком маленькая растянет обучение;
  • оптимизатор — алгоритм обновления весов, например стохастический градиентный спуск или Adam.

Этап 4. Обучение

Обучение — это повторение одного цикла для каждого пакета изображений:

  • Прямой проход: изображение проходит через слои, и сеть выдаёт ответ — например, «кошка» с вероятностью 0,8 и «собака» с вероятностью 0,2.
  • Расчёт ошибки: функция потерь — для классификации обычно кросс-энтропия — показывает, насколько ответ далёк от правильного.
  • Обратное распространение ошибки: вычисляется, как каждый вес повлиял на ошибку.
  • Обновление весов: оптимизатор немного сдвигает веса в сторону уменьшения ошибки.

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

Этап 5. Оценка модели

Готовую модель один раз проверяют на тестовой выборке и смотрят на несколько показателей:

  • доля правильных ответов (accuracy) — общая картина;
  • точность и полнота (precision и recall) по каждому классу — не путает ли модель один класс с другим чаще, чем наоборот;
  • матрица ошибок — таблица, где видно, какие классы модель путает между собой;
  • разбор ошибок вручную — часто оказывается, что модель путает щенков с котятами или ошибается на тёмных снимках.

Этап 6. Улучшение модели

Если качество не устраивает, возвращаются к предыдущим шагам:

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

Тот же процесс в бизнес-задаче

Представим, что компании нужно автоматически распределять входящие заявки по отделам. Шаги те же: собрать прошлые обращения, разметить их по отделам, разделить на выборки, дообучить готовую языковую модель, проверить качество на отложенных примерах и разобрать ошибки. Отличаются детали: вместо фотографий — тексты, вместо свёрточной сети — языковая модель. А иногда обучение не нужно вовсе: хватает инструкции и нескольких примеров в запросе к большой языковой модели. Обучать ли модель, решают по объёму данных, требованиям к точности и тому, где должны храниться данные.

Какие инструменты нужны

Для обучения используют открытые библиотеки глубокого обучения на языке Python и вычисления на видеокартах — своих или арендованных в облаке. Для учебного примера хватит облачного блокнота с графическим ускорителем. В рабочих проектах важнее воспроизводимость: версии данных, параметры и результаты каждого эксперимента должны сохраняться, чтобы модель можно было повторить и улучшить.

Что даёт обученная нейросеть

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

Заключение

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

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

Главное

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

Обсудить вашу задачу?

Расскажите о проекте — оценим объём, сроки и стоимость, предложим решение.

Ещё в блоге

Все материалы