Основы ИИ

Что такое Генеративная Соперничающая Сеть (GAN)?

mm
Добавьте Unite.AI в избранные источники в Google

Генеративные Соперничающие Сети (GANs) являются типами архитектур нейронных сетей способными генерировать новые данные, соответствующие выученным закономерностям. GANs могут быть использованы для генерации изображений человеческих лиц или других объектов, для выполнения перевода текста в изображение, для преобразования одного типа изображения в другой и для улучшения разрешения изображений (супер-разрешение) среди других применений. Поскольку GANs могут генерировать совершенно новые данные, они находятся в основе многих передовых систем, приложений и исследований ИИ. Однако, как именно работают GANs? Давайте рассмотрим, как функционируют GANs и посмотрим на некоторые из их основных применений.

Определение Генеративных Моделей и GANs

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

Различные генеративные модели имеют разные методы генерации данных и расчета вероятностных распределений. Например, модель Наивного Байеса работает, рассчитывая вероятностное распределение для различных входных признаков и генеративного класса. Когда модель Наивного Байеса делает прогноз, она рассчитывает наиболее вероятный класс, принимая вероятность различных переменных и объединяя их вместе. Другие не-глубокие модели генерации включают Модели Смешанных Гауссов и Латентную Дирхле-аллокацию (LDA). Глубокие модели генерации на основе обучения включают Ограниченные Больцмановы Машины (RBMs), Вариационные Автоэнкодеры (VAEs) и, конечно же, GANs.

Генеративные Соперничающие Сети были предложены Иэном Гудфеллоу в 2014 году, и они были улучшены Алексом Редфордом и другими исследователями в 2015 году, что привело к стандартизированной архитектуре для GANs. GANs фактически состоят из двух разных сетей, соединенных вместе. GANs состоят из двух половин: модели генерации и модели дискриминации, также называемой генератором и дискриминатором.

Архитектура GAN

Генеративные Соперничающие Сети построены из модели генератора и модели дискриминатора, соединенных вместе. Задача модели генератора – создавать новые примеры данных на основе закономерностей, которые модель изучила из обучающих данных. Задача модели дискриминатора – анализировать изображения (предполагая, что она обучена на изображениях) и определять, являются ли изображения сгенерированными/фальшивыми или подлинными.

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

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

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

Процесс Обучения GAN

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

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

Генератор принимает вектор случайных числовых данных и преобразует их на основе гауссового распределения, возвращая изображение. Это сгенерированное изображение, вместе с некоторыми подлинными изображениями из обучающего набора данных, подается в модель дискриминатора. Дискриминатор делает вероятностный прогноз о природе изображений, которые он получает, выводя значение между 0 и 1, где 1 обычно является подлинным изображением, а 0 – фальшивым изображением.

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

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

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

Применения GAN

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

Генерация Новых Примеров Для Наборов Данных

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

Генерация Уникальных Человеческих Лиц

Женщина на этом фото не существует. Изображение было сгенерировано StyleGAN. Фото: Owlsmcgee via Wikimedia Commons, Public Domain (https://commons.wikimedia.org/wiki/File:Woman_1.jpg)

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

Перевод Изображения в Изображение

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

Перевод Текста в Изображение

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

Редактирование и Ремонт Изображений

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

Супер-Разрешение

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

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

Блогер и программист с специализацией в Machine Learning и Deep Learning темах. Daniel надеется помочь другим использовать силу ИИ для социального блага.