Глава 13. GANs

Глава 13. Игры разума (GANs)

Отличная идея: заставить две сети воевать друг с другом.
Кошмарная реализация: заставить эту войну сходиться.

До сих пор модели в основном отвечали на вопрос «что это?» или «где это?».
Генерация меняет направление стрелки: из шума или кода — в изображение, речь, молекулу.

Первый громкий современный ответ — adversarial training.


13.1. Две роли вместо одной функции потерь

Обычное обучение: модель минимизирует ошибку относительно целевого распределения / метки.

GAN предлагает игру:

  • Generator G учится производить фейки;
  • Discriminator D учится отличать фейки от реальных данных.

Схема GAN

G хочет обмануть D.
D хочет не быть обманутым.

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


13.2. Почему идея сильная

Классические генеративные подходы часто требовали явно писать правдоподобие.
GAN обещал другое:

Не обязательно выписывать плотность.
Достаточно уметь сэмплировать и иметь критика, который толкает сэмплы к реальности.

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

Обмен уже на уровне философии:

Получили Чем заплатили
Острый сигнал «похоже / не похоже» Нестабильное обучение
Не нужно явно нормировать плотность Коллапсы и осцилляции
Сильные визуальные результаты (в пике эпохи) Трудно сравнивать модели честно

13.3. Кошмары сходимости

Если вы когда-нибудь «просто запустите GAN», вы встретите хотя бы один из сюжетов:

Mode collapse.
G находит несколько фейков, которые стабильно обманывают D, и повторяет их. Разнообразие умерло.

Гонка вооружений.
D стал слишком сильным — градиент для G почти ноль.
Или G временно обманывает слабого D — обучение пляшет.

Чувствительность к гиперпараметрам.
Learning rate, частота обновлений D/G, архитектура критиков — всё становится детонатором.

Чаша против седла

Инженерный вывод важнее зоопарка трюков (WGAN, hinge, spectral norm…):

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


13.4. Что осталось после эпохи «GAN everywhere»

GAN не исчезли. Они перестали быть единственным королём генерации картинок.

Их уроки остались:

  1. Критик/дискриминатор как обучаемая метрика — мощный приём.
  2. Adversarial loss точечно живёт внутри других пайплайнов.
  3. Но для «нажми prompt → получи картинку» рынок ушёл к более управляемому обучению через шум (следующая глава).
flowchart TD
    A[Нужна генерация] --> B[Явное правдоподобие]
    A --> C[Игра G vs D]
    A --> D[Учить восстанавливать из шума]
    C --> C1[Резкость / нестабильность]
    D --> D1[Стабильнее масштабируется в современных системах]

Если бы вы были автором статьи…

  1. Придумайте метрику разнообразия, которая поймает mode collapse раньше, чем глаз устанет смотреть на одинаковые лица.

  2. Почему spectral norm на D может стабилизировать игру? Сформулируйте гипотезу без чтения оригинала — затем сверьте.

  3. Смешайте GAN-критика с автоэнкодером. Какую боль каждого подхода вы лечите, какую оставляете?

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