Про-ГАН

Введение в Pro-GAN

В этой статье мы увидим подробное объяснение стандартного отклонения мини-пакетов, которое в основном используется в ProGAN (прогрессивные генеративно-состязательные сети). ProGAN обычно используется для создания изображений лица с высоким разрешением в прогрессивной манере. По сути, Стандартные GAN также используются для создания изображений, но они не могут генерировать изображения высокого качества (1024 x 1024), которые содержат функции высокого уровня из-за его ограничений в архитектуре. Но ProGAN будет постепенно увеличивать размер сгенерированного изображения одно за другим. Сначала он начнет генерировать изображения 4 x 4, а после стабилизации начнет генерировать изображения 8 x 8 и так далее до 1024 x 1024 изображений. По этому подходу. это делает обучение очень стабильным, а модель сходится намного быстрее по сравнению со стандартными GAN.

Документ ProGAN: https://arxiv.org/pdf/1710.10196v3

Необходимо стандартное отклонение мини-серии

Коллапс режима происходит, когда генератор может производить только один тип выходных данных или небольшой набор выходных данных. Это может произойти из-за проблем с обучением, например, когда генератор находит тип данных, который легко может обмануть дискриминатор, и, таким образом, продолжает генерировать этот тип. В ProGAN автор предлагает добавить 1 карту функций в конце дискриминатора, чтобы решить проблему коллапса режима. Таким образом, к каждому изображению мини-пакета будет добавлена ​​1 карта признаков.

Понимание реализации

Давайте рассмотрим, у нас есть вход 7x7x32, и мы применяем фильтр 3x3x32 к входу, который создаст 1 карту объектов, как показано на рисунке 1 выше. Но когда мы применяем операцию свертки к входу, мы не применяем только 1 фильтр. Предположим, нам нужно применить фильтр c. Таким образом, результирующая карта объектов будет иметь форму 4x4xc. А в мини-батче у нас нет только 1 входа. Предположим, у нас есть m входов. Таким образом, результирующая карта объектов будет иметь форму mx4x4xc. Изображение ниже предназначено только для 1 фильтра.

Теперь стандартное отклонение для каждого пространственного положения рассчитывается по приведенной ниже формуле для каждого фильтра по всему мини-пакету. Во-первых, мы вычислим среднее значение для каждого пространственного положения. Итак, мы получим всего 16 средних значений (каждое соответствует 1 пространственному местоположению, и у нас всего 4x4 = 16 пространственных местоположений). Таким же образом, используя среднее значение, мы рассчитаем стандартное отклонение для каждого 16 пространственного положения, и это создаст карту стандартного отклонения, как показано на рисунке 2.

Здесь 0 ≤ r ‹ высота и 0 ≤ c ‹ ширина.

Выше процесса мы сделали это 1-й фильтр. Мы должны сделать то же самое для каждого фильтра c, как показано ниже на рисунке 4.

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

Теперь эта карта признаков среднего стандартного отклонения будет добавлена ​​к каждому результату предыдущего слоя (в основном к каждому изображению мини-пакета, как показано ниже на рисунке 6.

Как это помогает при сворачивании режима??

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

Ссылки

  1. https://youtu.be/V1qQXb9KcDY
  2. https://arxiv.org/pdf/1710.10196v3
  3. «ГАН — Серия ГАН (от начала до конца) | Джонатан Хуэй | Середина"

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

До следующего раза, До свидания!!!!