Визуализация генерирующих состязательных сетей

Эта статья представляет собой краткое изложение исследовательской работы Рассечение GAN: визуализация и понимание генерирующих враждебных сетей. Документ дает прекрасное представление о внутреннем представлении GAN и дает подробный ответ на следующий вопрос.

Чему, черт возьми, учатся GAN? Я имею в виду именно генератор. Мы все видели потрясающие результаты, полученные GAN, в некоторых случаях почти неотличимые от человеческой работы. Но как они представляют полученные знания - все еще загадка. Они просто изучают пиксельные паттерны и объединяют то, что видят? Или они на самом деле фиксируют сложные отношения из данных обучения?

В этом документе делается попытка расшифровать представление GAN и показаны методы их визуализации и отладки. Это делается в два этапа.

Расслоение

Dissection направлен на идентификацию классов объектов, которые представляют собой выходы слоя в генераторе. Например. Представляет ли конкретная единица в G деревья?

Немного терминологии:

Единица: Каждый канал карты характеристик генератора G
r: Выход слоя генератора

На основании данных Bau et al. (2017), карта характеристик фильтра дает хорошее приближение сегментации класса объекта. Для каждого интересующего нас класса объектов мы сначала вычисляем маску сегментации класса в сгенерированном изображении. Мы повышаем дискретизацию и пороговое значение карты характеристик единицы u, используя формулу ниже. Затем мы берем долговую расписку между этой пороговой и прошедшей повышенную дискретизацию картой характеристик и маской сегментации класса.

представляет собой пересечение, а представляет собой объединение. s_c (x) представляет маску сегментации для определенного класса c на изображении x . Формула для расчета порогового значения для конкретной единицы и класса также упоминается выше. Вкратце, приведенная выше формула дает меру того, насколько единица u представляет класс c. Вы можете узнать больше об интуиции формулы порогового значения в статье.

Таким образом, ранжирование концепций (классов объектов), представленных единицей, осуществляется путем сортировки этих оценок по значениям, полученным для каждого класса c.

TL; DR; Dissections позволяет обнаруживать единицы, которые точно соответствуют классу объекта. Но это не обязательно означает, что они несут ответственность за их создание.

Вмешательство

Вмешательство направлено на выяснение, вызывает ли набор единиц объект класса c. Это делается путем включения и выключения устройств и наблюдения за эффектами на сгенерированном изображении G.

r: Тензорный вывод (карта активации) из определенного слоя G
U:
Набор единиц
P:
Пиксели в сгенерированном изображении G

Абляция означает отключение единиц в U путем установки для них значения 0. С другой стороны, вставка заставляет единицы в U равняться k, a на константу класса. k для класса c рассчитывается путем взятия среднего значения карты характеристик единиц, вызывающих c.

Приведенная выше формула дает меру того, сколько единиц U отвечает за создание класса c. Эта мера называется средним причинным эффектом (ACE). Здесь s_c (x) обозначает карту сегментации класса c в изображении x в пикселях P. Таким образом, в основном разница между причинными эффектами на карте сегментации класса c в G при вставке и удалении.

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

Мы устанавливаем U как весь набор единиц, но взвешиваем их с вектором параметров альфа. Затем используется стохастический градиентный спуск, чтобы максимизировать целевую функцию (ACE) и минимизировать количество единиц в оптимальном наборе (используя термин регуляризации L2 для альфа).

На рисунке ниже показано, как удаляющие блоки, вызывающие деревья, успешно удаляют деревья из сгенерированного изображения.

Вкратце о результатах

Различия между слоями. Судя по результатам, первый слой не соответствует классам объектов. Это имеет интуитивный смысл, поскольку ранние слои обычно представляют примитивные функции. Средние слои содержат множество единиц, которые соответствуют семантическим объектам и частям объекта. Конечные слои соответствуют локальным образцам пикселей, таким как материалы, края и цвета.

Различия между архитектурами GAN. В документе также обсуждается сравнение различных архитектур во внутреннем представлении путем изучения единиц.

Контекстные взаимосвязи через вставку: в документе также описывается вставка функций в определенные места сгенерированного изображения путем принуждения. Одно интересное наблюдение заключается в том, что такой объект, как дверь, может быть вставлен только в определенных местах, где это имеет визуальный смысл (например, здания возле окон, кирпичи) . Это говорит о том, что GANS фактически фиксирует отношения между объектами, а не просто пиксельные узоры.

На изображении выше показано, как создание классов объектов сильно зависит от локального контекста. Фактический эффект от вставки зависит от того, где он происходит.

Диагностика GAN

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

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

Последние мысли

В документе сделана отличная попытка демистифицировать сети GAN - пока что относительно неизученная тема. Их структура позволяет исследователям и практикам лучше отлаживать, улучшать и понимать свои модели.

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

Источники: идеи, формулы и изображения, взятые из бумаги.

использованная литература

Рассечение GAN: визуализация и понимание генерирующих враждебных сетей

Официальный сайт проекта (с кодом Github, демонстрационным видео, слайдами и т. Д.)

Интерактивный инструмент GAN Paint