Изменения

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

Generative Adversarial Nets (GAN)

3729 байт добавлено, 15:14, 23 января 2021
Проблема стабильности обучения
# Использовать метки для данных, если они имеются, т.е обучать дискриминатор еще и классифицировать образцы.
===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]]
На текущий момент Mode collape является одной из главных проблем GAN, эффективное решение которой ещё ищется.
Возможные решения проблемы mode collapse:
* WGAN - использование метрика Вассерштейна (англ. Wasserstein Loss) внутри функции ошибки.
* UGAN (Unrolled GAN) - для генератора используется функция потерь, которая не только от того, как текущий дискриминатор оценивает выходы генератора, но и от выходов будущих версий дискриминатора.
 
===Проблема стабильности обучения===
Задача обучения двух состязательных сетей не является задачей поиска локального или глобального минимума функции, а является задачей поиска точки равновесия двух игроков. В теории игр это точка называется точкой равновесия Нэша (англ. Nash equilibrium) в которой оба игрока больше не получают выгоды, хотя следуют оптимальной стратегии.
Рассмотрим задачу поиска этой точки на игрушечном примере, где $G$ хочет максимизировать $xy$ а $D$ - минимизировать. Будем обновлять параметры $x$ и $y$ на основе градиентного спуска:
<tex> \Delta x = \alpha\frac{\delta(x*y)}{ \delta(x)} </tex>
<tex> \Delta y = - \alpha\frac{\delta(x*y)}{ \delta(y)} </tex>
Если изобразить на графике поведение $x$,$y$ и $xy$ (рис. №5) то станет ясно, что они не сойдутся, а амплитуда их движения только увеличивается.
 
В оригинальной статье про GAN используется дивергенция Дженсена-Шеннона (англ. Jensen–Shannon divergence), которая в свою очередь использует дивергенцию Кльбака-Лейблера(англ. Kullback–Leibler divergence):
:<math>D_\text{KL}(P \parallel Q) = \int_{-\infty}^\infty p(x) \log\left(\frac{p(x)}{q(x)}\right)\, dx</math>
Нетрудно заметить, что при наличие $x$ в которых $q(x)=0$ интеграл разойдется, что плохо влияет на сходимость обучения.
 
Возможные решения проблемы стабильности:
*Регуляризация - Добавление шума ко входам дискриминатора и соответствующая настройка гиперпараметров дискриминатора.
*PGGAN (Progressive Growing of GANs - разработана NVidia) - в процессе работы разрешение изображений увеличивается от очень малых (4 на 4 пикселя), до конечных (1024 на 1024 пикселя), что позволяет тренировать сначала выявление крупных черт а затем более мелких, что крайне положительно сказывается на стабильности.
*WGAN - В качестве функции дивергенции используется метрика Вассерштейна, которая в большинстве случаев решает проблему расходимости интеграла в функции Дженсена-Шеннона.
==Применение==
20
правок

Навигация