Генерация против распознавания

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

Генеративный AI — это модели, которые не отвечают «что изображено», а создают новые данные: картинки, тексты, звук, видео, которых раньше не существовало.

Две большие задачи

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

Генерация устроена наоборот. Здесь вход простой (короткий текст или вектор случайных чисел), а выход — сложный: целое изображение из миллионов пикселей. Модель должна не сжать информацию до метки, а наоборот, развернуть короткое описание в богатую, детальную картинку, которой раньше не существовало.

СвойствоРаспознаваниеГенерация
Входкартинкатекст или шум
Выходметка / числоновая картинка
Направлениесложное → простоепростое → сложное
Правильный ответодинмного допустимых

Почему «правильных ответов» много

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

Как работает под капотом

Генеративная модель во время обучения смотрит на огромное количество примеров (например, картинок) и пытается уловить их статистику: какие сочетания пикселей встречаются, а какие — нет. Фотографий реального неба много, а картинок с фиолетовым шахматным небом почти нет, поэтому модель считает первое «вероятным», а второе — «маловероятным».

После обучения мы просим модель сэмплировать — выдать случайный, но правдоподобный образец из выученного распределения. Случайность нужна, чтобы каждый раз получалась новая картинка, а не одна и та же. Именно поэтому при одинаковом промпте, но разном случайном зерне (seed), вы видите разные изображения.

Частые ошибки

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

Где это уже встречалось

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

Ещё одно практическое следствие — оценка качества. У распознавания есть точность: совпал ответ с истиной или нет. У генерации «единственной истины» нет, поэтому качество оценивают косвенно: насколько картинки реалистичны и насколько они разнообразны. Эти две метрики иногда конфликтуют — можно сделать очень реалистичные, но однотипные картинки, и наоборот. Хороший генератор силён в обоих измерениях сразу.

Итог

  • Распознавание сворачивает сложный вход в простой ответ; генерация разворачивает простой вход в сложный результат.
  • У генерации множество правильных ответов, поэтому модель учит распределение и сэмплирует из него.
  • Случайность (seed) обеспечивает разнообразие результатов.
Проверьте себя
1. В чём принципиальное отличие генеративной модели от распознающей?
AГенеративная работает быстрее
BГенеративная создаёт новые данные, а не присваивает метку входу
CГенеративная не использует нейросети
DРаспознающая всегда точнее
2. Почему при одном и том же промпте можно получить разные картинки?
AИз-за ошибок в модели
BИз-за разного случайного зерна (seed) при сэмплировании
CПотому что модель забывает предыдущий запрос
DКартинки всегда одинаковые