В лекции Стэнфордского университета в рамках курса CS236 рассматривается эволюция генеративно-состязательных сетей (GAN). Основное внимание уделяется переходу от минимизации дивергенции Йенсена — Шеннона к более широкому классу f-дивергенций и использованию расстояния Вассерштейна для решения проблем сходимости моделей.
🤖 Основы GAN: Обучение без функции правдоподобия 0:04
Генеративно-состязательные сети (GAN) представляют собой метод обучения моделей «без правдоподобия» (likelihood-free). Это означает, что разработчику больше не нужно выбирать специальные архитектуры или факторизовать распределение по цепному правилу, что обычно требуется для оценки вероятности каждой точки данных при максимизации правдоподобия . Вместо прямого сравнения распределений через дивергенцию Кульбака — Лейблера (KL), GAN используют классификатор, называемый дискриминатором .
Процесс обучения строится как минимаксная игра двух игроков:
- Генератор (G): Пытается создать образцы, максимально похожие на реальные данные, чтобы обмануть дискриминатор .
- Дискриминатор (D): Обучается отличать реальные образцы из набора данных от «подделок», созданных генератором .
- Метрика успеха: Если дискриминатор не может отличить образцы генератора от реальных, считается, что генератор обучен успешно .
При условии достижения оптимального дискриминатора, исходная целевая функция GAN фактически минимизирует дивергенцию Йенсена — Шеннона (Jensen-Shannon divergence) между распределением данных и распределением модели . Лектор отмечает, что на практике это реализуется через две нейронные сети, где генератор трансформирует простые образцы (например, из распределения Гаусса) в сложные объекты .
📉 Обобщение через f-дивергенции 7:32
Хотя классические GAN ориентированы на дивергенцию Йенсена — Шеннона, это лишь частный случай. Существует более широкий класс мер близости — f-дивергенции. Лектор поясняет, что f-дивергенция между двумя плотностями $p$ и $q$ определяется через ожидание функции $f$ от отношения плотностей $p/q$ .
Для того чтобы функция $f$ определяла валидную дивергенцию, она должна соответствовать трем техническим условиям:
- Быть выпуклой (convex) .
- Быть полунепрерывной снизу (lower semicontinuous) .
- Равняться 0 при аргументе 1 ($f(1) = 0$) .
Выбирая различные формы функции $f$, можно получить разные известные дивергенции:
- KL-дивергенция: получается при $f(u) = u \log u$ .
- Обратная KL-дивергенция: используется при $f(u) = -\log u$ .
- Дивергенция Йенсена — Шеннона: специфическая сложная форма $f$ .
- Другие варианты: общая вариация (total variation), дивергенция Альфа, квадрат расстояния Хеллингера .
Основная сложность здесь заключается в том, что мы не можем вычислить отношение плотностей $p/q$ напрямую, так как истинное распределение данных $p_{data}$ нам неизвестно .
🧠 Математический трюк: Сопряжение Фенхеля 24:26
Чтобы оптимизировать f-дивергенции без прямого вычисления вероятностей, используется концепция выпуклого сопряжения (сопряжения Фенхеля). Для любой выпуклой функции $f$ можно найти сопряженную функцию $f^*$, через которую исходная функция $f$ выражается как результат задачи оптимизации .
Это позволяет переписать f-дивергенцию в виде, который не требует вычисления отношения плотностей внутри функции $f$ . В результате сложная задача сводится к разности двух ожиданий:
- Ожидание функции дискриминатора на реальных данных (распределение $p$) .
- Ожидание сопряженной функции на образцах модели (распределение $q$) .
Лектор подчеркивает, что эта формулировка идеально ложится в архитектуру GAN: дискриминатор $T$ теперь выступает в роли функции, максимизирующей нижнюю границу f-дивергенции . Чем гибче архитектура нейронной сети дискриминатора, тем точнее будет оценка дивергенции . По мнению лектора, использование разных f-дивергенций дает разработчикам гибкость в определении функции потерь в зависимости от конкретной задачи .
🚚 Wasserstein GAN и «расстояние землекопа» 48:57
Лектор указывает на фундаментальную проблему f-дивергенций: если распределения модели и данных имеют непересекающиеся носители (disjoint supports), дивергенции часто становятся бесконечными или константными . В таких случаях градиентный спуск не дает генератору никакого сигнала для обучения: модель «не знает», в какую сторону двигаться, чтобы стать ближе к данным .
Решением является расстояние Вассерштейна (Wasserstein distance), также известное как Earth Mover’s distance («расстояние землекопа»). Интуитивно оно описывается так: если представить распределения вероятностей как кучи земли, то расстояние Вассерштейна — это минимальное количество усилий (масса земли, умноженная на расстояние переноса), необходимых для превращения одной кучи в другую .
Математические особенности W-GAN:
- Устойчивость: Расстояние Вассерштейна меняется плавно даже тогда, когда носители распределений не пересекаются .
- Критик вместо дискриминатора: В W-GAN дискриминатор часто называют «критиком», так как он не классифицирует данные, а оценивает расстояние .
- Условие Липшица: Для работы метода функция критика должна быть ограничена — её наклон (производная) не может превышать единицу .
- Реализация: На практике ограничение Липшица достигается либо через «обрезку» весов (weight clipping), либо через штраф за градиент (gradient penalty) .
По словам лектора, W-GAN гораздо стабильнее в обучении, чем обычные GAN, и практически исключает проблему исчезающих градиентов .
🔍 Извлечение признаков и BiGAN 1:17:15
Обычные GAN хорошо генерируют данные из скрытого пространства $z$, но не умеют выполнять обратную операцию — находить скрытый код $z$ для конкретного изображения $x$ . Чтобы получить полезные признаки (features) для последующих задач машинного обучения, лектор предлагает использовать архитектуру BiGAN (Bidirectional GAN) .
Ключевые отличия BiGAN:
- Энкодер (E): Дополнительная сеть, которая отображает реальные данные $x$ в скрытое пространство $z$ .
- Объект дискриминации: Дискриминатор в BiGAN оценивает не просто изображения, а пары $(x, z)$. Он должен отличить пару «реальное изображение + его код из энкодера» от пары «сгенерированное изображение + его исходный шум из априорного распределения» .
- Результат: После обучения энкодер учится «инвертировать» генератор. Это позволяет использовать BiGAN для обучения без учителя, кластеризации и переноса обучения .
Лектор отмечает, что интуиция BiGAN схожа с вариационными автоэнкодерами (VAE), однако в BiGAN соответствие между кодами и данными обеспечивается не через KL-дивергенцию, а через состязательный тест дискриминатором .