Введение
Изначально мы планировали сделать размытие изображения лица с помощью модели GANS. Однако мы поняли, что модель GANS устарела и доступны другие современные методы. Профессор посоветовал нам искать другие модели, поскольку производительность GANS плохая. Модель MAXIM была предложена к.т.н. Студент, поскольку он не дискриминирует определенные лица, а также его отличные характеристики.
Мотивация
Основной мотивацией для участия в этом проекте было желание узнать больше о генеративных моделях глубокого обучения. Генеративная модель — это мощный способ изучения любого вида распределения данных с использованием неконтролируемого обучения, и всего за несколько лет она достигла огромного успеха. Все типы генеративных моделей нацелены на изучение истинного распределения данных обучающего набора, чтобы генерировать новые точки данных с некоторыми вариациями.
Первоначально мы намеревались сделать проект, вдохновленный этой статьей, для сверхвысокого разрешения.
Что очаровало нас в генеративных моделях?
- Его можно использовать для создания данных, которых еще не существует. Это важно для исследовательских целей, например, когда новому алгоритму нужны тестовые данные для обучения.
- Его можно использовать для улучшения существующих алгоритмов. Например, путем создания данных для обучения новых нейронных сетей или разработки более совершенных архитектур глубокого обучения.
Некоторые приложения генеративных моделей:
- Изобретение алгоритма. Одним из применений генеративных моделей является помощь исследователям в изобретении новых алгоритмов машинного обучения. До сих пор этот процесс выполнялся в основном вручную, но с помощью генеративных моделей его можно автоматизировать.
- Увеличение данных: увеличение данных — это метод, используемый в машинном обучении для улучшения качества данных. Он состоит в искусственном дополнении набора данных дополнительными данными, которые аналогичны исходному набору данных, но которые ранее не встречались. Это часто используется в глубоком обучении для повышения производительности нейронных сетей.
- Генерация текста: Генерация текста — это процесс автоматического создания текстовых документов. Генераторы текста AI можно использовать для создания резюме статей, описания продуктов или написания сообщений в блогах.
- Креативное задавание вопросов (CQA): это форма машинного обучения, цель которой состоит не в том, чтобы отвечать на вопросы, а в том, чтобы творчески задавать их и улучшать будущие поколения, включая предыдущие ответы в последующие поколения. Например, используйте Smart Reply в Gmail, чтобы генерировать лучшие предложения автозаполнения.
- Генерация изображений. Еще одним применением генеративных моделей является создание изображений. Это можно использовать для создания новых изображений в исследовательских целях или для создания реалистичных изображений, которые можно использовать в приложениях компьютерной графики.
Из них нас интересовало создание изображений. Из всех различных применений в создании изображений мы подумали о том, чтобы рассмотреть устранение размытия изображения в качестве темы нашего проекта.
Мы выбираем устранение размытия изображения, потому что приложения, в которых оно используется, очень интересны, и оно используется в качестве первого шага во многих процессах для улучшения их конвейеров обработки изображений.
Модель GAN: генеративно-состязательные сети
Две нейронные сети, образующие модель GAN, называются генератором и дискриминатором. Descrimonator берет данные реального мира, такие как изображения реального мира, и классифицирует их, является ли это реальным изображением или изображением, сгенерированным сетью генераторов GAN.
Дискриминатор:
Дискриминатор GAN — это классификатор.
- Он различает реальные данные и данные, сгенерированные генератором GAN.
- Дискриминатор обучается на двух типах данных. Первый — это данные реального мира, такие как изображения реального мира.
- Второй — артефакты, создаваемые генератором. Они используются в качестве наземных меток правды о том, как выглядит «поддельный» артефакт.
Процесс обучения дискриминатора работает следующим образом:
- Дискриминатор классифицирует реальные и ложные данные, полученные от генератора.
- Дискриминатор вычисляет функцию потерь, которая наказывает его за ошибочную классификацию реального артефакта как поддельного или поддельного артефакта как реального.
- Дискриминатор обновляет свои веса путем обратного распространения, чтобы минимизировать потери дискриминатора, не зная о функции потерь генератора.
Генератор:
- Генераторная часть GAN учится использовать обратную связь дискриминатора для создания поддельных данных.
- Его цель — заставить дискриминатор классифицировать свой фальшивый вывод как настоящий.
- Обратное распространение выполняется через сети дискриминатора и генератора для получения градиентов.
- Эти градиенты используются только для настройки весов генератора, чтобы сгенерированный контент с большей вероятностью обманул дискриминатор в следующий раз.
Проблемы с ГАН
Многие модели GAN страдают следующими основными проблемами:
- Несходимость: параметры модели дестабилизируются и никогда не сходятся
- Коллапс режима: генератор коллапсирует, что приводит к ограниченному количеству выборок.
- Уменьшенный градиент: дискриминатор становится слишком успешным, чтобы градиент генератора исчезал и ничего не узнавал
- Дисбаланс между генератором и дискриминатором приводит к переоснащению
- Высокая чувствительность к выбору гиперпараметров
Введение в MAXIM
Были предприняты новые инициативы по моделям Transformers и Multi-layer perceptron (MLP), которые обеспечивают новые сетевые архитектурные решения для задач компьютерного зрения. Хотя эти модели оказались эффективными во многих задачах зрения, таких как распознавание изображений, остаются проблемы с их адаптацией для низкоуровневого зрения. Отсутствие гибкости для поддержки изображений с высоким разрешением и ограниченность местного внимания, пожалуй, являются основными узкими местами.
MAXIM — это многоосевая архитектура на основе MLP, которая может служить эффективной и гибкой основой машинного зрения общего назначения для задач обработки изображений. MAXIM использует иерархическую структуру в форме UNet и поддерживает взаимодействия на большом расстоянии, обеспечиваемые пространственно закрытыми MLP. В частности, MAXIM содержит два строительных блока на основе MLP: MLP с многоосевым стробированием, который позволяет эффективно и масштабируемо пространственно смешивать локальные и глобальные визуальные сигналы, и блок cross-gate, альтернативу перекрестному вниманию, который учитывает перекрестное внимание. -кондиционирование признаков. Оба этих модуля основаны исключительно на MLP, но также имеют преимущество в том, что они являются глобальными и «полностью сверточными» — два свойства, которые желательны для обработки изображений. Предлагаемая модель MAXIM обеспечивает самую современную производительность по более чем десяти эталонным тестам в различных задачах обработки изображений, включая шумоподавление, удаление размытия, устранение мутности и улучшение, при этом требуется меньшее или сравнимое количество параметров и FLOP, чем у конкурирующих моделей. .
Архитектура MAXIM представлена ниже:
Мы берем магистраль кодер-декодер с каждым кодером, декодером и узким местом, содержащим многоосевой вентилируемый блок MLP, а также блок внимания остаточного канала. Модель дополнительно усиливается перекрестным блоком, который позволяет глобальным контекстным функциям блокировать пропущенные соединения.
Если мы посмотрим на сравнение существующих методов, доступных для устранения размытия изображений, и представим сравнение, то MAXIM будет именно таким.
Верхний показывает примеры из GoPro, а нижний — из HIDE.
Результаты и анализ
-› После запуска модели мы увидели, что изображение размером 50x50 пикселей было увеличено до 256x256 пикселей.
-> Модель смогла произвести следующий вывод:
-› Мы видим, что улучшение невелико, однако мы видим, что второе изображение менее пикселизировано, чем первое.
Обсуждение (подводные камни/пробелы)
- Когда мы попытались изменить параметры пикселей с 256 на 512, но похоже, что предварительно обученная модель работает только для 256 пикселей, поскольку она выдавала ошибку Keras с несколькими ядрами. Мы можем поработать над внесением этого изменения в базовую предварительно обученную модель и посмотреть, даст ли она улучшенные изображения.
- Исходная модель на основе JAX говорит о различных метриках изображения, таких как PSNR и SSIM, которые мы не рассчитывали. Мы можем реализовать это, чтобы количественно увидеть разницу между входным и предсказанным изображением.
- Трудно отлаживать код, где задействована обработка изображений, так как операторы printf() не будут работать везде.
Будущие работы
- Хотя это современная модель, мы можем работать с изображениями разных размеров, такими как 520x520 пикселей, даже 720x720 пикселей, если мы сможем получить доступ к премиальным графическим процессорам.
- Существует много возможностей для улучшения предварительной обработки данных.
- В настоящее время мы продемонстрировали модель только на дополненных изображениях. Однако мы можем использовать различные типы обработки изображений, такие как шкала серого, нормализация и стандартизация изображения.
- Помимо различных типов обработки изображений, мы можем работать с другими библиотеками Python, такими как OpenCV и scikit-image.
Ссылки на репозиторий GitHub:
Справочная работа:
- https://www.techopedia.com/definition/20879/multilayer-perceptron-mlp
- https://ai.googleblog.com/2022/09/a-multi-axis-approach-for-vision.html
- https://machinelearningmastery.com/when-to-use-mlp-cnn-and-rnn-neural-networks/
- https://huggingface.co/google/maxim-s3-deblurring-gopro
- https://jonathan-hui.medium.com/gan-why-it-is-so-hard-to-train-generative-advisory-networks-819a86b3750b
- https://openaccess.thecvf.com/content/CVPR2022/papers/Tu_MAXIM_Multi-Axis_MLP_for_Image_Processing_CVPR_2022_paper.pdf
Соавторы: Манви Махаджан, Санджо Шаджу, Амрит Прадхан, Алекс Ю,
Пурва Тивари, Йилинь (Пол) Вэнь