Введение в диффузионные модели для генерации изображений – полное руководство

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Недавние достижения в области генерации изображений на основе искусственного интеллекта, возглавляемые диффузионными моделями, такими как Glide, Dalle-2, Imagen и Stable Diffusion, взяли мир “искусственного интеллекта” штурмом. Создание высококачественных изображений на основе текстовых описаний - сложная задача. Это требует глубокого понимания основного значения текста и способности генерировать изображение, соответствующее этому значению.В последние годы диффузионные модели стали мощным инструментом для решения этой проблемы.

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

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

Результаты из Dall-E 2
Результаты из Dall-E 2
Результаты из Stable Diffusion v2.1
Результаты из Stable Diffusion v2.1

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

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

  2. Объясним в простых терминах, что такое “диффузия” и как работают диффузионные модели.

  3. Представим высокоуровневый обзор четырех наиболее популярных диффузионных моделей:

    1. Dall-E 2 от OpenAI

    2. Imagen от Google

    3. StabilityAI’s Stable Diffusion

    4. Midjourney

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

Содержание

  1. Что такое генеративные модели?

  2. Что такое диффузия?

  3. Что такое диффузионные модели?

    1. Как работают диффузионные модели генерации изображений?

    2. Сравнение с GaN

  4. Хорошо известные диффузионные модели для генерации изображений

    1. DALL-E 2

    2. Imagen

    3. Stable Diffusion

    4. Midjourney

  5. Популярные варианты стабильных диффузионных моделей

    1. Anything V3

    2. Robo Diffusion

    3. Open Journey

    4. Arcane Diffusion

    5. Mo-Di Fusion

  6. Применение диффузионных моделей

    1. Textual Inversion

    2. Text To Videos

    3. Text To 3D

    4. Text To Motion

    5. Image To Image

    6. Image Inpainting

    7. Image Outpainting

    8. Infinite Zoom In & Zoom Out

    9. Image Search & Reverse Image Search

  7. Инструменты

    1. Для локальной и Colab установки

    2. Для онлайн-тестирования

  8. Краткие сведения

Что такое генеративные модели?

Большинство задач машинного обучения и глубокого обучения, которые вы решаете, концептуализируются из Генеративных и дискриминационных модели. Проще говоря, “генеративные модели” - это статистические модели, предназначенные для “генерации / синтеза данных”. Их задача состоит в том, чтобы “преобразовать шум в репрезентативную выборку данных”.

На протяжении многих лет мы видели много творческих применений генеративных моделей. Одним из конкретных приложений, которое большинство из нас помнит, была реклама Cadbury, в которой использовались Генерация звука и синхронизация по губам составить карту выражения лица и речи различных знаменитостей. Его можно использовать для создания персонализированной рекламы знаменитостей.

Четыре хорошо известные модели генерации изображений, основанные на глубоком обучении::

  1. Вариационные автоэнкодеры (VAE)

  2. Flow-based models

  3. Генеративные состязательные сети (GAN).

  4. Diffusion (недавняя тенденция)

Изображение на высоком уровне отражает механизмы всех 4 алгоритмов.
Источник: https://lilianweng.github.io/posts/2021-07-11-diffusion-models/
Изображение на высоком уровне отражает механизмы всех 4 алгоритмов. Источник: https://lilianweng.github.io/posts/2021-07-11-diffusion-models/

Эти модели сначала обучаются, чтобы научиться моделировать “распределение данных” (обучающих данных). После обучения модель знает, как аппроксимировать исходное распределение данных, и может использовать его для генерации новых данных (изображений) по желанию.


Предшественником понимания “Variational Autoencoders” являются “Autoencoders”. Основной задачей автоэнкодеров является сжатие данных. Архитектура автоэнкодеров довольно проста. Оно содержит три компонента:

  1. Кодировщик

  2. Узкое место (ответственное за сжатие)

  3. Декодер

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

В автоэнкодерах распределение сжатых данных / скрытых данных “без ограничений”. Данные сжимаются таким образом, что ошибка восстановления минимальна. Это приводит к серьезному недостатку, т.е. потому, что у нас нет представления / информации о распределении скрытого, поэтому генерировать новые выборки (используя только декодер) сложно.

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


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

Решение трилеммы генеративного обучения
Источник: https://nvlabs.github.io/denoising-diffusion-gan/
Решение трилеммы генеративного обучения Источник: https://nvlabs.github.io/denoising-diffusion-gan/

Подводя итог:

VAE

Поток

GAN

Диффузия

Плюсы

Высокая частота дискретизации.

Генерация разнообразных образцов

Высокая частота дискретизации.

Генерация разнообразных образцов

Высокая частота дискретизации.Высокое качество генерации образцов.

Высокое качество генерации образцов.Генерация разнообразных образцов

Минусы

Низкое качество генерации выборки

Требуется специализированная архитектура,низкое качество генерации выборки

Нестабильное обучение,низкое разнообразие генерации выборки(коллапс режима)

Низкая частота дискретизации


Созданные в 14 году Иэном Гудфеллоу генеративные состязательные сети (GAN) были в значительной степени нормой для генерации образцов изображений.

Было создано множество вариаций оригинального GAN, таких как:

  1. Условный GAN (cGAN): управление классом / категорией генерируемых изображений.

  2. Глубокая сверточная GAN (DCGAN): архитектура значительно улучшает качество GAN с использованием сверточных слоев.

  3. Преобразование изображения в изображение с помощью Pix2Pix: преобразование изображений из одного домена в другой путем изучения сопоставления между входом и выходом.

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


Что такое диффузия?

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

В неравновесной статистической физике процесс диффузии относится к:

“Перемещение частиц или молекул из области высокой концентрации в область низкой концентрации, обусловленное градиентом концентрации”.

Источник: https://chem.libretexts.org/Under_Construction/Purgatory/Kinetic_Theory_of_Gases
Источник: https://chem.libretexts.org/Under_Construction/Purgatory/Kinetic_Theory_of_Gases

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

Что такое диффузионные модели?

В простых терминах – “Диффузионные модели представляют собой класс вероятностных генеративных моделей, которые превращают шум в репрезентативную выборку данных”.

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

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

  2. Условная генерация изображений - это когда модели предоставляется дополнительная информация с помощью текста (text2img) или меток классов (как в CGANs). Это случай управляемой или управляемой генерации изображений. Предоставляя дополнительную информацию, мы ожидаем, что модель будет генерировать определенные наборы изображений. Например, вы можете обратиться к двум изображениям в начале сообщения.

В этом разделе мы сосредоточимся на процессе “безусловной генерации изображений”.

Безусловная генерация изображений с использованием диффузионной модели на этапе вывода.
Безусловная генерация изображений с использованием диффузионной модели на этапе вывода.
езусловная генерация изображений с использованием диффузионной модели на этапе вывода.
езусловная генерация изображений с использованием диффузионной модели на этапе вывода.

Немного истории…

Диффузионные модели в глубоком обучении были впервые представлены Соул-Дикштейном и др. в оригинальной статье 2015 года “Глубокое неконтролируемое обучение с использованием неравновесной термодинамики”. К сожалению, это оставалось за кулисами некоторое время.

Но в 2019 году Сонг и др. опубликовал статью “Генеративное моделирование путем оценки градиентов распределения данных”, использующую тот же принцип, но другой подход. В 2020 году Хо и др. опубликовал популярную в настоящее время статью “Вероятностные модели рассеяния шума” (сокращенно DDPM).

После 2020 года исследования в области диффузионных моделей начались

Источник: https://habr.com/ru/post/713076/


Интересные статьи

Интересные статьи

Уважаемые читатели, добрый день! Многие представляют АЭС и ТЭС как некие сложные установки и системы малопонятных процессов, но пользу от работы атомных и тепловых электростанций понимают практически ...
В мире зафиксировано 600 000 попыток использования уязвимости, их жертвами стали 44% корпоративных сетей. В России уязвимость Log4Shell затронула 48% корпоративных сетей, злоумышленники пытались ...
Введение в непрерывную поставку (CD) при помощи GitLab Данный туториал позволит вам быстро прочувствовать как происходит командная работа с использованием GitLab. В целом, начать практ...
Это перевод второй статьи из серии публикаций по дифференциальной приватности. На прошлой неделе, в первой статье цикла — «Дифференциальная приватность — анализ данных с сохранение...
В некоторых сферах программирования нормально хотеть написать такую структуру данных или алгоритм, которые могут работать с элементами разных типов. Например, список дженериков или алгоритм сор...