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

Почему исходный latent неудобен

В обычном GAN шум zN(0,I)z\sim\mathcal N(0,I) подаётся прямо в generator. Координаты zz не обязаны соответствовать осмысленным изменениям. Путь между двумя кодами может менять позу, фон и идентичность одновременно.

StyleGAN вводит mapping network:

w=f(z),w=f(z),

а affine-преобразования A(w)A_\ell(w) управляют слоями synthesis network. Mapping может «развернуть» распределение и сделать направления в ww более удобными для генерации.

Generator начинает с обучаемой константы, а не с пространственной карты, полученной из zz. На каждом масштабе style модулирует каналы свёртки; случайный noise добавляет мелкие стохастические детали.

Рисунок шире экрана — проведите по немуОткрыть целиком ↗
Архитектурная схема StyleGAN mapping z to w and style modulation at resolutions
Рис. 83.1. Код входит в генератор на нескольких масштабах

Слева zz проходит mapping network и даёт ww. Справа synthesis растёт от 4×44\times4 до 1024×10241024\times1024; одинаковый ww через разные affine-блоки управляет слоями. Крупные и мелкие признаки подписаны у соответствующих разрешений.

Модуляция и демодуляция

Пусть style даёт коэффициенты sis_i для входных каналов свёртки. Веса модулируются:

wijk=siwijk.w'_{ijk}=s_iw_{ijk}.

Затем demodulation нормирует выходной канал:

wijk=wijki,k(wijk)2+ε.w''_{ijk}= \frac{w'_{ijk}} {\sqrt{\sum_{i,k}(w'_{ijk})^2+\varepsilon}}.

Так style меняет относительный вклад каналов, а масштаб активаций остаётся управляемым. Это не «вставить цвет глаз» готовым параметром; признаки возникают в совместно обученном базисе.

Path length regularization поощряет близкий масштаб изменения изображения при одинаковом шаге в latent:

Ew,y(Jwy2a)2.\mathbb E_{w,y} \left( \|J_w^\top y\|_2-a \right)^2.

Она делает геометрию более ровной, но не гарантирует независимых семантических осей.

Style mixing как эксперимент

Возьмём коды wA,wBw_A,w_B. До некоторого слоя используем wAw_A, после — wBw_B. Ранние слои работают на малом пространственном разрешении и меняют глобальную компоновку; поздние — локальные детали.

Матрица mixing experiment должна показывать не лучшие четыре примера, а фиксированную сетку источников и границу слоёв. Если идентичность меняется поздно, заявленное разделение масштабов неидеально.

Рисунок шире экрана — проведите по немуОткрыть целиком ↗
Сетка генераций с coarse style по строкам fine style по столбцам
Рис. 83.2. Матрица style mixing отделяет масштабы

Строки задают wAw_A на слоях 443232, столбцы — wBw_B на 646410241024. Поля фигуры перечисляют наблюдаемые изменения: ракурс и форма следуют строкам, текстура и фон чаще следуют столбцам. Исключения отмечены, а не скрыты.

Лаборатория масштаба

Крупный стиль, мелкая текстура и adversarial-сдвиг

Загружается живая иллюстрация…

Передвигайте границу style mixing. Для каждого уровня фиксируйте, какие измеримые признаки изменились: положение landmarks, средний цвет фона, частотный спектр текстуры. Не полагайтесь только на словесное впечатление.

Во второй части добавьте малое направленное возмущение к изображению classifier-а. Сравните визуальную величину и сдвиг logits. Генеративное редактирование и adversarial perturbation различаются целью, но оба изучают чувствительность функции в многомерном пространстве.

Инверсия: найти код существующего изображения

Для реального xx ищут ww:

w=argminw[λpixG(w)x22+λpercϕ(G(w))ϕ(x)22].w^*=\arg\min_w \left[ \lambda_{\mathrm{pix}}\|G(w)-x\|_2^2 +\lambda_{\mathrm{perc}} \|\phi(G(w))-\phi(x)\|_2^2 \right].

Pixel loss хранит точные цвета, perceptual loss — признаки сети ϕ\phi. Если объект лежит вне learned manifold, точной реконструкции нет. Расширенное W+W^+ разрешает отдельный style каждому слою и реконструирует лучше, но редактирование становится менее устойчивым.

После инверсии можно двигать w+αdw^*+\alpha d, где dd — найденное направление признака. Проверяют не только целевое изменение, но и сохранение identity и фона.

Состязательное возмущение

Classifier fθ(x)f_\theta(x) можно атаковать в ограничении δε\|\delta\|_\infty\le\varepsilon. Fast Gradient Sign Method:

xadv=x+εsignxL(fθ(x),y).x_{\mathrm{adv}}= x+\varepsilon\operatorname{sign} \nabla_x\mathcal L(f_\theta(x),y).

Каждый пиксель меняется мало, но миллионы согласованных изменений суммируются в признаках. Projected Gradient Descent повторяет маленькие шаги и проецирует обратно:

xk+1=ΠBε(x)(xk+αsignxL(fθ(xk),y)).x^{k+1}= \Pi_{B_\varepsilon(x)} \left(x^k+\alpha\operatorname{sign} \nabla_x\mathcal L(f_\theta(x^k),y)\right).

Норма задаёт threat model. \ell_\infty ограничивает каждый пиксель, но не гарантирует перцептивную незаметность. Поворот, печать или изменение освещения требуют других множеств преобразований.

Рисунок шире экрана — проведите по немуОткрыть целиком ↗
Исходное изображение adversarial perturbation усиленная в 10 раз и график logits
Рис. 83.3. Малое по норме, большое по решению

Показаны исходник, δ\delta с десятикратным усилением для видимости и x+δx+\delta. Под ними logits правильного и ошибочного классов по шагам PGD; вертикальная линия отмечает пересечение decision boundary.

Защита и честная атака

Adversarial training минимизирует worst-case loss:

minθE(x,y)maxδεL(fθ(x+δ),y).\min_\theta \mathbb E_{(x,y)} \max_{\|\delta\|\le\varepsilon} \mathcal L(f_\theta(x+\delta),y).

Внутренний максимум приближает PGD. Robust accuracy обычно ниже clean accuracy: устойчивость имеет цену. Слабая атака может создать ложное чувство защиты; нужна разная инициализация, достаточно шагов и проверка градиентов.

Gradient masking делает gradient бесполезным, но не модель устойчивой. Black-box transfer или gradient-free атака иногда обходят маскировку.

Связь с валидацией моделей принципиальна: threat model, бюджет атаки и adaptive adversary входят в условие метрики.

Сравнивать защиты можно лишь при одинаковом бюджете атаки. Число шагов, restart, размер шага и доступ к градиенту запишите рядом с robust accuracy, иначе одна цифра не воспроизводит эксперимент.

FFHQ и ответственность данных

FFHQ содержит 70 000 изображений лиц, собранных из Flickr с лицензиями. Набор разнообразнее ранних celebrity datasets, но не представляет случайную выборку мира. Генерация лиц создаёт риски для идентичности и согласия и открывает возможность злоупотребления.

Аудит StyleGAN включает:

  • nearest neighbors и memorization;
  • качество по возрастным и визуальным группам;
  • failure cases аксессуаров и фона;
  • provenance output;
  • ограничения распространения весов;
  • проверку редактирования на сохранение identity.

Техническая редактируемость не равна этической допустимости применения.

Мини-исследование: редактирование без скрытой подмены

Выберите measurable attribute, например угол поворота головы, и direction dd в latent. Для 200 исходных кодов примените α[3,3]\alpha\in[-3,3]. Target effect измерьте pose estimator-ом, collateral effects — identity similarity, фон, яркость и другие атрибуты. Покажите среднюю кривую вместе с worst 10%.

Если pose растёт монотонно, а identity резко меняется после α>1,5|\alpha|>1{,}5, у направления есть рабочий диапазон. Интерфейс редактирования должен ограничивать slider этим диапазоном и показывать, что край — экстраполяция.

Проведите cycle test: примените +αd+\alpha d, затем αd-\alpha d. В идеальной линейной геометрии вернётся исходник. Reconstruction error обнаруживает нелинейность и clipping. Сравните WW и W+W^+: второй лучше реконструирует, но может хуже выдерживать цикл.

Такой протокол соединяет инверсию VAE и StyleGAN: latent edit оценивается как преобразование с target и побочными эффектами, а не как галерея удачных лиц.

Мини-исследование: perceptual и нормативная малость

Для adversarial perturbations вычислите одновременно \ell_\infty, 2\ell_2, LPIPS и результат печать–фото или JPEG. Малое значение одной нормы не означает незаметность в другой. Покажите scatter attack success против каждой меры.

Попросите людей сравнить пары вслепую, не сообщая, где атака. Их detection rate даёт дополнительный perceptual контроль, но не делает возмущение допустимым: в медицинском изображении изменение нескольких пикселей может быть предметно значимо.

Наконец, сравните random noise той же нормы. Если оно почти не меняет prediction, эффект объясняет направленность gradient. Это связывает атаку с оптимизацией по градиенту, а не с общей хрупкостью к любому шуму.

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

Проверьте physical transform: случайные crop, JPEG и небольшую перспективу на каждом PGD-шаге через expectation over transformations. Если perturbation сохраняет эффект, threat сильнее. Но по-прежнему не называйте его «незаметным», пока это не проверено людьми и предметными ограничениями.

Для защиты сравните white-box attack на защищённую модель и transfer от обычной. Если white-box неожиданно слабее чёрного ящика, вероятно gradient masking. Robust evaluation должна пытаться опровергнуть устойчивость.

Не смешивайте robustness и calibration. Модель может сохранить правильный класс под атакой, но выдавать чрезмерную уверенность, либо менять класс и честно снижать confidence. Стройте robust accuracy, negative log-likelihood и abstention curve.

При randomized defense attack должен усреднять gradient по случайности. Один forward создаёт шумную оценку и завышает защиту. Все параметры атаки, число restart и критерий успеха входят в воспроизводимое условие.

Геометрия должна выдержать вмешательство

StyleGAN делает latent управление многоуровневым и исследуемым через mixing и inversion. Но интерпретируемость направлений неполна. Adversarial examples показывают, насколько локальная геометрия сети может расходиться с человеческим восприятием. В обоих случаях надёжный вывод требует измерения, а не одной впечатляющей картинки.

Задачи