Изменения

Перейти к: навигация, поиск

Generative Adversarial Nets (GAN)

2741 байт добавлено, 10:14, 23 января 2021
Нет описания правки
# Использовать нормализационные слои (например, batch normalization или layer normalization) в $G$ и $D$;
# Использовать метки для данных, если они имеются, т.е обучать дискриминатор еще и классифицировать образцы.
 
==Mode Collapse==
 
[[File:mode_collapse.png|700px|thumb|right|Рисунок 4. Проблема mode collapse в GAN сетях, на нижнем ряду представлен обычный GAN, на верхнем - UGAN с 10 обратными шагами(англ. unrolled steps). Источник: https://arxiv.org/pdf/1611.02163.pdf]]
 
В процессе обучения генератор может прийти к состоянию, при котором он будет всегда выдавать ограниченный набор выходов. При этом пространство, в котором распределены сгенерированные изображения, окажется существенно меньше чем пространство исходных изображений.
Главная причина этого в том, что генератор обучается обманывать дискриминатор, а не воспроизводить исходное распределение.
Если генератор начинает каждый раз выдавать похожий выход, который является максимально правдоподобным для текущего дискриминатора, то зависмость от $z$ падает, а следовательно и градиент $G(z)$ стремиться к 0. Лучшей стратегией для дискриминатора будет улучшение детектирования этого конкретного изображения.
Так на следующих итерациях наиболее вероятно, что генератор придет к другому изображению, хорошо обманывающему текущий дискриминатор, а дискриминатор будет учиться отличать конкретно это новое изображение. Этот процесс не будет сходиться и количество представленных мод не будет расти поэтому приблизиться к исходному распределению не удастся. На рисунке 4 наглядно представлена проблема mode collapse и то как генератор "путешествует" по модам не приближаясь к target.
 
На текущий момент Mode collape является одной из главных проблем GAN, эффективное решение которой ещё ищется.
==Применение==
==ControlGAN (Controllable Generative Adversarial Networks)==
[[File:ControlGANconceptControlGANConcept.png|200px350px|thumb|right|Рисунок 14. Концепт модели ControlGAN. Источник: <tex>\href{https://arxiv.org/pdf/1708.00598.pdf}{\text{[x]}}</tex>]]
Контролируемые порождающие состязательные сети (англ. Controllable Generative Adversarial Nets, '''ControlGAN''') $-$ модифицированная версия алгоритма GAN, состоящая из трех нейронных сетей: генератор, дискриминатор, классификатор. Концепт модели ControlGAN (рис. 14). Как и в обычной версии алгоритма, генератор пытается обмануть дискриминатор, и одновременно с этим пытается быть классифицированным как нужный класс в классификаторе.
Хоть CGAN и являются самыми популярными моделями для генерации образцов, зависимых от внешних данных, но лучше они умеют генерировать образцы лишь с глобальными задуманными заданными ярко отличительными чертами. К примеру(цвет волос, сгенерировать изображения лица со светлыми волосами не составляет проблемвеснушки), но более тонкие чертыменее явные детали (форма бровей, как приоткрытый рот или наличие сережек сережки) вызывают затруднения(Но более поздний StyleGAN2 справляется и с этой задачей). C помощью отделения классификатора от дискриминатора, ControlGAN позволяет контролировать черты образцов. К тому же и само качество сгенерированных изображений может быть улучшено засчет того, что такое разделение на три составляющие дает возможность дискриминатору лучше выполнять свою главную задачу.
[[File:ControlGANPrinciple.png|200px|thumb|right|Рисунок 15.
Принцип работы. Источник:<tex>\href{https://arxiv.org/pdf/1708.00598.pdf}{\text{[x]}}</tex>]]
Иллюстрация принципа работы сети (рис. 15). Зеленые линии $-$ результат работы классификатора; оранжевые $-$ дискриминатора. Серые фигуры $-$ образцы из разных классов. Результат генератора обозначается голубыми участками, которыми он показывает распределение образцов, как и пытается быть классифицированным верно.
ControlGAN минимизирует следующие уравнения:
<tex>\delta_D = arg min\{\alpha L_D(t_D, D(x;\delta_D)) + (1 - \alpha)L_D((1 - t_D), D(G(z, l; \delta_G);\delta_D))\}</tex>,
<tex>\delta_D = arg min\{\gamma_t L_C(l, G(z, l; \delta_G)) + L_D(t_D, D(G(z, l; \delta_G);\delta_D)\}</tex>,
<tex>\delta_C = arg min\{L_C(l, x; \delta_C)\}</tex>.
<tex>t_D</tex> $-$ метка для генератора, <tex>\alpha</tex> $-$ параметр для дискриминатора, <tex>\gamma_t</tex> $-$ параметр для входных меток на генератор, <tex>l</tex> $-$ метки образца <tex>x</tex>.
ControlGAN управляет тем, продолжать ли обучение на данных или обучаться генерировать образцы c помощью параметра $E$, который сохраняет значение функции потерь классификации. <tex>\gamma_t</tex> $-$ параметр обучения, чтобы сохранить значение <tex>E</tex>, изменяющегося со временем <tex>t</tex>.
<tex>E = \dfrac{L_C(l,G(z,l;\delta_G))}{L_C(l, x)}</tex>,
<tex>\gamma_t = \gamma_{t - 1} + r \{L_C(l, G(z,l;\delta_G)) - E \cdot L_C(l, x)\}</tex>,
<tex>r</tex> $-$ коэффициент обучения для <tex>\gamma_t</tex>.
==Проблема запутывания (Проблема связанности характеристик)==
<tex>d(n, z) = n^{T}z</tex>, где <tex>n \in \mathbb{R}^{d}</tex>.
Это Данная функция не является расстоянием строго подходит под определение расстояния из-за наличия отрицательных значений (но знак нам необходим для определения знака параметра характеристики).
Ожидается, что функция оценки $f$ по данному параметру линейно зависит от "расстояния":
<tex>f(g(z)) = \lambda d(n, z)</tex>.
[[File:SubspaceManipulation.png|200px|thumb|right|Рисунок 16. Манипулирование подпространством. Источник:<tex>\href{https://arxiv.org/pdf/1907.10786.pdf}{\text{[x]}}</tex>]]
В таком случае выраженность характеристики зависит от "расстояния" до этой гиперплоскости.
Аналогично происходит и в случае нескольких характеристик:
<tex>f_{S}(g(z)) = \Lambda N^{T}z</tex>, где <tex>\Lambda</tex> - диагональная матрица с линейными коэффициентами <tex>\lambda_{i}</tex> для каждой из характеристик, <tex>N = [n_1, . . . , n_m]</tex> $-$ границы.
В случае если <tex>\Lambda</tex> ${{-$ --}} диагональная, то проблемы запутывания нет.
В противном случае проделаем манипуляции в скрытом подпространстве (рис. 16). Проецируя, можно найти такое направление <tex>n_1 - (n_1^{T} - n_2)n_2</tex> в скрытом подспространстве, что вдоль этих направлений у сгенерированных изображений будем изменяться характеристика $1$ в независимости от характеристики $2$.
При слишком большом "расстоянии" от гиперплоскости соответствующая характеристика слишком сильно делает лицо непохожим на изначальное, но это объяснимо нормальным распределением вектора шума.
 
 
==См. также==
101
правка

Навигация