UNIT: Unsupervised Image-to-Image Translation Networks
🔗 Ссылки
https://arxiv.org/abs/1703.00848
https://github.com/NVlabs/imaginaire/tree/master/projects/unit
💎 Контрибьюшн
В этой статье предложен фреймворк для unsupervised image-to-image translation. Благодаря нему можно имея 2 разных домена изображений X и Y смоделировать функцию, которая переводит элемент из X в элемент из Y. Например, можно научиться превращать самоедов в корги, или более продуктовый пример: фотографии со спутника в карты местности.
Unsupervised-подход имеет смысл использовать, когда собрать обучающую выборку невозможно (например, для превращений пород собак и видов кошек), или очень дорого (например, для дневной и ночной съёмки).
Для этого авторы усилили cycle-consistency constraint, которое используется для маппинга между доменами, до shared-latent space constraint: существует общее латентное пространство Z, такое, что любая пара соответствующих изображений (x, y) маппится в одну и ту же точку из Z; и любая точка из Z обязательно маппится в пару соответствующих изображений (x, y).
🛠 Задача
Будем говорить, что пара изображений (x, y) из множеств X и Y соответствует друг другу, если y получено из x некоторым преобразованием f. Предполагается, что хотя бы одно такое f существует. Пример: дневные и ночные фотографии.
Отличие unsupervised-подхода от привычного supervised в том, какие данные доступны во время обучения:
- Supervised: соответствующие пары (x, y). Можно говорить, что даны примеры из совместного распределения П(P_X, P_Y).
- Unsupervised: 2 независимых множества изображений X и Y. Если переформулировать на языке статистики, то доступны примеры из частных распределений P_X и P_Y.
В обоих случаях стоит задача выучить совместное распределение, чтобы по изображению из одного домена можно было сэмплировать соответствующие изображения из другого.
Coupling theory говорит о том, что для данных частных распределений существует бесконечное множество совместных. Мотивационный пример: если даны 2 одномерных нормальных распределения, то чтобы получить сколь угодно много совместных, можно двигать одномерные вдоль осей.
Поэтому задача: "Выучить совместное распределение по частным распределениям", — является некорректно поставленной. Для конкретизации нужны дополнительные предположения о структуре совместного распределения. В случае supervised-обучения ими выступают сами сэмплы (x, y).
При unsupervised-обучении для задачи image-to-image translation часто используется cycle-consistency constraint, говорящее о том, что при переводе изображения в другой домен и обратно, оно должно быть таким же, как исходное.
В этой статье авторы предлагают shared-latent space constraint, более сильное условие, т.к. из него можно вывести cycle-consistency (скомбинировав нужным образом эмбеддеры и генераторы):
🔎 Детали
После обучения для image-translation 1->2 нужно использовать композицию
1. VAE
Энкодер и генератор рассматриваются как VAE. Энкодер выучивает распределение векторов в латентном пространстве, из которого дальше сэмплирует генератор и синтезирует изображение. Для каждого домена свой энкодер и генератор. Размерность латентного пространства в работе — dim = 512.
В качестве prior — стандартное нормальное распределение в каждой из компонент латентного вектора; энкодер оценивает только вектор мат. ожиданий, а σ = 1.
Для обучения используется reparametrization trick:
а в качестве лосса — variational upper bound*:
* Это выражение очень похоже на ELBO, и я не очень понимаю, в чём отличие (а если оно есть, то не понимаю мотивацию использовать именно upper bound, когда все используют ELBO).
2. Weight-sharing
Дополнительно предполагается наличие низкоуровнего общего латентного пространства H. Авторы объясняют это так: Z отвечает за высокоуровневое описание содержание, а H определяет то, какие пиксели будут отвечать за конкретные объекты на изображении.
Эта идея реализуется как несколько общих слоёв в энкодерах и генераторах. Причём если в конце энкодеров k общих слоёв, то и у генераторов в начале должно быть k общих слоёв. На практике авторы экспериментировали с 1–4 общими слоями.
Однако использование только этого механизма не гарантирует, что shared-latent space constraint будет выполнено. Но даже если латентные коды соответствующих картинок будут совпадать, то элементы векторов могут означать семантически разное!
3. GANs
GANы в этом фреймворке могут обучаться на двух типах сгенерированных изображений:
Авторы подчёркивают, что adversarial learning применяется только для (2), т.к. (1) может обучаться supervised (именно это и происходит при обучении VAE).
4. Cycle-consistency
Выше было сказано, что shared-latent space — более сильное условие, чем cycle-consistency. А значит, cycle-consistency является необходимым условием для shared-latent space, поэтому в процессе обучения требуется его соблюдение:
🔬 Эксперименты
Объективные измерения
Для объективных экспериментов использовался датасет из фотографий со спутника и соответствующих им кусочков навигационных карт — 1096 и 1098 картинок размером 512x512 (датасет предложен в работе pix2pix). Обучение происходило в unsupervised-режиме на кропах 256x256 в течение 100K итераций.
Качество image-translation измерялось только для задачи Image->Map, поскольку кусочки карт из унимодального распределения (для мультимодального можно использовать FID, но его придумали спустя 3 месяца после публикации этой статьи).
Метрика — Accuracy по пикселям. Пиксель считается корректным, если его цвет отличается на ≤16 от GT.
- Качество генерации не зависит от количества общих слоёв (b), но их отсутствие ведёт к деградации качества (d)
- Reconstruction term важен при обучении (c), поэтому его вес должен быть достаточно большим (в экспериментах λ_2 = λ_4 — это коэффициенты при reconstruction-лоссах)
- Отсутствие лосса для cycle-consistency также приводит к ухудшению качества (d)
Визуальное сравнение
Авторы говорят, что модель плохо справляется со случаями, когда в source-домене не хватает информации для адекватного перевода в target-домен. Например, для задачи Night->Day.
Domain Adaptation
Задача: имея размеченные картинки в source-домене, обучить классификатор для target-домена, в котором разметка отсутствует.
- Обучить UNIT для задачи Source->Target
- Одновременно с этим учить классификатор C, использующий верхнеуровневые фичи дискриминатора для source-домена
- Последние слои дискриминаторов — общие
- Накинуть L1-регуляризацию на фичи с последнего слоя дискриминаторов для соответствующих картинок
Таким образом оба дискриминатора переводят картинки из обоих доменов в одно семантическое пространство, а значит для классификации можно пользоваться уже обученным классификатором C.
Ограничения подхода
- Поскольку в качестве prior'а в латентном пространстве выступает нормальное распределение, функция image-translation унимодальна
- Нестабильный алгоритм поиска оптимальной седловой точки
В следующей работе — MUNIT — предлагается фреймворк для мультимодального синтеза.