Сердце машины воспроизводится с разрешения
Общедоступный номер: PaperWeekly
Автор: Го Сяофэн (iQiyi)
Некоторое время назад в процессе изучения GAN я обнаружил, что большинство текущих обзорных статей по GAN написаны Яном Гудфеллоу или Ван Фейюэ из Института автоматизации в 2016 году. Однако в области глубокого обучения и GAN его прогресс исчисляется месяцами, и я чувствую, что эти два обзора немного устарели.
Недавно я нашел недавний обзорный документ GAN, более 40 страниц, в котором представлены различные аспекты GAN, поэтому я изучил и организовал заметки следующим образом. Большая часть содержания статьи основана на том, что я узнал, и любое несоответствие приветствуется.
Кроме того, в этой статье даны ссылки на многие материалы блога. Если есть какие-либо нарушения, пожалуйста, удалите их в личном сообщении.Каталог статей выглядит следующим образом:
Базовое введение в GAN
Генеративно-состязательные сети (GAN, Generative Adversarial Networks) как превосходная генеративная модель породили множество интересных приложений для генерации изображений.По сравнению с другими генеративными моделями GAN имеет две основные характеристики:
1. Не опирается ни на какие предшествующие предположения.Многие традиционные методы предполагают, что данные следуют определенному распределению, а затем используют максимальную вероятность для оценки распределения данных.
2. Способ создания реальных образцов очень прост.Способ, которым GAN генерирует реальные образцы, заключается в прямом распространении генератора, в то время как метод выборки традиционного метода очень сложен Заинтересованные студенты могут обратиться к книге «Машинное обучение» г-на Чжоу Чжихуа для различных методов выборки. введение.
Ниже мы представим два вышеуказанных пункта.
Основные понятия ГАН
GAN (Generative Adversarial Networks), как следует из названия, является генеративной, состязательной сетью. Чтобы быть более конкретным, это изучение генеративной модели распределения данных через конфронтацию.
Так называемая конфронтация относится к противостоянию между генеративной сетью и дискриминантной сетью. Сеть генерации генерирует максимально реалистичные образцы, а дискриминантная сеть пытается определить, является ли образец реальным образцом или сгенерированным поддельным образцом. Схематическая диаграмма выглядит следующим образом:
Скрытая переменная z (обычно случайный шум, подчиняющийся распределению Гаусса) генерирует Xfake через генератор, а дискриминатор отвечает за оценку того, являются ли входные данные сгенерированным образцом Xfake или реальным образцом Xreal. Оптимизированная целевая функция имеет вид:
Для дискриминатора D это проблема бинарной классификации, а V(D,G) — обычная потеря кросс-энтропии в задачах бинарной классификации. Для генератора G, чтобы максимально обмануть D, необходимо максимизировать дискриминационную вероятность D(G(z)) сгенерированных отсчетов, то есть минимизировать log(1-D(G(z) )), примечание: log( Член D(x)) не имеет ничего общего с генератором G, поэтому его можно игнорировать.
При реальном обучении генератор и дискриминатор обучаются попеременно, то есть сначала обучается D, затем G и так далее. Стоит отметить, что для генераторов, минимизирующих, что минимизирует максимальное значение V(D,G).
Чтобы убедиться, что V(D,G) достигает максимального значения, мы обычно обучаем дискриминатор на k итераций, а затем итерируем генератор 1 раз (но на практике оказывается, что k обычно принимает 1). Когда генератор G фиксирован, мы можем взять производную V (D, G), чтобы найти оптимальный дискриминатор D * (x):
Подставив оптимальный дискриминатор в приведенную выше целевую функцию, можно дополнительно обнаружить, что при оптимальном дискриминаторе целевая функция генератора эквивалентна оптимизации JS-расхождения Pdata(x) и Pg(x) (JSD, Jenson Shannon Divergence).
Можно доказать, что когда емкости G и D будут достаточными, модель сойдется, и они достигнут равновесия по Нэшу. В это время Pdata(x) = Pg(x), дискриминатор имеет вероятность предсказания 1/2, независимо от того, используются ли выборки в Pdata(x) или Pg(x), то есть сгенерированные выборки и реальные образцы достигают уровня сложности уровня различия.
целевая функция
Ранее мы упоминали, что целевой функцией GAN является минимизация расхождения JS двух распределений. На самом деле существует много способов измерить расстояние между двумя распределениями, и дивергенция JS — лишь один из них. Если мы определим разные меры расстояния, мы можем получить разные целевые функции. Многие улучшения стабильности обучения GAN, такие как EBGAN, LSGAN и т. д., определяют метрики расстояния между различными распределениями.
f-дивергенция
f-дивергенция использует следующую формулу для определения расстояния между двумя распределениями:
В приведенной выше формуле f — выпуклая функция, и f(1)=0 . С различными f-функциями (генератором) можно достичь разных целей оптимизации. детали следующим образом:
Стоит отметить, что эта мера дивергенции не является симметричной, то есть Df(Pdata||Pg) и Df(Pg||Pdata) не равны.
ЛСГАН
Как упоминалось выше, LSGAN находится в f-дивергенцииособые обстоятельства. В частности, потеря LSGAN выглядит следующим образом:
В оригинальной работе a=c=1, b=0.LSGAN имеет два основных преимущества:
-
Стабильное обучение: решает проблему насыщения градиента в традиционном процессе обучения GAN.
-
Улучшите качество генерации: наказывая сгенерированные выборки далеко от границы решения дискриминатора.
Для первого пункта, стабильной тренировки, вы можете сначала посмотреть на картинку:
Левая часть приведенного выше рисунка представляет собой сравнительную диаграмму ввода и вывода, когда традиционный GAN использует сигмоидальную перекрестную энтропию в качестве потерь. Правая часть приведенного выше рисунка представляет собой сравнительную диаграмму ввода и вывода, когда LSGAN использует потери методом наименьших квадратов. Можно видеть, что на левом рисунке, когда вход относительно велик, градиент равен 0, то есть вход кросс-энтропийной потери склонен к насыщению градиента. Потери по методу наименьших квадратов справа нет.
Во-вторых, улучшите качество сборки. Это также подробно объясняется в исходном тексте. В частности: для некоторых выборок, правильно классифицированных дискриминатором, это не способствует градиенту. Но должна ли выборка, правильно классифицированная дискриминатором, быть выборкой, очень близкой к реальному распределению данных? Очевидно нет.
Рассмотрим следующую идеальную ситуацию: хорошо обученный GAN, реальное распределение данных Pdata и сгенерированное распределение данных Pg полностью совпадают, поверхность решения дискриминатора проходит через реальные точки данных, поэтому, в свою очередь, мы используем точки выборки для измерения расстояние генерации от поверхности принятия решений Качество выборки: чем ближе выборка к поверхности принятия решений, тем лучше обучается GAN.
На приведенном выше рисунке b некоторые точки, находящиеся далеко от поверхности принятия решений, классифицируются правильно, но они не являются хорошо сгенерированными выборками. Традиционные GAN обычно игнорируют это. Для LSGAN из-за использования потери по методу наименьших квадратов расстояние от поверхности решения до точки выборки рассчитывается, как показано на рисунке c, точки, находящиеся дальше от поверхности решения, могут быть «оттянуты» назад, т. е. точки, более далекие от реальных данных, могут быть «вытянуты» «возвратом».
Интегральная вероятностная метрика (IPM)
IPM определяет семейство функций качества f, которые измеряют расстояние между любыми двумя распределениями. в компактном пространстве, определим P(x) как вероятностную меру x. Тогда IPM между двумя распределениями Pdata, Pg можно определить по следующей формуле:
Подобно f-дивергенции, различные функции f также могут определять ряд различных целей оптимизации. Типичными из них являются WGAN, Fisher GAN и т.д. Ниже приводится краткое введение в WGAN.
WGAN
WGAN предлагает новую меру расстояния - расстояние движения Земли (EM, расстояние движения Земли), также называемое расстоянием Вассерштейна. Для ознакомления с расстоянием Вассерштейна см.:Народное расстояние Вассертайн[1].
Расстояние Вассерштейна определяется следующим образом:
⊓(Pdata,Pg) представляет набор совместных распределений, а предельные распределения любого распределения γ в этом наборе совместных распределений — это Pdata(x) и Pg(x).
Интуитивно функцию распределения вероятностей (PDF) можно понимать как качество случайных величин в каждой точке, поэтому W(Pdata,Pg) представляет собой минимальную работу, необходимую для перемещения распределения вероятностей Pdata(x) к Pg(x).
WGAN также можно объяснить с помощью теории оптимальной передачи: генератор WGAN эквивалентен решению карты оптимальной передачи, а дискриминатор эквивалентен вычислению расстояния Вассерштейна, то есть полной стоимости оптимальной передачи [4]. Теоретический вывод и объяснение WGAN сложнее, но кодовая реализация очень проста. В частности [3]:
-
Последний слой дискриминатора удаляет сигмовидную
-
Потеря генератора и дискриминатора не лог.
-
После каждого обновления параметров дискриминатора усекайте их абсолютные значения не более чем до фиксированной константы c
Третий пункт выше, в WGAN-GP, более поздней работе WGAN, заменяет усечение градиента штрафом за градиент.
Сравнение f-дивергенции и IPM
Есть две проблемы с f-дивергенцией: одна связана с размерностью пространства данныхувеличивается, f-дивергенцию становится очень трудно вычислить. Во-вторых, опорные наборы [3] двух распределений обычно не совпадают, что приводит к стремлению значений дивергенции к бесконечности.
IPM не зависит от размерности данных и равномерно сходится к Pdata}, Pg — расстояние между двумя распределениями. И даже когда наборы опор двух дистрибутивов не перекрываются, они не будут расходиться.
вспомогательная целевая функция
Во многих приложениях GAN дополнительные потери используются для стабилизации обучения или для других целей. Например, при переводе изображений, восстановлении изображений и сверхвысоком разрешении генератор добавит целевые изображения в качестве контрольной информации. EBGAN принимает дискриминатор GAN как функцию энергии и добавляет к дискриминатору ошибку реконструкции. CGAN использует информацию о метках категорий в качестве контрольной информации.
Другие распространенные генеративные модели
Авторегрессионные модели: pixelRNN и pixelCNN
Авторегрессионные модели оптимизируют модель, явно моделируя распределение вероятностей Pdata(x) данных изображения и используя оценку максимального правдоподобия. детали следующим образом:
Приведенная выше формула хорошо понятна.Для x1,x2,...,xi-1 вероятность всех p(xi), умноженных вместе, является распределением данных изображения. Если RNN используется для моделирования вышеупомянутых отношений, это pixelRNN. Если вы используете CNN, это pixelCNN. Детали следующие [5]:
Очевидно, что для pixelCNN или pixelRNN, поскольку его значения пикселей генерируются одно за другим, скорость будет очень медленной. WaveNet, популярная в сфере речи, представляет собой типичную авторегрессионную модель.
ВАЭ
PixelCNN/RNN определяет податливую функцию плотности, и мы можем напрямую оптимизировать вероятность обучающих данных; для вариационных автоэнкодеров мы определим податливую функцию плотности, моделируемую дополнительной скрытой переменной z. Схема ВАЭ выглядит следующим образом [6]:
В VAE средняя дисперсия реальной выборки X вычисляется нейронной сетью (при условии, что скрытые переменные подчиняются нормальному распределению), а затем выборочная переменная Z получается путем выборки и реконструируется. И VAE, и GAN изучают сопоставление скрытой переменной z с реальным распределением данных.Но в отличие от GAN:
1. Идея GAN относительно грубая, с использованием дискриминатора для измерения расстояния между сгенерированным модулем преобразования распределения (т.е. генератором) распределением и реальным распределением данных.
2. VAE не так интуитивно понятен, VAE реализует отображение преобразования распределения X = G (z), ограничивая скрытую переменную z подчинением стандартному нормальному распределению и восстанавливая данные.
Сравнение генеративных моделей
1. Модели авторегрессии генерируют данные путем явного моделирования вероятностных распределений;
2. И VAE, и GAN: предполагают, что скрытая переменная z подчиняется определенному распределению, и изучают отображение X=G(z), чтобы реализовать преобразование распределения скрытой переменной z и реального распределения данных Pdata(x);
3. GAN использует дискриминатор для измерения плюсов и минусов отображения X=G(z), в то время как VAE измеряет расхождение KL и ошибку реконструкции скрытой переменной z и стандартного нормального распределения.
Общая структура модели GAN
DCGAN
DCGAN предлагает использовать структуру CNN для стабилизации обучения GAN и использует следующие приемы:
-
Пакетная нормализация
-
Повышение частоты дискретизации с транспонированием
-
Используйте Leaky ReLu в качестве функции активации
Приведенные выше приемы полезны для стабилизации обучения GAN, а также могут быть использованы при необходимости при самостоятельном проектировании сетей GAN.
Иерархия
У GAN всегда было много проблем с генерацией изображений высокого разрешения.Иерархический GAN генерирует разрешение изображения шаг за шагом посредством послойной и поэтапной генерации. Типичными моделями, использующими несколько пар GAN, являются StackGAN и GoGAN. Используя один GAN, поэтапная генерация имеет ProgressiveGAN. Структуры StackGAN и ProgressiveGAN следующие:
самокодирующаяся структура
В классической структуре GAN дискриминационная сеть обычно рассматривается как вероятностная модель для различения реальных и сгенерированных выборок. В структуре автоэнкодера дискриминатор (с использованием AE в качестве дискриминатора) обычно рассматривается как функция энергии. Для образцов, находящихся ближе к пространству многообразия данных, энергия меньше, и наоборот. С этой метрикой расстояния естественно использовать дискриминатор для управления обучением генератора.
Почему в качестве дискриминатора можно использовать AE в качестве функции энергии для измерения расстояния между сгенерированным образцом и пространством коллектора данных? Во-первых, давайте посмотрим на потери AE:
Потеря АЭ является ошибкой реконструкции. При использовании AE в качестве дискриминатора, если вводятся реальные образцы, ошибка реконструкции будет небольшой. Если сгенерированные образцы являются входными, ошибка их восстановления будет большой. Поскольку для сгенерированных образцов AE сложно изучить сжатое представление изображения (т.е. сгенерированные образцы далеки от заполненного данными пространства). Следовательно, ошибка реконструкции VAE разумна как мера расстояния между Pdata и Pg. Типичные GAN со структурой автоэнкодера: BEGAN, EBGAN, MAGAN и т. д.
Препятствия на тренировках GAN
проблемы в теории
Дискриминатор классической GAN имеет две потери:
При использовании первой формулы выше в качестве потерь: когда дискриминатор оптимален, это эквивалентно минимизации расхождения JS между сгенерированным распределением и реальным распределением, потому что случайно сгенерированное распределение трудно иметь незначительное перекрытие с реальным распределение Помимо резкого характера расхождения JS, генератор сталкивается с проблемой исчезающих градиентов.
При использовании второй формулы выше в качестве потерь: при оптимальном дискриминаторе это эквивалентно минимизации прямой KL-расхождения сгенерированного распределения и истинного распределения и максимизации его JS-расхождения, которые противоречат друг другу и приводят к устойчивому, а асимметрия расхождения KL заставляет генератор предпочитать терять разнообразие, а не точность, что приводит к явлению режима коллапса [7] .
Проблемы на практике
На практике с GAN возникают две проблемы:
Во-первых, Ян Гудфеллоу, автор GAN, теоретически доказал, что GAN может достигать равновесия Нэша. Однако в нашей фактической реализации мы оптимизируем пространство параметров, а не пространство функций, что приводит к теоретическим гарантиям, которые не выполняются на практике.
Во-вторых, целью оптимизации GAN является минимаксная (минмаксная) задача, то есть, то есть при оптимизации генератора минимизируется
. Однако мы итеративно оптимизированы, Чтобы гарантировать, что V (G, D) максимизируется, требуется много итераций, что приводит к длительному времени обучения.
Если мы повторяем дискриминатор только один раз, то повторяем генератор один раз и продолжаем цикл. Таким образом, исходная минимаксная задача может легко стать минимаксной (максминной) задачей, но это две разные задачи, а именно:
Если изменение представляет собой минимаксную задачу, то итерация выглядит так: генератор сначала генерирует несколько выборок, затем дискриминатор дает неверные результаты и наказывает генератор, поэтому генератор корректирует сгенерированное распределение вероятностей. Однако это часто приводит к тому, что генератор становится «ленивым» и генерирует только несколько простых повторяющихся выборок, то есть отсутствие разнообразия, также известное как коллапс моды.
Советы по стабилизации обучения GAN
Как упоминалось выше, GAN имеет три основные проблемы в теории и на практике, приводящие к очень нестабильному тренировочному процессу и проблеме срыва режима. Чтобы улучшить вышеописанную ситуацию, можно использовать следующие приемы стабилизации тренировки:
Особенность соответствие:Метод прост, замените вывод в исходном GAN Loss на характеристики одного слоя дискриминатора. То есть минимизировать: расстояние между признаками сгенерированного изображения, проходящего через дискриминатор, и признаками, полученными при прохождении реального изображения через дискриминатор.
Сглаживание этикетки:Метки в обучении GAN равны 0 или 1, что делает достоверность, предсказываемую дискриминатором, как правило, выше. Использование сглаживания меток может решить эту проблему. В частности, это замена метки 1 случайным числом от 0,8 до 1,0.
Спектральная нормализация:WGAN и Improve WGAN ограничивают процесс оптимизации, накладывая условия Липшица, в то время как спектральная нормализация накладывает ограничения Липшица на каждый уровень дискриминатора, но спектральная нормализация в вычислительном отношении более эффективна, чем Improve WGAN.
ПатчГАН:Если быть точным, PatchGAN не используется для стабильного обучения, но эта технология широко используется в переводе изображений.PatchGAN эквивалентен различению каждого маленького участка изображения, что позволяет генератору генерировать более четкие и четкие края.
Конкретный метод заключается в следующем: предположим, что изображение размером 256 x 256 вводится в дискриминатор, а на выходе получается карта достоверности 4 x 4. Каждое значение пикселя в карте достоверности представляет уверенность в том, что текущий патч является реальным изображением, то есть PatchGAN. Размер текущего участка изображения равен размеру рецептивного поля, и, наконец, потери всех участков усредняются как окончательные потери.
Решение для коллапса режима
Улучшенный метод целевой функции
Чтобы избежать вышеупомянутой проблемы скачка режима из-за оптимизации maxmin, UnrolledGAN использует модифицированные потери генератора для ее решения. Конкретно UnrolledGAN обновляет генератор k раз при обновлении генератора, а эталонная Loss — это не потеря определенного времени, а потеря k итераций после дискриминатора.
Обратите внимание, что следующие k итераций дискриминатора не обновляют собственные параметры, а только вычисляют потери для обновления генератора. Этот метод позволяет генератору учитывать изменения следующих k дискриминаторов, избегая проблемы коллапса мод, вызванной переключением между разными модами. Это следует отличать от итерации генератора k раз, а затем итерации дискриминатора 1 раз [8].
DRAGAN вводит беспроигрышный алгоритм в теорию игр и преобразует его потери для решения проблемы коллапса мод [9]. Упомянутый выше EBGAN должен добавить ошибку реконструкции VAE для решения коллапса моды.
Улучшенный метод структуры сети
Многоагентная разнообразная GAN (MAD-GAN) использует несколько генераторов и один дискриминатор, чтобы обеспечить разнообразие генерации выборки. Конкретная структура выглядит следующим образом:
По сравнению с обычным GAN генераторов несколько больше, а при расчете потерь добавляется обычный член. Обычный член использует косинусное расстояние, чтобы ограничить согласованность выборок, сгенерированных тремя генераторами.
MRGAN добавляет дискриминатор, чтобы исправить проблему коллапса моды сгенерированных выборок. Конкретная структура выглядит следующим образом:
Входной образец x кодируется в скрытую переменную E (x) через кодировщик, а затем генератор восстанавливает скрытую переменную Во время обучения есть три потери.
DM и R (ошибка реконструкции) используются для создания реальных образцов. DD различает выборки, сгенерированные E (x) и Z. Очевидно, выборки, сгенерированные обоими, являются поддельными выборками, поэтому этот дискриминатор в основном используется для оценки того, имеют ли сгенерированные выборки разнообразие, то есть происходит ли коллапс моды.
Мини-партия Дискриминация
Дискриминация мини-пакетов Слой мини-пакетов устанавливается в среднем слое дискриминатора для расчета статистики выборки на основе расстояния L1.Установив эту статистику, он может определить, насколько близка выборка к другим пробам в партии. Эта информация может использоваться дискриминатором для идентификации образцов, которым не хватает разнообразия. Для генератора он пытается генерировать выборки с разнообразием.
Понимание скрытого пространства GAN
Скрытое пространство — это пространство для сжатого представления данных. Вообще говоря, нам не реально модифицировать изображение непосредственно в пространстве данных, потому что свойства изображения расположены в многообразии в многомерном пространстве. Но в скрытом пространстве, поскольку каждая скрытая переменная представляет определенное свойство, это возможно.
В этом разделе мы обсудимГАН как работать со скрытым пространством и его свойствами, а также изучить, как вариационные методы могут быть включены в в рамках ГАН.
разложение скрытого пространства
Входная скрытая переменная z GAN неструктурирована, и мы не знаем, какое свойство контролирует каждый бит в скрытой переменной. Поэтому некоторые ученые предложили разложить скрытую переменную на переменную условия c и скрытую переменную стандартного ввода z. В частности, он включает контролируемые методы и неконтролируемые методы.
контролируемый метод
Типичными контролируемыми методами являются CGAN и ACGAN.
CGAN принимает случайный шум z и метку класса c в качестве входных данных для генератора, а дискриминатор принимает сгенерированные выборки/реальные выборки и метки классов в качестве входных данных. Используйте это, чтобы узнать связь между метками и изображениями.
ACGAN принимает случайный шум z и метку класса c в качестве входных данных генератора, а дискриминатор принимает сгенерированную выборку/реальную выборку в качестве входных данных и регрессирует метку класса изображения. Используйте это, чтобы узнать связь между метками и изображениями. Эти две структуры следующие (CGAN слева, ACGAN справа):
Неконтролируемые методы
В отличие от контролируемых методов, неконтролируемые методы не используют никакой информации о метках. Следовательно, неконтролируемые методы должны отделять скрытое пространство, чтобы получить значимые представления признаков.
Пара InfoGAN разлагает входной шум на скрытую переменную z и условную переменную c (во время обучения условная переменная c выбирается из равномерного распределения), которые вместе подаются в генератор. Взаимное информационное представление переменной развязки (I(c;G(z,c)) достигается путем максимизации взаимной информации I(c;G(z,c)) c и G(z,c) во время обучения. имеется ли информация о G(z,c) в c, если взаимная информация I(c;G(z,c)) максимальна, то есть корреляция между сгенерированным результатом и условной переменной c максимальна).
Структура модели в основном такая же, как у CGAN, за исключением потери, которая имеет еще одну максимальную взаимную информацию. Детали следующие [10]:
Из вышеприведенного анализа видно, что InfoGAN реализует только развязку информации, а конкретное значение каждого значения условной переменной c мы контролировать не можем.
Так появился ss-InfoGAN.ss-InfoGAN принимает метод полуконтролируемого обучения и делит условную переменную c на две части.. Css учится, как CGAN, используя метки, а Cus учится, как InfoGAN.
Комбинация GAN и VAE
По сравнению с VAE, GAN может генерировать четкие изображения, но он подвержен проблеме коллапса режима. VAE не страдают от проблем с коллапсом моды, поскольку они способствуют реконструкции всех выборок.
Типичным произведением, объединяющим эти две функции, является VAEGAN, структура которого очень похожа на MRGAN, упомянутую выше, а именно:
Потеря приведенной выше модели включает в себя три части: ошибку реконструкции определенного слоя признаков дискриминатора, потерю VAE и потерю GAN.
Сводная информация о модели GAN
В предыдущих двух разделах были представлены различные модели GAN, в основном разработанные для двух распространенных проблем с GAN: сбой режима и сбой обучения. В следующей таблице приведены эти модели, и читатель может просмотреть сравнение в соответствии со следующей таблицей:
Приложения GAN
Поскольку GAN может генерировать реальные образцы без явного моделирования какого-либо распределения данных в процессе создания образцов, GAN имеет широкий спектр приложений для обработки изображений, текста, речи и многих других областей. В следующей таблице обобщено применение GAN в различных аспектах, и эти алгоритмы будут представлены позже.
изображение
перевод изображения
Так называемый перевод изображения относится к преобразованию одного изображения (исходного домена) в другое изображение (целевой домен). Можно провести аналогию с машинным переводом, когда один язык переводится на другой. Процесс перевода сохранит содержимое изображения исходного домена без изменений, но стиль или некоторые другие атрибуты станут целевым доменом.
Paired two domain data
Типичным примером преобразования парных изображений является pix2pix, который обучает условный GAN с использованием парных данных, а Loss включает в себя потери GAN и потери разницы в пикселях. PAN, с другой стороны, использует попиксельные различия на картах объектов в качестве потерь восприятия, чтобы заменить попиксельные различия на изображениях для создания изображений, которые воспринимаются человеческим глазом ближе к исходной области.
Unpaired two domain data
Для задачи перевода изображения без парных обучающих данных типичным примером является CycleGAN. CycleGAN использует две пары GAN.После преобразования данных исходного домена в целевой домен через сеть GAN другая сеть GAN используется для преобразования данных целевого домена обратно в исходный домен.Преобразованные данные и данные исходного домена находятся точно в пар, образующих контрольную информацию.
сверхвысокое разрешение
GAN и потеря восприятия используются в SRGAN для создания подробных изображений. Потеря восприятия фокусируется на ошибке промежуточных слоев объектов, а не на пиксельной ошибке выходного результата. Это позволяет избежать проблемы отсутствия информации о деталях текстуры в сгенерированных изображениях с высоким разрешением.
Обнаружение цели
Благодаря применению GAN в сверхвысоком разрешении для решения проблемы обнаружения малых целей GAN может генерировать изображения малых целей с высоким разрешением для повышения точности обнаружения целей.
Обучение совместному распространению изображений
В то время как большинство GAN изучают распределение данных одного домена, CoupledGAN предлагает сеть с частичным разделением веса, которая использует неконтролируемый подход для изучения совместного распределения изображений из нескольких доменов. Конкретная структура выглядит следующим образом [11]:
Как показано на рисунке выше, CoupledGAN использует две сети GAN. Веса первой половины генератора являются общими, цель состоит в том, чтобы кодировать высокоуровневую общую информацию двух доменов, а вторая половина не является общей, чтобы кодировать данные их соответствующих доменов. Первая половина дискриминатора не используется совместно, а вторая половина используется для извлечения признаков высокого уровня и разделения весов двух. Для обученной сети введите случайный шум и выведите два изображения разных доменов.
Стоит отметить, что приведенная выше модель изучает совместное распределение P (x, y), Если две отдельные GAN используются для обучения по отдельности, то изучаются предельные распределения P (x) и P (y). Обычно P(x,y)≠P(x)·P(y) .
генерация видео
Как правило, видео состоит из относительно статического фона и движущегося переднего плана. VideoGAN использует двухступенчатый генератор, генератор 3D CNN для движущихся передних планов и генератор 2D CNN для стационарных фонов.
Pose GAN использует VAE и GAN для создания видео.Во-первых, VAE объединяет положение текущего кадра и функции прошлой позы для прогнозирования информации о движении следующего кадра, а затем 3D CNN использует информацию о движении для создания последующих видеокадров.
GAN движения и контента (MoCoGAN) предлагает разделить часть движения и часть контента в скрытом пространстве и использовать RNN для моделирования части движения.
генерация последовательности
По сравнению с применением GAN в области изображений применение GAN в области текста и речи намного меньше. Есть две основные причины:
1. GAN использует алгоритм BP при оптимизации.Для дискретных данных, таких как текст и речь, GAN не может напрямую перейти к целевому значению, а может только приближаться к нему шаг за шагом в соответствии с градиентом.
2. Для проблемы генерации последовательности каждый раз, когда генерируется слово, нам нужно судить, является ли последовательность разумной, но дискриминатор в GAN не может этого сделать. Если только мы не установим дискриминатор для каждого шага, что явно неразумно.
Чтобы решить вышеуказанные проблемы, политический градиентный спуск в обучении с подкреплением вводится в проблему генерации последовательности в GAN.
музыкальное поколение
RNN-GAN использует LSTM в качестве генератора и дискриминатора для прямого создания всей звуковой последовательности. Однако, как упоминалось выше, считается, что музыка включает в себя тексты песен и ноты, и существует много проблем с использованием GAN непосредственно для этой проблемы генерации дискретных данных, особенно отсутствие локальной согласованности сгенерированных данных.
Напротив, SeqGAN принимает выходные данные генератора как политику агента, а выходные данные дискриминатора — как вознаграждение, используя градиентный спуск политики для обучения модели. Основываясь на SeqGAN, ORGAN устанавливает конкретную целевую функцию для конкретных задач.
язык и голос
VAW-GAN (вариационное автокодирование Wasserstein GAN) объединяет VAE и WGAN для реализации системы преобразования речи. Кодер кодирует содержимое речевого сигнала, а декодер восстанавливает тембр. Поскольку VAE легко сделать сгенерированные результаты слишком плавными, здесь используется WGAN для генерации более четких речевых сигналов.
полуконтролируемое обучение
Получение меток данных изображения требует много ручной маркировки, которая отнимает много времени и сил.
Полуконтролируемое обучение с дискриминатором
Метод обучения с полуучителем на основе GAN [12] предлагает подход, который использует немаркированные данные. Метод реализации в основном такой же, как и у оригинальной GAN, а конкретная структура выглядит следующим образом [13]:
По сравнению с исходной GAN основное отличие состоит в том, что дискриминатор выводит информацию о категории K+1 (сгенерированные выборки относятся к категории K+1). Для дискриминатора его потери состоят из двух частей: одна — контролируемая потеря обучения (просто нужно оценить, является ли выборка истинной или ложной), а другая — неконтролируемая потеря обучения (оценка категории выборки). Генератору нужно только генерировать как можно более реалистичные образцы. После обучения дискриминатор можно использовать в качестве модели классификации для классификации.
Интуитивно понятно, что сгенерированные выборки в основном предназначены для того, чтобы вспомогательный классификатор научился различать, где находится реальное пространство данных.
Полууправляемое обучение с использованием вспомогательных классификаторов
Существует проблема с упомянутыми выше моделями полууправляемого обучения с дискриминаторами. Дискриминатор должен научиться не только различать положительные и отрицательные образцы, но и научиться предсказывать метки. Цели этих двух несовместимы, и легко привести к неудаче двух в достижении оптимума. Интуитивная идея состоит в том, чтобы отделить прогнозирующие метки от различения положительных и отрицательных образцов. Triple-GAN делает именно это [14]:
(Xg,Yg)~pg(X,Y), (Xl,Yl)~p(X,Y), (Xc,Yc)~pc(X,Y) соответственно представляют сгенерированные данные, помеченные данные, данные без меток . CE означает потерю перекрестной энтропии.
адаптация домена
Адаптация домена - это концепция трансферного обучения. Короче говоря, мы определяем исходное распределение предметной области как Ds(x,y), а целевое распределение предметной области — как DT(x,y). У нас есть много меток для данных исходного домена, но нет меток для данных целевого домена. Мы надеемся изучить модель, которая хорошо обобщается в целевом домене, используя помеченные данные в исходном домене и немаркированные данные в целевом домене. Слово «перенос» в трансферном обучении относится к переносу распределения данных в исходном домене на распределение данных в целевом домене.
Когда GAN используется для трансферного обучения, основная идея состоит в том, чтобы использовать генератор для преобразования функций данных исходной области в функции данных целевой области и дискриминатор, чтобы максимально различать реальные данные и функции сгенерированных данных. Вот два примера применения GAN для передачи обучения, DANN и ARDA:
Возьмите DANN в левой части рисунка выше в качестве примера, Is и It представляют данные исходного домена и данные целевого домена соответственно, а ys представляет метку данных исходного домена. Fs, Ft представляют функции исходной области и функции целевой области. В DANN генератор используется для извлечения признаков, и дискриминатору трудно отличить извлеченные признаки от признаков данных исходного домена и признаков данных целевого домена.
В области повторной идентификации человека существует множество приложений трансферного обучения на основе CycleGAN для увеличения данных. Сложность в задаче повторной идентификации пешеходов заключается в том, что ракурсы персонажей, снятых разными камерами, сильно различаются, что приводит к большому разрыву доменов.
Поэтому вы можете рассмотреть возможность использования GAN для генерации данных с разных камер для увеличения данных. Метод CycleGAN для увеличения данных предложен в [15]. Конкретная структура модели выглядит следующим образом:
CycleGAN обучается для каждой пары камер, так что данные одной камеры могут быть преобразованы в данные другой камеры, но содержимое (человек) остается неизменным.
Другие приложения
Существует много вариантов GAN, которые широко используются, а также имеют приложения в областях, не связанных с машинным обучением.Вот несколько примеров.
Сегментация медицинских изображений
[16] предложили структуру сегментатор-критик для сегментации медицинских изображений. Сегментатор похож на генератор в GAN для создания сегментированных изображений, а критик максимизирует расстояние между сгенерированным сегментированным изображением и истинной реальностью. Кроме того, DI2IN использует GAN для сегментации 3D-изображений КТ, а SCAN использует GAN для сегментации рентгеновских изображений.
стеганография изображений
Стеганография относится к сокрытию секретной информации в несекретных контейнерах, таких как изображения. Стегоанализатор используется для определения того, содержит ли контейнер секретную информацию. В некоторых исследованиях пытаются использовать генератор GAN для генерации изображений со стеганографической информацией, и существует два дискриминатора: один используется для определения того, является ли изображение реальным изображением, а другой используется для определения того, содержит ли изображение секретную информацию [17].
непрерывное обучение
Непрерывное обучение направлено на решение нескольких задач и накопление новых знаний по мере обучения. Заметной проблемой непрерывного обучения является «забывание знаний». В [18] генератор GAN используется в качестве модели ученого.Генератор непрерывно обучается с предыдущими знаниями, а решатель дает ответ, чтобы избежать проблемы «забывания знаний».
обсуждать
Мы обсуждаем GAN и их варианты в частях 1 и 2, а приложения GAN — в части 3. В следующей таблице приведены структуры моделей некоторых наиболее известных сетей GAN и дополнительные ограничения, которые они накладывают.
Впереди обсуждение микроуровня GAN. Далее мы обсудим GAN с точки зрения макросов.
Оценка ГАН
Существуют различные методы оценки для GAN.Существующий основанный на примерах (как следует из названия, оценка на уровне выборки) метод извлекает признаки из сгенерированных выборок и реальных выборок, а затем измеряет расстояние в пространстве признаков. Конкретная структура выглядит следующим образом:
Отношение сравнения символов в этом подразделе выглядит следующим образом:
Pg представляет сгенерированное распределение данных, Pr представляет реальное распределение данных, E представляет математическое ожидание, x представляет входную выборку, x~Pg представляет выборку сгенерированной выборки, а x~Pr представляет выборку реальной выборки. y представляет метку образца, M представляет классификационную сеть, обычно выбирается начальная сеть.
Общие показатели оценки вводятся один за другим.
I nception Score
Для хорошо обученной GAN в ImageNet, когда сгенерированные выборки перебрасываются в начальную сеть для тестирования, полученная дискриминантная вероятность должна иметь следующие характеристики:
1. Для изображений одной категории распределение вероятностей вывода должно стремиться к импульсному распределению. Точность сгенерированных образцов может быть гарантирована.
2. Для всех категорий распределение вероятностей вывода должно стремиться к равномерному распределению, чтобы не было коллапса мод и т. д., что может обеспечить разнообразие генерируемых выборок.
Таким образом, можно разработать следующие индикаторы:
Согласно предыдущему анализу, если это хорошо обученная GAN, pM(y|x) приближается к распределению импульсов, а pM(y) приближается к равномерному распределению. Расхождение KL между ними будет очень большим. Начальная оценка естественно высока. Фактические эксперименты показывают, что начальная оценка, как правило, согласуется с субъективным суждением человека. При расчете ИС не используются реальные данные, а точное значение зависит от выбора модели М.
Особенности: Разнообразие и точность сгенерированных выборок можно в определенной степени измерить, но невозможно обнаружить переобучение. Режим Счет тоже так. не рекомендуется в и Имиджнет Он используется для данных с большими различиями в наборах данных.
Mode Score
Как улучшенная версия начальной оценки, оценка режима добавляет меру подобия распределения вероятностей для прогнозирования сгенерированных выборок и реальных выборок. Конкретная формула выглядит следующим образом:
Kernel MMD
Рассчитывается следующим образом:
Для расчета значения MMD ядра сначала необходимо выбрать функцию ядра k, которая отображает выборку в гильбертовом пространстве воспроизводящего ядра (RKHS).По сравнению с евклидовым пространством, RKHS имеет много преимуществ.Вычисление внутренней произведение функции полное.
Разверните приведенную выше формулу, чтобы получить следующую формулу расчета:
Чем меньше значение MMD, тем ближе два распределения.
Особенности: Он может в определенной степени измерять плюсы и минусы изображения, созданного моделью, а стоимость расчета невелика. Рекомендуемое использование.
Вассерштейн Расстояние
Расстояние Вассерштейна также обычно называют расстоянием бульдозера в задачах оптимального транспорта. Введение этого расстояния подробно обсуждается в WGAN. Формула выглядит следующим образом:
Расстояние Вассерштейна измеряет сходство между двумя распределениями. Чем меньше расстояние, тем более похожи распределения.
Особенности: если пространство функций выбрано правильно, это будет иметь определенный эффект. Но вычислительная сложность О (п ^ 3) слишком высоко.
Фреше Зарождение Расстояние (ФИД)
Расстояние FID вычисляет реальные выборки и генерирует расстояние между выборками в пространстве признаков. Начальная сеть сначала используется для извлечения признаков, а затем модель Гаусса используется для моделирования пространства признаков. Расчет расстояния основан на среднем значении и ковариации модели Гаусса. Конкретная формула выглядит следующим образом:
μ и C представляют собой ковариацию и среднее значение соответственно.
Особенности: Хотя вычисляются только первые два момента пространства признаков, он надежен и эффективен в вычислительном отношении.
1-ближайший Сосед классификатор
Используйте метод исключения в сочетании с классификатором 1-NN (любым другим) для расчета реального изображения и точности сгенерированного изображения. Если они близки, точность близка к 50%, в противном случае — к 0%. Для оценки GAN автор использует точность классификации положительных образцов и точность классификации сгенерированных образцов для измерения подлинности и разнообразия сгенерированных образцов.
Для реальных выборок Xr, когда выполняется классификация 1-NN, если сгенерированные выборки более реалистичны. Тогда реальное пространство выборок R будет окружено сгенерированными выборками Xg. Тогда точность Xr будет очень низкой.
Для сгенерированной выборки Xg, когда выполняется классификация 1-NN, если разнообразие сгенерированной выборки недостаточно. Поскольку сгенерированные выборки сгруппированы по нескольким модам, Xg можно легко отличить от Xr, что обеспечивает высокую точность.
Особенности: Идеальные показатели и возможность обнаружения переобучения.
Другие методы оценки
Методы AIS, KDE также можно использовать для оценки GAN, но эти методы не являются метриками, не зависящими от модели. То есть для расчета этих показателей оценки можно использовать только: сгенерированные образцы и реальные образцы для расчета.
Суммировать
Фактический эксперимент показал, что MMD и двухвыборочный тест 1-NN являются наиболее подходящими индикаторами оценки, эти два индикатора можно лучше различить: реальные образцы и сгенерированные образцы, разрушение режима. и вычислительно эффективным.
В целом, изучение GAN представляет собой неконтролируемый процесс обучения, поэтому трудно найти более объективный и поддающийся количественной оценке индекс оценки. Есть много показателей, которые численно высоки, но эффект генерации не обязательно хороший. В заключение, оценка GAN все еще остается открытым вопросом.
Связь между GAN и обучением с подкреплением
Целью обучения с подкреплением является выбор оптимального действия a (действия) для агента при заданном состоянии s. Обычно функция ценности Q (s, a) может быть определена для измерения для состояния s вознаграждения за выполнение действия a равно Q (s, a), Очевидно, мы хотим максимизировать это значение вознаграждения. Для многих сложных задач нам трудно определить эту функцию значений Q(s,a), так же как нам трудно определить, насколько хороши изображения, генерируемые GAN.
Кстати говоря, все могли отреагировать. Хороши ли изображения, сгенерированные GAN, или нет, я действительно не могу найти подходящий индикатор, поэтому я могу изучить дискриминатор, чтобы судить о расстоянии между сгенерированными изображениями и реальными изображениями. Функцию ценности Q(s,a) в обучении с подкреплением трудно определить, поэтому просто используйте нейронную сеть, чтобы изучить ее. Типичными моделями являются ДДПГ, ТРПО и т.д.
Преимущества и недостатки ГАН
преимущество
1. Преимущества GAN были представлены в самом начале. Вот краткое изложение:
2. GAN могут генерировать данные параллельно. По сравнению с моделями PixelCNN и PixelRNN генерация GAN происходит очень быстро, поскольку GAN использует генератор для замены процесса выборки;
3. GAN не нужно аппроксимировать вероятность, вводя нижнюю границу. Из-за сложности оптимизации VAE вводит вариационную нижнюю границу для оптимизации вероятности. Однако VAE делает предположения об априорном и апостериорном распределении, что затрудняет для VAE приближение к нижней границе вариации;
С практической точки зрения узел, созданный GAN, намного четче, чем узел VAE.
недостаток
Недостатки GAN также подробно рассмотрены в предыдущей статье.Основные проблемы:
1. Тренировка нестабильна и легко срывается. Ученые предложили множество решений этой проблемы, таких как WGAN, LSGAN и т. д.;
2. Режим вылетает. Хотя существует множество связанных исследований, эта проблема до сих пор не решена полностью из-за многомерного характера данных изображения.
будущие направления исследований
Обучающий коллапс GAN и проблема коллапса режима еще нуждаются в изучении и улучшении. Хотя глубокое обучение очень мощное, все еще есть много областей, которые невозможно покорить, и ожидается, что GAN что-то сделает на этой основе.
использованная литература
[1] https://column.direct call.com/fear/57062205
[2] HTTPS://blog.CSDN.net/Victoria卍/article/details/60755698.
[3] https://column.direct call.com/afraid/25071913
[4]ГАН и теория уравнения Монжа-Ампера
[5] HTTPS://blog.CSDN.net/Cut Wolf 5786/article/details/80766498
[6] https://spaces.AC.cai/archives/5253
[7] https://wuwuwu.brief.com/afraid/42 от 42 ох 13 от 09 нет
[8] https://medium.com/@Jonathan_hui/dry-unrolled-dry-how-to-reduce-touch-collapse-Afan 5 раундов 2 раунда 7 не 51 Чэнду
[9] https://medium.com/@Jonathan_will/dry-of course Forrest-5 поставил 50EA из DF2
[10] https://medium.com/@Jonathan_hui/gan-cai-info-dry-using-Labels-to-improve-dry-8 поставить 4 из 5 из 9 из 3
[11] https://blog.CSDN.net/carrier LX см. super/article/details/60479883
[12] Салиманс, Тим и др. «Улучшенные методы тренировки ганов». Достижения в системах обработки нейронной информации. 2016 г.
[13] HTTPS://blog.CSDN.net/QQ_25737169/article/details/78532719
[14] HTTPS://medium.com/@H ITO — это ваша карта/Reading-note-triple-generative-adversarial-nets-very 3775 oh 52 no 1 oh 1
[15] Чжэн З., Чжэн Л., Ян Ю. Немаркированные образцы, сгенерированные GAN, улучшают базовый уровень повторной идентификации человека в VitroC// Международная конференция IEEE по компьютерному зрению (ICCV, 2017 г.), IEEE Computer Society, 2017 г.
[16] Юань Сюэ, Тао Сюй, Хань Чжан, Родни Лонг и Сяолэй Хуанг Сеган: Состязательная сеть с многомасштабной потерей l_1 для сегментации медицинских изображений Препринт arXiv arXiv:1706.01805, 2017.
[17] Денис Волхонский, Иван Назаров, Борис Борисенко и Евгений Бурнаев Стеганографически-генеративные состязательные сети, препринт arXiv arXiv:1703.05502, 2017.
[18] Shin, Hanul, et al. "Continual learning with deep generative replay." Advances in Neural Information Processing Systems. 2017.
Эта статья воспроизведена для сердца машины,Для перепечатки, пожалуйста, свяжитесь с оригинальным официальным аккаунтом для авторизации .
✄------------------------------------------------
Присоединяйтесь к сердцу машины (штатный репортер / Стажер): hr@jiqizhixin.com
Чтобы внести свой вклад или получить покрытие: content @jiqizhixin.com
рекламировать & Деловое сотрудничество: bd@jiqizhixin.com