Генеративно-состязательные сети (GAN): введение

Опубликовано: 2022-08-16

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

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

В то время как GAN являются благом для многих, некоторых это беспокоит.

Но что это за технология?

В этой статье я расскажу, что такое GAN, как он работает и как он применяется.

Итак, давайте погрузимся прямо в!

Что такое генеративно-состязательная сеть?

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

Сеть GAN была разработана в 2014 году ученым-компьютерщиком и инженером Яном Гудфеллоу и некоторыми из его коллег. Это уникальные глубокие нейронные сети, способные генерировать новые данные, подобные тем, на которых они обучаются. Они соревнуются в игре с нулевой суммой, в результате которой один агент проигрывает, а другой выигрывает.

Что такое генеративно-состязательная сеть

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

Два блока в соревновании в GAN:

Генератор: это сверточная нейронная сеть, которая искусственно создает выходные данные, похожие на реальные данные.

Дискриминатор: это деконволюционная нейронная сеть, которая может идентифицировать искусственно созданные выходные данные.

Ключевые понятия

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

Машинное обучение (МО)

Машинное обучение

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

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

Различающая модель

Различающая модель

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

Например, различение разных фруктов или животных.

Генеративная модель

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

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

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

Генеративно-состязательные сети (GAN): как обсуждалось выше, GAN — это глубокая нейронная сеть, способная генерировать новые, похожие данные из входных данных, которые ей предоставлены. Это относится к неконтролируемому машинному обучению, которое является одним из типов машинного обучения, обсуждаемых ниже.

контролируемое обучение

контролируемое обучение

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

Неконтролируемое обучение

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

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

Давайте поймем их немного больше.

Части ГАН

Термин «состязательный» включен в GAN, потому что он состоит из двух частей — конкурирующих генератора и знаменателя. Это делается для сбора, изучения и репликации вариаций данных в наборе данных. Давайте лучше разберемся в этих двух частях GAN.

Генератор

Генератор

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

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

Генератор обучается с помощью следующих компонентов:

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

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

Дискриминатор

Дискриминатор

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

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

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

Как работает ГАН?

В генеративно-состязательной сети (GAN) участвуют три вещи:

  • Генеративная модель для описания способа генерации данных.
  • Противоборствующая обстановка, в которой обучается модель.
  • Глубокие нейронные сети как алгоритмы ИИ для обучения.

Две нейронные сети GAN — генератор и дискриминатор — используются для состязательной игры. Генератор берет входные данные, такие как аудиофайлы, изображения и т. д., для создания аналогичного экземпляра данных, в то время как дискриминатор проверяет подлинность этого экземпляра данных. Последний определит, является ли экземпляр данных, который он рассмотрел, реальным или нет.

Как работает ГАН

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

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

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

Дискриминатор будет принимать как поддельные, так и настоящие данные, чтобы вернуть вероятность 0 или 1. Здесь 1 представляет подлинность, а 0 представляет подделку.

В этом процессе есть две петли обратной связи:

  • Генератор присоединяется к цепи обратной связи с дискриминатором.
  • Дискриминатор присоединяется к другому циклу обратной связи с набором реальных изображений.

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

Дискриминатор — это сверточная сеть, способная категоризировать подаваемые ей изображения. Он работает как биномиальный классификатор, чтобы маркировать изображения как поддельные или настоящие.

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

Обе сети пытаются оптимизировать противоположные и разные потери или целевую функцию в состязательной игре. Проигрыши позволяют им давить друг на друга еще сильнее.

Типы GAN

Типы GAN

Генеративно-состязательные сети бывают разных типов в зависимости от реализации. Вот основные активно используемые типы GAN:

  • Условный GAN (CGAN): это метод глубокого обучения, который включает в себя определенные условные параметры, помогающие различать реальные и поддельные данные. Он также включает дополнительный параметр — «y» в фазе генератора для получения соответствующих данных. Кроме того, к этому входу добавляются метки, которые передаются дискриминатору, чтобы он мог проверить, являются ли данные подлинными или поддельными.
  • Vanilla GAN: это простой тип GAN, в котором дискриминатор и генератор представляют собой более простые и многослойные персептроны. Его алгоритмы просты, оптимизируя математическое уравнение с помощью стохастического градиентного спуска.
  • Глубокий сверточный GAN (DCGAN): он популярен и считается наиболее успешной реализацией GAN. DCGAN состоит из ConvNets, а не из многоуровневых персептронов. Эти ConvNet применяются без использования таких методов, как максимальный пул или полное соединение слоев.
  • GAN со сверхвысоким разрешением (SRGAN): это реализация GAN, которая использует глубокую нейронную сеть вместе с состязательной сетью для создания изображений высокого качества. SRGAN особенно полезен для эффективного масштабирования исходных изображений с низким разрешением, чтобы улучшить их детализацию и свести к минимуму ошибки.
  • Laplacian Pyramid GAN (LAPGAN): Это обратимое и линейное представление, которое включает в себя несколько полосовых изображений, которые расположены на расстоянии восьми пробелов друг от друга с низкочастотными остатками. LAPGAN использует несколько сетей дискриминаторов и генераторов, а также несколько уровней пирамиды Лапласа.

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

Приложения GAN

Генеративно-состязательные сети используются в различных областях, таких как:

Наука

Приложения GAN

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

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

Видеоигры

Видеоигры

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

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

Видеоигры, в которых использовались GAN, включают Resident Evil Remake, Final Fantasy VIII и IX и другие.

Искусство и мода

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

Реклама

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

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

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

Аудио Синтез

Вы можете создавать аудиофайлы из набора аудиоклипов с помощью GAN. Это также известно как генеративное аудио. Пожалуйста, не путайте это с Amazon Alexa, Apple Siri или другими голосами ИИ, где голосовые фрагменты хорошо сшиваются и воспроизводятся по запросу.

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

Трансферное обучение

Трансферное обучение

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

Другие приложения GAN включают:

  • Диагностика полной или частичной потери зрения путем обнаружения глаукоматозных изображений
  • Визуализируйте промышленный дизайн, дизайн интерьера, предметы одежды, обувь, сумки и многое другое
  • реконструировать криминалистические черты лица больного человека
  • создавать 3D-модели предмета из изображения, создавать новые объекты в виде 3D-облака точек, моделировать паттерны движения в видео
  • Витрина внешности человека с изменяющимся возрастом
  • Расширение данных, например улучшение классификатора DNN.
  • Закрасьте отсутствующий объект на карте, улучшите виды улиц, перенесите стили отображения и т. д.
  • Создание изображений, замена системы поиска изображений и т. д.
  • Сгенерируйте управляющие входные данные для нелинейной динамической системы с помощью варианта GAN.
  • Анализ влияния климатических изменений на дом
  • Создайте лицо человека, используя его голос в качестве входных данных
  • Создать новые молекулы для нескольких белковых мишеней при раке, фиброзе и воспалении
  • Анимация GIF из обычного изображения

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

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

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

Вывод

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

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