Мое направление исследованийГенеративно-состязательная сеть GAN, я прочитал все документы, связанные с GAN, за это время, и я буду постепенно загружать заметки о прочитанных бумагах вGithubИ в блоге, так как эта проблема связана с GAN Пионерская работа и рецензия на книгу содержат много, поэтому пока поставлю 3 заметки.
Generative Adversarial Nets
Эта статья является новаторской работой GAN.
GAN состоит из двух нейронных сетей, одна для生成器 Generator
, один для判别器 Discriminator
, Генератор используется для захвата распределения (реальных) данных, дискриминатор используется для оценки вероятности того, что образцы (входные данные) являются реальными данными, что позволяет направлять обучение генератора.
GAN имеет единственное решение, а именно生成器能恢复真实的数据分布, 判别器的输出处处为 1/2
Что касается описаний следующей родственной работы, то я сам не изучал и не испытывал ее, поэтому пока сделаю запись.
GAN — это вариант глубокой генеративной модели, но последняя имеет следующие две трудности, которых GAN избегает.
- Приблизительный [(оценка максимального правдоподобия и соответствующая стратегия) расчет вероятности] очень сложен; [добавьте здесь две круглые скобки, сегментацию вспомогательных предложений, читатели должны испытать это на себе]
- Трудно извлечь выгоду из использования кусочно-линейных единиц в генеративном контексте.
Связанных с работой
深度玻尔兹曼机 DBM
Функции правдоподобия широко используются, что требует большого количества оценок градиентов правдоподобия.generative machine
Разработка этих моделей не требует явного представления вероятности и способна генерировать выборки из желаемого распределения Примером этого являетсяGenerative stochastic networks GSN
, его можно обучить по БП без большого количества аппроксимаций.В то время как GAN используется в GSN путем исключения马尔可夫链
расширенный генеративный
машина.
Variational AutoEncoders VAEs
Сеть дифференцируемого генератора также оснащена другой нейронной сетью, которая действует как модель распознавания для приближенного вывода.VAN отличаются от GAN тем, что GAN необходимо различать через видимые единицы и, следовательно, не могут моделировать дискретные данные;VAE необходимо моделировать скрытыми единиц и поэтому не может иметь дискретных潜变量
.
Predictability minimization PM
Также используется идея двух конкурирующих нейронных сетей.Каждый скрытый блок первой сети обучается выводить разные выходные данные из второй сети, а вторая сеть предсказывает, что каждый скрытый блок будет скрыт с учетом всех остальных скрытых блоков. значение, когда значение единицы.Разница между GAN и PM:
- Конкуренция между сетями — единственный критерий обучения для GAN, PM — всего лишь регуляризатор, поощряющий статистическую независимость скрытых единиц, а конкуренция — не главный критерий;
- Генератор в GAN генерирует богатые многомерные данные на входе дискриминатора, пытаясь сделать дискриминатор неспособным судить о подлинности данных в конце; в то время как PM сравнивает выходные данные двух нейронных сетей, одна делает выходные данные похожими, другой делает вывод другим, в итоге получается скаляр;
- ГАН основан на игре минмакс, а не проблема оптимизации, есть
值函数 Value Funtion
, дискриминатор работает над увеличением своего выхода, генератор работает над уменьшением этого значения, и игра останавливается в седловой точке, тогда как PM представляет собой задачу оптимизации путем минимизации функции наблюдения.
Другая идея, похожая на GAN, заключается в том, чтоNoise-contrastive estimation NCE
, который обучает генеративную модель для изучения весов модели, которые помогают различать дискриминационные данные и фиксированное распределение шума.Ограничение NCE заключается в том, что его «дискриминатор» определяется как отношение плотности вероятности распределения шума к распределению модели, поэтому требуется, чтобы каждая плотность вероятности оценивалась с помощью BP.
对抗样例
Это пример, найденный путем непосредственного применения метода оптимизации на основе градиента к входным данным сети классификации.Цель состоит в том, чтобы найти примеры, которые похожи на данные, но будут неправильно классифицированы.Поэтому состязательный пример в основном является инструментом анализа. Но наличие состязательных примеров, подразумевающих, что обучение GAN может быть неэффективным, поскольку оно позволяет дискриминатору уверенно идентифицировать класс, но не имитирует человеческое восприятие класса.
Архитектура GAN показана на рисунке выше.Вход генератора - это шум, а реальное распределение данных восстанавливается путем обучения его параметров.В качестве метода обучения представлению общая глубокая нейронная сеть может рассматривать процесс обработки данных как процесс кодирования, а генератор здесь можно рассматривать как процесс декодирования.
Дискриминатор принимает выборки из набора реальных данных или генератора и выводит скаляр, представляющий вероятность того, что выборка исходит из набора реальных данных.
Функция ценности минимаксной игры GAN выражается следующим образом:
На ранней стадии обучения GAN G (здесь и далее G используется для генератора, а D для дискриминатора) очень плох, и его выходные результаты значительно отличаются от реальных данных, поэтому D может с абсолютной уверенностью судить об истинности и ложности и выводить близкие к 1 или 0. вероятности, вызывая исчезновение градиента G ( log(1−D(G(z))) log(1−D(G(z))) насыщает), что затрудняет обучение G. В этом случае используйте максимизацию logD(G(z)) logD(G(z)) вместо минимизации log(1−D(G(z)))log(1−D(G(z))) помогает. Поскольку это наблюдение делает динамику G и D одной и той же фиксированной точкой, его можно обеспечить на ранних этапах обучения. градиент.(тут я не понимаю)
Остальная часть этой статьи теоретически доказывает следующие два пункта, и конкретный процесс доказательства здесь опущен:
- Минмакс игра в pg=pdata pg=pdata достигает глобального оптимального решения.
- Когда G и D имеют достаточную мощность, D может достигать оптимального значения для данного G, и pp также можно обновить, чтобы улучшить G.
В практических приложениях GAN передает функцию G(z;θg)G(z;θg) для представления Ограниченное семейство pgpg, оптимизированное для θgθg вместо pgpg Таким образом, GAN фактически не имеет теоретических гарантий.
KL 散度
используется для измерения степени отклонения распределения вероятностей от распределения.JS 散度
DJS=12(KL(P∣∣P+Q2)+KL(Q∣∣P+Q2))DJS=12(KL(P∣∣P+Q2)+KL(Q∣∣P+Q2)) может быть используется для Измеряет сходство между двумя распределениями вероятностей.Одной из целей обучения GAN является уменьшение расхождения JS между истинным и сгенерированным распределениями вероятностей.
Недостатки GAN:
- не показывать пгпг
- D должен обучаться одновременно с G
Преимущества GAN
- Цепи Маркова не нужны, для вычисления градиентов нужны только BP.
- Во время обучения не требуется рассуждений
- Можно использовать различные техники
- G обновляется не напрямую по выборкам данных, а по градиенту дискриминатора, что означает, что ввод не копируется напрямую в параметры G
- Может представлять очень точные, даже вырожденные распределения (методы, основанные на цепях Маркова, требуют, чтобы распределение имело некоторую неоднозначность, чтобы цепи смешивались между режимами)
Generative Adversarial Networks: An Overview
Это обзор последних новых GAN.
GAN требует, чтобы G и D были дифференцируемыми, но не обратимыми напрямую.
Архитектура GAN
LAPGAN
Декомпозиция процесса генерации решает (трудно обучать G и D, используя (одинаковую мощность) и (CNN с той же репрезентативной мощностью, что и обучение с учителем) путем многократного масштабирования и использования条件卷积 GAN
для создания изображений для каждого слоя. [Здесь скобки используются для облегчения сегментации предложений]
DCGAN
Свертки с шагом и дробным шагом используются для поддержки операций субдискретизации и повышающей дискретизации соответственно.Эти операции могут обрабатывать изменения в частоте дискретизации и позиции дискретизации, что именно и отображает пространство изображения в пространство возможных низкоразмерных изображений. скрытые переменные и ключ image A для пространственного сопоставления с D.
Conditional GAN
Обеспечивает лучшее представление о создании мультимодальных данных.
InfoGAN
Разложите источник шума на неразрешимые источники и潜代码 latent code
и попытайтесь обнаружить скрытые факторы переменных, максимизируя интерактивную информацию между скрытыми кодами и выходами G. Эксперименты показывают, что представления, полученные InfoGAN, семантически значимы.
Adversarially Learned Inference, ALI
иBidirectional GAN
Это GAN с моделью вывода, которая вводит сеть вывода, которая может помочь, когда D обнаруживает пары (данные, скрытые).В настоящее время G состоит из двух частей.В дополнение к обычному декодеру есть дополнительный вывод сети в качестве кодировщика.
Adversarial Autoencoders, AAE
Ввести идею состязательности в автоэнкодер, Состязательное обучение вводится между скрытым переменным пространством и его желаемым априорным распределением, в результате чего получается комбинированная функция потерь, которая отражает, насколько различаются ошибка реконструкции и априорное распределение, создаваемое сетью кодирования-кандидатом. мера.Adversarial Variational Bayes, AVB
Попытки оптимизации по тем же критериям, что и VAE, но с использованием обученных противником наблюдений вместо дивергенции KL.
Тренируйте ГАН
В идеале для текущего G будет обучаться D до оптимального состояния, затем будет обучаться G. Но на практике D может не обучаться до оптимального состояния, будет выполняться лишь ограниченное число итераций, а D и G будут обучаться и обновляться одновременно.
GAN на самом деле хочет найти седловую точку, поэтому алгоритм градиентного спуска не подходит для обучения GAN.
Реальные данные — это всего лишь низкоразмерное многообразие в многомерном пространстве, поэтому обучение G восстановлению реального распределения данных — это лишь небольшая область в пространстве. пг(х)пг(х) и pdata(x) pdata(x), скорее всего, не будут перекрываться, поэтому D всегда может отличить истинное от ложного с высокой степенью достоверности.
Когда D оптимально, обучение G эквивалентно минимизации пг(х)пг(х) и Расхождение JS между pdata(x)pdata(x) (как указано выше); но когда D не оптимален, обновления G могут быть бессмысленными или неточными
- Советы по обучению ГАН
- Одновременное использование пакетной нормализации для G и D делает процесс обучения более глубоких моделей более стабильным.
- Минимизируйте полносвязные слои, чтобы повысить гибкость обучения более глубоких моделей.
- LeakyReLU имеет лучшую производительность, чем ReLU
- Эвристика для обучения GAN:
- Небольшое изменение цели наблюдения G может улучшить количество доступной информации. В частности, D обучается таким же образом, но G обучается соответствовать активациям промежуточных слоев D.
- Дискриминация мини-пакетов.Добавляет дополнительный вход к D, который кодирует расстояние одного образца в мини-пакете от других образцов, предназначенный для предотвращения
mode collapse
, потому что в это время D может легко узнать, всегда ли G выводит один и тот же результат. - Эвристическое усреднение. Штрафуйте параметры, когда они отклоняются от предыдущего среднего значения, чтобы гарантировать, что игра сходится к точке равновесия.
-
Virtual BN
Перед обучением выберите небольшой пакет данных, запишите его как эталонный мини-пакет и используйте статистику эталонного мини-пакета для каждого последующего обучения, тем самым уменьшая зависимость выборки от других выборок в мини-пакете. . - Одностороннее сглаживание метки, то есть метка 1 представлена числом чуть меньше 1, что делает границу классификации D более гладкой, предотвращая самоуверенность D и, таким образом, предотвращая исчезновение градиента G.
- Шум добавляется к образцам до того, как они будут загружены в D. Сондерби и др. указали, что одностороннее сглаживание может привести к отклонению D от оптимального решения. Используя шум экземпляра, реальное и сгенерированное многообразия можно сделать ближе друг к другу, в то время как Это мешает D легко найти дискриминационную границу, которая полностью разделяет истинные и ложные выборки, На практике это достигается путем добавления гауссовского шума к истинным и ложным выборкам одновременно.
Новозин и др. указали, что обучение GAN может быть обобщено, чтобы минимизировать не только расхождение JS, но также оценку f-расхождения и предложенные f-GAN. Градиенты исчезают с меньшей вероятностью, так как при обучении D оценивается отклонение f-дивергенции истинного и ложного распределений данных, а при обучении G минимизируется только оценка f-дивергенции. -GAN, получаем Expand, при обучении D предсказываем пропорцию распределения истинных и ложных данных, при обучении G напрямую минимизируем f-дивергенцию.
WGAN использует аппроксимацию расстояния Вассерштейна в качестве функции стоимости, что обеспечивает более полезный градиент для G.
Недавние исследования показали, что,权重剪切 weight clip
Уменьшите мощность D, заставив его изучать более простые функции.
BiGAN и ALI обеспечивают сопоставление изображения со скрытым переменным пространством, но качество реконструкции невысокое.
скрытая переменная пространственная структура
Данные в скрытом пространстве переменных могут быть хорошо структурированы, что потенциально позволяет проводить расширенные семантические манипуляции.
Некоторые варианты GAN предоставляют сети, которые сопоставляют изображения со скрытыми переменными и, таким образом, могут исследовать и использовать структурированное пространство скрытых переменных.С помощью кодировщиков помеченные наборы данных можно отображать в пространство скрытых переменных, чтобы обнаруживать свойства высокого уровня, которые могут быть представлено». Концептуальный вектор».
Гурумурти и др. Да混合高斯分布
моделировать скрытое переменное пространство.
Приложения GAN
Вот только простая запись заявки
- Классификация и регрессия
- После завершения обучения GAN нейронную сеть можно повторно использовать для последующих задач.Сверточный слой D можно использовать для извлечения признаков, просто нужно добавить на него простую линейную модель.
- Благодаря совместному обучению механизмов вывода он может обеспечить качество представления данных (при введении информации о метках в путь обучения ALI достигает самых современных результатов классификации).
- В случае ограниченных меток можно использовать состязательное обучение для создания большего количества обучающих выборок.
- генерация изображения
- Кондиционирование GAN позже было распространено на естественный язык, Рид и др. Генерация изображений из текстовых описаний с помощью GAN.
- Как расширение текстового описания, GAWWN зависит от местоположения объекта.
- преобразование изображения в изображение
- pix2pix для изображения в изображение в «перевод»
- CycleGAN пытается сохранить исходное изображение после преобразования, вводя потерю согласованности цикла, и обращает процесс преобразования вспять.
- супер разрешение
- SRGAN расширяет предыдущую модель компонентом состязательных потерь, ограничивая изображения выше множества естественных изображений.
Conditional Generative Adversarial Nets
Это относительно короткая статья, в которой предлагается концепция:同时向 G 和 D 输入相同的额外信息, 引导生成过程
Эта дополнительная информация также называется условиями и может быть меткой класса или любой другой вспомогательной информацией.
Этот метод очень практичен. GAN изначально бесцельно генерировал выборки. После добавления условий cGAN (мне нравится называть это条件 GAN
Для cGAN) он действительно понимает, где играть, и может генерировать сэмплы в направлении, таком как номер 5 MNIST (дай мне 5!)
Функция ценности cGAN показана ниже, а архитектура показана выше.