Авторы Саша Шэн и Диого Алмейда

Отказ от ответственности: мнения принадлежат только авторам этого сообщения в блоге и не отражают мнения наших работодателей. Предвзятость в машинном обучении, безусловно, является более серьезной структурной проблемой, которую нельзя решить чисто техническими средствами. Это сообщение в блоге посвящено только узкой задаче компьютерного зрения - адаптации PULSE для создания более разнообразных лиц.

Мотивация

ПУЛЬС: Самоконтролируемая передискретизация фотографий с помощью скрытого космического исследования генеративных моделей в последнее время непреднамеренно вызвала горячие споры в сообществе машинного обучения. Разговор, завязавшийся на Reddit, вдохновил нас на взломать проект на выходные. В частности, второй момент на скриншоте ниже заставил наши творческие соки течь, и мы решили провести несколько экспериментов по увеличению расового разнообразия в поколениях PULSE со сверхвысоким разрешением. Мы были приятно удивлены тем, что несколько экспериментов привели к большему разнообразию по возрасту и полу, но, к сожалению, не по расе. Это еще одно свидетельство того, что снижение предвзятости моделей машинного обучения - сложная проблема, и ее невозможно полностью решить с помощью только алгоритмических изменений.

Быстрый обзор

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

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

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

Высокое разрешение с несколькими выходами очень важно

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

Мы думаем, что людям может не хватить всего одного поколения для сверхвысокого разрешения. Что, если им нужны разные лица? Мы думаем, что было бы желательно иметь несколько правдоподобных апдемплингов. Наш метод генерирует более разнообразные лица с большим разбросом атрибутов, что позволяет пользователям выбирать изображение со сверхвысоким разрешением, которое соответствует их уникальным требованиям.

Пик наших результатов

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

Следите за разделом "Эксперименты", если вам интересно, как мы это сделали! :)

Методы и эксперименты

В связи с жаркими спорами о расе мы специально выбрали изображения расовых меньшинств. Здесь мы показываем два примера: Опра и неопознанное женское изображение с reddit, а также версии с высоким разрешением, созданные vanilla PULSE. Из двух изображений мы видим, что, хотя уменьшенные версии похожи, изображения с высоким разрешением сильно отличаются.

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

Итеративная инициализация отрицания

Допустим, мы хотим сгенерировать 2 изображения с повышенной дискретизацией на основе изображения с низким разрешением, которые отличаются друг от друга. Мы можем сгенерировать первое изображение, просто запустив PULSE. Что мы можем сделать, чтобы убедиться, что второе сгенерированное изображение максимально отличается от первого изображения?

Мы начали исследование с самого простого, что мы могли придумать: инициализировать скрытый код изображения 2 с помощью отрицание последних скрытых значений изображения 1. Затем поиск изображения 2 начнется в противоположной области гиперсферы, что делает крайне маловероятным, что мы приблизимся к последним скрытым компонентам изображения 1. Это сработало: изображения были разными. , но ужасно! (См., Например, 2-е и 4-е изображения ниже).

Что делать, если только изображение 2 плохое, а все остальное получается нормально? Мы обобщили эту интуицию, чтобы инициализировать следующий скрытый код как отрицание среднего значения всех предыдущих скрытых (с учетом нормы), и результаты приведены ниже. Как видите, результаты несколько разнообразнее, но не очень хороши (и даже несколько причудливы). Качество, кажется, колеблется, возможно, колеблется между областями хороших и плохих изображений.

Инициализация с самой дальней выборкой

Чтобы избежать проблемы колебаний, упомянутой выше, мы выбрали 10k потенциальных начальных скрытых значений и выбрали одно, наиболее удаленное от предыдущих скрытых значений.

Результаты показали значительное улучшение качества по сравнению с инициализацией итеративного отрицания, хотя только небольшое улучшение разнообразия по сравнению с ванильным PULSE.

Итеративная перпендикулярная инициализация

Возможно, отрицание было слишком сильным и вызывало нежелательные колебания. Поэтому мы попытались инициализировать направления, перпендикулярные всем ранее сгенерированным скрытым значениям, что, похоже, решило обе эти проблемы. Мы сделали это путем выборки скрытых значений из нормального распределения и удаления соответствующей проекции на каждое из ранее сгенерированных скрытых значений (контролируя норму, чтобы латентные значения падали на одну и ту же гиперсферу). Поскольку латенты находятся в 512-мерном пространстве, может быть максимум 512 различных перпендикулярных направлений, и это накладывает ограничение на количество изображений, которые может сгенерировать этот метод. К счастью, это число намного превышает число, которое мы когда-либо хотели сгенерировать.

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

Оптимизатор перпендикулярной проекции

Итеративная перпендикулярная инициализация прошла успешно. Перпендикулярность (по-видимому, настоящее слово) - это ключ. Мы хотим набрать ручку перпендикулярности по максимуму. Просто инициализировать скрытые значения как перпендикулярные может быть недостаточно, поскольку во время поиска мы можем просто двигаться в любом направлении. Что, если мы сможем ограничить скрытое значение каждого шага оптимизации, чтобы оно было перпендикулярно их ранее оптимизированному значению? Мы выполняли перпендикулярную проекцию (такую ​​же, как та, которую мы использовали при итеративной перпендикулярной инициализации) на каждом этапе оптимизации, после исходного обновления, но до проекции PULSE в гиперсферу.

Результаты интересны. Мы видим не только особенности, которые визуально соотносятся с возрастом, но и с полом! Например, борода, которая обычно ассоциируется с мужчиной, присутствует на изображении 7 и, возможно, изображении 18, в то время как изображение 13, изображение 16, изображение 19 и изображение 24 выглядят молодо.

ψ от StyleGAN на помощь

Мы были очень довольны улучшением разнообразия в последнем эксперименте, но почувствовали, что можем поработать над реализмом / качеством.

ψ определяет, насколько далеко сгенерированное лицо находится от средние латенты для всех лиц. Когда ψ → 0, все грани сходятся к средним граням. Интерполяция по направлению к нему уменьшает количество артефактов. Поэтому мы настроили StyleGAN ψ на 0,7 (в отличие от 1 в PULSE), чтобы улучшить реалистичность.

Discriminator Loss улучшает реалистичность (незначительно)

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

Если честно, мы довольно долго смотрели на две пары (с потерей дискриминатора и без нее) на разных базовых изображениях. В качественном отношении мы думаем, что они имеют одинаковое разнообразие. (Если бы мы хотели опубликовать это, мы, вероятно, узнали бы мнение AMT и измерили разнообразие и качество с помощью чисел.) С помощью увеличительного стекла и некоторых глазных капель мы пришли к выводу, что потеря дискриминатора немного улучшила реалистичность изображений. (Например, нижнее левое поколение из предыдущего изображения показало артефакты, которых нет в следующих поколениях).

Заключение

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

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

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

Попробуйте сами и расскажите, как это сработало для вас!

Особая благодарность Деви Парикх, Джоэл Пино и Райану Лоу за обзор