Бумажная заметка 2: LAPGAN, DCGAN, методы бустинга GAN

глубокое обучение
По описанию статьи смотрите код реализации GAN и cGANGANs-in-PyTorch

PS: иногда появляются в тексте[...]Он используется, чтобы помочь читателям разбить предложения и не будет повторяться в дальнейшем.

TL;DR

Инновации ЛАПГАН:使用拉普拉斯金字塔的结构, 以从粗糙到细致的方式生成图片. 在金字塔的每一层, 使用 GAN 方法训练一个图片生成模型

Image Laplacian Pyramid

Другими словами, в методе используется структура масштабирования естественных изображений разных размеров для построения серии генеративных моделей, и каждый слой пирамиды Лапласа может использовать структуру изображения определенного размера.

Вклад DCGAN:

  1. Частичные структуры обученных [G и D] повторно используются в качестве средств извлечения признаков для контролируемых задач;
  2. Предложены некоторые эффективные методы обучения GAN, основные из них: использование всех сверточных слоев, отсутствие необходимости в пуле, удаление последнего полносвязного слоя нейронной сети, использование пакетной нормализации.
  3. В статье также показано, что в G есть интересные векторные арифметические операции (z-пространство), которые могут управлять некоторыми семантическими особенностями генерируемых выборок, например «мужчина в очках» — «мужчина» + «женщина» = «женщина в очках».

В статье «Улучшенные методы обучения GAN» предлагается несколько важных методов, в том числе:

  1. feature matching
  2. minibatch features
  3. virtual batch normalization
  4. historical average
  5. one-sided smoothing

LAPGAN

Адрес бумаги:АР Вест V.org/PDF/1506.05…

Я все еще хочу записать связанную работу, может быть, это будет поучительно для читателей.

Связанных с работой

Модель DRAW использует метод с механизмом RNN + внимание для создания изображений по траектории блоков изображения.

Sohl-Dickstein et al 2016 используют основанный на диффузии подход к глубокому неконтролируемому обучению.

Тайс и Бетге использовали LSTM для захвата пространственных зависимостей, показав убедительные результаты для рисования естественных текстур.


Модель LAPGAN интегрирует условный GAN в структуру пирамиды Лапласа, т.е.Часть 1ЦГАН.

Пирамида Лапласа — это линейно обратимое графическое представление, состоящее из набора带通图片Композиция, разделенная октавой (дословный перевод, пофиг), плюс низкочастотный остаток.

Процесс обработки пирамиды Лапласа начинается с самого грубого уровня, под которым можно понимать изображение с наименьшим разрешением или остатком. Дж × j" роль="презентация">j×j Дж × j повышается до 2 Дж × 2 j" роль="презентация">2j×2j 2 Дж × 2 j, очевидно, что в это время изображение станет размытым, пожалуйста, используйте набор изображений 2 Дж × 2 j" роль="презентация">2j×2j 2 Дж × 2 Разница между изображением j и изображением, полученным в результате повышающей дискретизации, обозначается как час к " роль = "презентация" > hk час к. Снова к настоящему 2 Дж × 2 j" роль="презентация">2j×2j 2 Дж × 2 image j повторяйте вышеуказанные шаги до тех пор, пока исходное изображение, скажем, 64 ×   64" роль="презентация">64×64 64 ×   Изображения с разрешением 64.

LAPGAN состоит из набора генеративных сверточных моделей, и цель каждого слоя состоит в том, чтобы зафиксировать вышеперечисленное. час к " роль = "презентация" > hk час Дистрибуция к.ЛАПГАНЬСКИХ采样Процесс показан на рисунке ниже.

Sampling procedure of LAPGAN

В предыдущей статье упоминалось, что условием cGAN может быть любая информация, не ограничивающаяся меткой класса. LAPGAN использует это преимущество. Как показано на рисунке выше, условие G равно残差, или размытое изображение; создает разностное изображение между остаточным и «реальным изображением». час к " роль = "презентация" > hk час k; Затем объедините разницу и невязку в «реальное изображение». Проведите повышающую дискретизацию, чтобы получить невязку с более высоким разрешением, и повторите описанные выше шаги. Получается окончательное сгенерированное изображение с полным разрешением.

D также обусловлен остатком, потому что D совпадает с условием G. Процесс обучения ЛАПГАН происходит следующим образом.В этот раз из исходного изображения полного разрешения я 0 " роль = "презентация"> I0 я 0, уменьшите его, чтобы получить я 1 " роль="презентация">I1 я 1, снова я 1 " роль="презентация">I1 я 1 Повышение частоты дискретизации, чтобы получить то, что мы называем остатком л 0 " роль="презентация">l0 л 0, как Д 0 " роль = "презентация"> D0 Д 0 с г 0 " роль = "презентация"> G0 г 0 состояние; г 0 " роль = "презентация"> G0 г 0 условно по остаткам л 0 " роль="презентация">l0 л 0, да г 0 " роль="презентация">z0 г 0 обрабатывается для создания разностного изображения час 0 ^ " роль = "презентация"> h0 ^ час 0 ^, как Д 0 " роль = "презентация"> D0 Д 0 ложных проб, дополнительно по я 0 " роль = "презентация"> I0 я 0, л 0 " роль="презентация">l0 л 0 получить реальную разницу изображения час 0 " роль = "презентация"> h0 час 0, завершить обучение первого слоя Да я 1 " роль="презентация">I1 я 1 Проделайте тот же процесс до последнего слоя.

Train procedure of LAPGAN

Итак, в конце концов, г 0 " роль = "презентация"> G0 г 0 генерирует разностное изображение результата апсэмплинга изображения и меньшего.Из картинки это детали изображения.Насколько мне известно,многие методы генерации имеют проблему размытия сгенерированного изображения.

Ключевым моментом LAPGAN является разделение процесса генерации на последовательные процессы улучшения.Преимущество обучения каждого слоя по отдельности заключается в том, что модель с меньшей вероятностью запомнит обучающие выборки.

DCGAN

Адрес бумаги:АР Вест V.org/PDF/1511.06…

Связанных с работой

Обучение представлению из неразмеченных данных

В контексте изображения вы можете图像块 image patchesВыполняя иерархическую кластеризацию, можно изучить полезные представления изображений (Coates & Ng 2012).

Еще один подход к неконтролируемому изучению признаков в области исследований компьютерного зрения: автокодировщики, которые кодируют изображения в紧凑代码 compact codeЗатем как можно точнее декодируйте и реконструируйте картинку (конкретно: с помощью свертки, складывая слои нейронной сети в лестничную структуру, чтобы она могла преобразовать код в кодчтоиГдеразделение компонентов)

Сети глубокого убеждения также хорошо подходят для изучения иерархических представлений.

Создавайте естественные изображения

Изображения, генерируемые GAN, зашумлены и неразборчивы.LAPGAN может генерировать изображения более высокого качества, но изображения по-прежнему выглядят дрожащими из-за шума, возникающего при объединении нескольких моделей в цепочку.

Внутренняя визуализация CNN

В контексте CNN Zeiler и др. используют反卷积 deconvolutionalи максимальная фильтрация, чтобы найти приблизительное назначение каждого сверточных фильтров, Мордвинцев и др. использовали градиентный спуск, чтобы исследовать идеальное изображение, которое активировало бы определенное подмножество фильтров.


Архитектура DCGAN и метод обучения

Основные пункты DCGAN:

  1. Полностью сверточная сеть используется вместо функции дискриминационного пространственного объединения, чтобы позволить сети самостоятельно изучать пространственную субдискретизацию.
  2. Полносвязный слой после удаления сверточных признаков.(На самом деле первый слой G все еще полностью связан, но он используется только для матричного умножения, и результат тут же деформируется; последний сверточный слой D также расширяется, и, наконец, вывести сигмовидный вывод) (авторы также нашли全局平均池化увеличивает стабильность модели, но замедляет сходимость)
  3. Используйте пакетную нормализацию для стабилизации обучения (BN работает очень хорошо. С ним вам не нужно беспокоиться о проблемах, вызванных инициализацией, и он также может помочь в обучении более глубоких моделей). модель нестабильна, поэтому BN не применяется в выходном слое G и входном слое D.

ReLU используется в G, за тем единственным исключением, что его выходной слой использует Tanh, а D использует LeakyReLU (авторы обнаружили, что использование ограниченной функции активации позволяет модели быстрее насыщаться и быстро покрывать цветовое пространство обучающего распределения).


Эксперименты и обсуждения и др.

最近的研究表明, 模型学习的快慢与泛化性能有直接联系 (Hardt et al. 2015)

Метод, используемый в этой статье для оценки качества алгоритма обучения представлению без учителя, состоит в том, чтобы использовать обученный алгоритм (который можно понимать как D) для обучения с учителем в качестве средства извлечения признаков, а затем оценить производительность линейной модели поверх Конкретный метод: после обучения модели GAN добавьте максимальный объединяющий слой после всех сверточных слоев D, в результате чего получится пространственная сетка 4 x 4. Все эти функции расширяются и соединяются в вектор, как линейный. обучающий ввод классификатора (L2-SVM в тексте).

В документе отмечается, что архитектура CNN не является ключевым фактором успеха DCGAN.

Мы показываем, что неконтролируемая DCGAN, обученная на большом наборе данных изображений, может изучать иерархические представления функций Мы показываем, что D активируется типичными частями спальни, такими как кровать или окно.

Еще одна интересная вещь заключается в том, что, как упоминалось ранее, в этой статье показано, что вектор изображения также может выполнять арифметические операции.Эта операция на самом деле является операцией над вектором Z, что также показывает, что модификация скрытой переменной может изменить семантику вектора. сгенерированные образцы.

Авторы обнаружили, что удаление параметров масштаба и смещения из BN G и D дало лучшие результаты. Они предположили, что это может быть связано с тем, что шум, вносимый BN, может помочь G лучше исследовать распределение данных на более низких уровнях и, таким образом, лучше генерировать выборки. .


Improved Techniques for Training GANs

Адрес бумаги:АР Вест V.org/PDF/1606.03…

Обучение GAN требует нахождения равновесия Нэша невыпуклых игр с непрерывными многомерными параметрами Типичный подход к обучению GAN заключается в использовании градиентного спуска, но градиентный спуск используется для нахождения минимумов функции стоимости, а не Нэша равновесия игры, Следовательно, результаты не могут быть сходимы с использованием алгоритма градиентного спуска.

Feature matching

Сопоставление функций устраняет нестабильность GAN, предотвращая переобучение текущего D путем указания нового наблюдения для G. Это новое наблюдение требует, чтобы G генерировал данные, которые соответствуют статистике реальных данных, а не напрямую максимизирует выход D, и мы используйте D, чтобы указать статистику, которую стоит сопоставить.

В частности, мы обучаем G так, чтобы оно соответствовало ожидаемому значению признаков промежуточных слоев D. Поскольку цель обучения D состоит в том, чтобы найти признаки, которые лучше всего отличают реальные образцы от сгенерированных, такой подход является естественным.

использовать ф ( Икс )" роль="презентация">f(x) ф ( Икс ) для представления значения активации промежуточного слоя D, то новое наблюдаемое значение G можно выразить какfeature_matching_g_objective.png

В обычном обучении GAN целью G является сопоставление распределения обучающих данных, которое является фиксированной точкой.На практике эта точка не может быть гарантирована.Но опыт показывает, что сопоставление признаков эффективно в случае обычного GAN​ нестабильность.

Minibatch discrimination

Одним из основных недостатков GAN является то, что они подвержены模式崩塌 mode collapse, Когда режим приближения рушится, для многих похожих точек градиенты D будут ориентированы в одинаковых направлениях. Поскольку D всегда обрабатывает выборки независимо, между его градиентами нет механизма координации, позволяющего G генерировать разные выборки. Вместо этого все выходные данные G стремится к одной и той же точке, что заставляет D поверить в то, что эта точка очень реальна. Затем происходит коллапс моды. После этого G генерирует только одну выборку, и градиентный спуск не может разделить выходы. Таким образом, D Градиент G всегда будет подтолкните единственную выборку, сгенерированную G, к перемещению в пространстве, и алгоритм никогда не сойдется.

Концепция дискриминации мини-пакетов такова: любой D рассматривает несколько выборок в комбинации, а не дискретно, что позволяет избежать коллапса моды G.

Конкретная реализация выглядит следующим образом: используйте ф ( Икс я ) е р А " роль="презентация">f(xi)∈RA ф ( Икс я ) е р А Указывает ввод Икс я " роль = "презентация">xi Икс i, вектор признаков промежуточного слоя D, умноженный на тензор Т е р А × Б × С " роль="презентация">T∈RA×B×C Т е р А × Б × C, получить матрицу М я е р Б × С " роль="презентация">Mi∈RB×C М я е р Б × С , Затем для каждого входа Икс я " role="презентация">Си Икс я ( я е 1 , 2 , … , н " роль="презентация">i∈1,2,…,n я е 1 , 2 , … , н) расчетный М я " роль = "презентация"> Ми М i вычисляет расстояние L1 соответствующей строки, а затем применяет к результату отрицательную экспоненциальную операцию, т.е. с б ( Икс я , Икс Дж ) знак равно е Икс п ( − | | М я , б − М Дж , б | | л 1 )" role="презентация">cb(xi,xj)=exp(-||Mi,b-Mj,b||L1) с б ( Икс я , Икс Дж ) знак равно е Икс п ( − | | М я , б − М Дж , б | | л 1 ) (где b представляет соответствующую строку). После этого для Икс я " роль = "презентация">xi Икс i рассчитывается со всеми остальными образцами с" роль="презентация">с c сумма, обозначаемая как о ( Икс я )" роль="презентация">o(xi) о ( Икс я ), использовать о ( Икс )" роль="презентация">о(Х) о ( Икс ) Выражать о ( Икс я )" роль="презентация">o(xi) о ( Икс я ) матрицы. о ( Икс )" роль="презентация">о(Х) о ( Икс ) и ф ( Икс )" роль="презентация">f(X) ф ( Икс ) объединяются в качестве входных данных для следующего слоя.

mini-batch discrimination

Используя различение мини-пакетов, D теперь может использовать разницу между образцами и другими образцами в той же партии в качестве дополнительной информации в дополнение к различению реальных и сгенерированных образцов.

В этой статье показано, что различение мини-пакетов может быстро генерировать визуально более реалистичные образцы, даже больше, чем сопоставление признаков Сопоставление признаков более полезно при обучении сильного классификатора в обучении с полуучителем.

Historical avearing

Historical avearing 历史平均Концепция очень интуитивно понятна, она заключается в добавлении к стоимостным функциям G и D | | θ − 1 т Σ я знак равно 1 т θ [ я ] | | 2 " роль="презентация">||θ−1tΣti=1θ[i]||2 | | θ − 1 т Σ я знак равно 1 т θ [ я ] | | 2 этот предмет, из которых θ [ я ]" роль="презентация">θ[i] θ [ я ]$ — значение параметра, соответствующее прошедшему времени i.

Историческое среднее значение параметров можно обновить с помощью онлайн-обучения, поэтому этот метод обучения также хорошо масштабируется на длинных временных рядах.

One-sided label smoothing

Label smoothing 单边标签平滑Концепция очень проста: использовать 0,9 и 0,1 для замены исходных меток 1 и 0. (0,9 и 0,1 — это просто примеры, вы также можете использовать случайные числа 0,8 ~ 1,1 для замены метки 1).

В этой статье указывается, что при двустороннем сглаживании меток оптимальное D выражается как Д ( Икс ) знак равно альфа п г а т а ( Икс ) + бета п м о г е л ( Икс ) п г а т а ( Икс ) + п м о г е л ( Икс ) « роль = «презентация»> D (x) = αpdata (x) + βpmodel (x) pdata (x) + pmodel (x) Д ( Икс ) знак равно альфа п г а т а ( Икс ) + бета п м о г е л ( Икс ) п г а т а ( Икс ) + п м о г е л ( Икс ) . п м о г е л ( Икс )" роль="презентация">pmodel(x) п м о г е л ( Икс ) появление в молекуле проблематично, потому что, когда п г а т а " роль = "презентация"> pdata п г а т а близко к 0, а п м о г е л ( Икс )" роль="презентация">pmodel(x) п м о г е л ( Икс ) очень большой, от п м о г е л ( Икс )" роль="презентация">pmodel(x) п м о г е л ( Икс ) не изменится на более реалистичные данные.

Virtual Batch Normlization

Пакетная нормализация может значительно улучшить эффект оптимизации нейронных сетей, но она также делает одну выборку сильно зависимой от других выборок в той же партии.

Для решения вышеуказанных проблем в статье предлагаетсяVirtual Batch Normalization VBN, во время тренировки, на основеreference batchстатистика для нормализации x, в то время как эталонная партия выбирается и фиксируется в начале обучения.Эталонная партия нормализуется в соответствии со своей собственной статистикой.

При использовании обучения VBN требуется прямое распространение на двух минипакетах, поэтому вычислительные затраты высоки.В этой статье используется только G.


разное

В этой статье предлагается метод оценки образцов: ввод каждого сгенерированного изображения в Google Inception Net для получения условного распределения меток. п ( у | Икс )" роль="презентация">p(y|x) п ( у | Икс ) Если граф содержит значимые объекты, то п ( у | Икс )" роль="презентация">p(y|x) п ( у | Икс ) должен иметь низкую энтропию, Кроме того, используя GAN, все хотят генерировать разные изображения (образцы), т. Е. Ребра ∫ п ( у | Икс знак равно г ( г ) ) г z" роль="презентация">∫p(y|x=G(z))dz ∫ п ( у | Икс знак равно г ( г ) ) г z должен иметь высокую энтропию, поэтому, объединяя их, получается метрика оценки:inception_score_metric.png, цель применения возведения в степень к результатам состоит в том, чтобы облегчить последующие сравнения.Этот метод оценки называетсяInception Score

По опыту автора, начальная оценка очень полезна для оценки разнообразия большого количества выборок.

В этой статье подчеркивается важность тегов изображения для качества изображения, потому что в этой статье предлагаетсяInception ScoreСуществует высокая корреляция с человеческой оценкой Они связывают это с тем фактом, что зрительная система человека более адаптивна к статистике изображения, которая может помочь сделать вывод о категориях объектов, и менее чувствительна к локальной статистике, которая не помогает для интерпретации изображения.

полуконтролируемое обучение

В этой статье упоминается полууправляемый метод обучения, добавляющий выборки, сгенерированные G, в набор данных в качестве обычных входных данных классификатора, помеченный как класс K+1, и соответственно изменяющий выходную размерность классификатора с K на K+1. , Затем п м о г е л ( у знак равно К + 1 | Икс )" роль="презентация">pmodel(y=K+1|x) п м о г е л ( у знак равно К + 1 | Икс ) можно использовать как вероятность того, что выборка ложная, соответствующая исходной структуре GAN 1 − Д ( Икс )" роль="презентация">1-D(x) 1 − Д ( Икс ). Преимущество этого в том, что необходимо знать только, какой из истинных K классов максимизирует л о г п р е а л ( у е 1 , … , К )" роль="презентация">logpreal(y∈1,…,K) л о г п р е а л ( у е 1 , … , К ), можно оценить класс, к которому относятся сгенерированные неразмеченные образцы.

В этот момент функцию потерь можно разложить следующим образом (для удобства карта отображена напрямую):

semi-supervised_loss_function_decomposing.png

В настоящее время л ты н с ты п е р в я с е г " role="презентация">Lunsupervised л ты н с ты п е р в я с е d на самом деле является игровой ценностью GAN. л с ты п е р в я с е г " role="презентация">Lsupervised л с ты п е р в я с е д и л ты н с ты п е р в я с е г " role="презентация">Lunsupervised л ты н с ты п е р в я с е Оптимальное решение d обладает свойствами: е Икс п [ л Дж ( Икс ) ] знак равно с ( Икс ) п ( у знак равно я , Икс ) ∀ Дж exp[lj(x)]=c(x)p(y=i,x)∀jexp[lK+1(x)]=c(x)pG(x) е Икс п [ л К + 1 ( Икс ) ] знак равно с ( Икс ) п г ( Икс ), что означает, что неконтролируемая потеря и контролируемая потеря согласованы.

Этот полууправляемый подход к обучению вводит взаимодействие между G и классификатором, и авторы обнаружили, что использование特征匹配оптимизация G особенно хороша, в то время как мини-пакетная дискриминация вообще не работает.

Наконец, авторы заявляют, что классификатор K + 1 чрезмерно параметризован, поскольку вычитание скорости из всех выходных пар ф ( Икс )" роль="презентация">f(x) ф ( Икс ) не меняет вывод softmax. Это означает, что его можно эквивалентно исправить л К + 1 ( Икс ) знак равно 0 ∀ х" роль="презентация">lK+1(x)=0∀x л К + 1 ( Икс ) знак равно 0 ∀ х, так л с ты п е р в я с е г " role="презентация">Lsupervised л с ты п е р в я с е d становится стандартной контролируемой функцией потерь исходного классификатора K-класса, тогда D можно выразить как Д ( Икс ) знак равно Z ( Икс ) Z ( Икс ) + 1 " роль="презентация">D(x)=Z(x)Z(x)+1 Д ( Икс ) знак равно Z ( Икс ) Z ( Икс ) + 1 , Z ( Икс ) знак равно Σ к знак равно 1 К е Икс п [ л к ( Икс ) ]" role="презентация">Z(x)=ΣKk=1exp[lk(x)] Z ( Икс ) знак равно Σ к знак равно 1 К е Икс п [ л к ( Икс ) ]