Вступление

Я хочу, чтобы вы все зашли на этот сайт, прежде чем приступить к работе над статьей. Как видно из URL, этих людей на самом деле не существует. Все лица фальшивые (другими словами, созданные компьютером). Итак, как же такие реалистичные лица создаются машиной с нулевым IQ? Заслуга принадлежит GAN - концепции, основанной Яном Гудфеллоу в 2014 году.

Что такое GAN?

Эти лица создаются генеративной состязательной сетью (сокращенно GAN). GAN состоит из двух нейронных сетей… Подождите, подождите, подождите! Что такое нейронная сеть?

Нейронная сеть - что это?

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

Мама Миа, я снова иду - что такое GAN?

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

Как нейронные сети интерпретируют изображения?

Каждое изображение состоит из пикселей, и каждый пиксель связан с числовым значением от 0 до 255. По сути, каждое изображение представляет собой матрицу чисел, с которой нейронная сеть может оперировать. Таким образом, сверточная нейронная сеть (вариант нейронных сетей) работает с этими изображениями для извлечения признаков. Ядра (матрицы признаков) применяются к изображениям, которые извлекают из них важные характеристики, очень похоже на то, как это делают люди. Эти матрицы признаков могут идентифицировать края, окружности, линии и т. Д. И сохранять их в картах признаков.

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

Мистер GAN, что происходит внутри?

Дискриминатор - только настоящий и фальшивый, так что остынь!

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

Генератор - больше, дай мне больше!

На этот компонент подается случайный шум, над которым работает генератор для генерации значимых данных (здесь изображений). DCGAN или Deep Convolutional GAN ​​реализуют операции сверточного преобразования функциональных карт (немного отличающихся от ваших традиционных CNN) для преобразования шума в изображения. Эти изображения G (Z) на диаграмме ниже отправляются на дискриминатор для классификации. Генератор изначально не имеет представления о том, как выглядит лицо и каковы его особенности. Тем не менее, он быстро учится и будет улучшать себя на основе обратной связи от дискриминатора.

Практика делает фальшивку реальностью - да, вы правильно прочитали!

Дискриминатор переполнен изображениями - настоящими и фальшивыми, без указания того, что есть что. Дискриминатор освобождается и позволяет делать свои прогнозы для каждого изображения. После классификации ему даются правильные ответы для каждого изображения. Для каждой неправильной классификации он соответствующим образом изменяет свой алгоритм, чтобы одна и та же ошибка не повторялась. Например, человеку вручают десять бриллиантов и просят отделить настоящие бриллианты от подделок. После этого ему рассказывают о его ошибках. Он держит их в уме и снова начинает их переклассифицировать. Этот процесс повторяется до тех пор, пока он не овладеет своей классификацией. В результате после каждого набора входных данных дискриминатор улучшается (то есть лучше распознает поддельные изображения). Теперь, как генератор создает более реалистичные подделки?

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

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

Приложения GAN - О-ла-ла!

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

1. Глубокие подделки:

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



2. Редактирование изображений:

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

3. Создание данных:

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

Заключение

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

Дополнительное чтение

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

Эта статья опубликована в рамках серии ML в веб-среду Клуба исследований и развития пауков, NIT Trichy!