Глава 13. Игры разума (GANs)
Отличная идея: заставить две сети воевать друг с другом.
Кошмарная реализация: заставить эту войну сходиться.
До сих пор модели в основном отвечали на вопрос «что это?» или «где это?».
Генерация меняет направление стрелки: из шума или кода — в изображение, речь, молекулу.
Первый громкий современный ответ — adversarial training.
13.1. Две роли вместо одной функции потерь
Обычное обучение: модель минимизирует ошибку относительно целевого распределения / метки.
GAN предлагает игру:
- Generator G учится производить фейки;
- Discriminator D учится отличать фейки от реальных данных.
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 не исчезли. Они перестали быть единственным королём генерации картинок.
Их уроки остались:
- Критик/дискриминатор как обучаемая метрика — мощный приём.
- Adversarial loss точечно живёт внутри других пайплайнов.
- Но для «нажми prompt → получи картинку» рынок ушёл к более управляемому обучению через шум (следующая глава).
flowchart TD
A[Нужна генерация] --> B[Явное правдоподобие]
A --> C[Игра G vs D]
A --> D[Учить восстанавливать из шума]
C --> C1[Резкость / нестабильность]
D --> D1[Стабильнее масштабируется в современных системах]
Если бы вы были автором статьи…
-
Придумайте метрику разнообразия, которая поймает mode collapse раньше, чем глаз устанет смотреть на одинаковые лица.
-
Почему spectral norm на D может стабилизировать игру? Сформулируйте гипотезу без чтения оригинала — затем сверьте.
-
Смешайте GAN-критика с автоэнкодером. Какую боль каждого подхода вы лечите, какую оставляете?
Дальше — другой путь к генерации: сначала разрушить данные контролируемым шумом, потом выучить обратный процесс.