- И почему это важно

Победить людей в шахматы? Проверять.

Классифицирует злокачественные и доброкачественные опухоли лучше, чем врач? Проверять.

Моделирование миллионов лекарств, потенциально способных вылечить рак? Че- подожди, AI действительно может это сделать ??

А как насчет нашей красивой человеческой кожи? Конечно, ИИ не может имитировать чистое великолепие человеческого лица, верно?

Противоположно правому.

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

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

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

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

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

Теперь давайте сделаем еще один шаг; посмотрим, сможете ли вы определить, какие лица настоящие, а какие - поддельные (если таковые имеются).

Пугает то, что все лица на правой стороне были созданы системой ИИ; в частности, особый тип нейронной сети, называемый Generative Adversarial Network (GAN).

Обзор GAN

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

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

Подождите, а почему здесь 2 нейронные сети?

Сложная функция, приведенная выше, на самом деле означает, что и Генератор (G), и Дискриминатор (D) играют друг против друга, соревнуясь, чтобы увидеть, кто лучше справляется с их определенной целью. Когда на выбор предлагаются 2 изображения, одно из реального набора данных (художник) и другое, нарисованное G, D хочет выяснить, как определить, какая из них настоящая. Он хочет каждый раз точно выбирать настоящий.

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

Особый тип GAN, который я построил, - это Deep Convolutional Generative Adversarial Network (DCGAN), которая генерирует фальшивые подделки, показанные выше. Основная идея состоит в том, что обе сети D и G построены с использованием структуры сверточного слоя, где карты функций или ядра, которые сканируют определенную часть изображения в поисках ключевых характеристик.

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

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

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

Что мы можем делать с GAN в реальной жизни?

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

Музыка

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

Открытие наркотиков

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

Ключевые выводы

  • GAN - это две нейронные сети, конкурирующие друг с другом.
  • Генератор стремится минимизировать определенную функцию; Дискриминатор пытается максимизировать ту же функцию
  • Генератор создает поддельные изображения, имитирующие настоящие, чтобы обмануть Дискриминатор, который пытается точно отличить поддельные изображения от настоящих.
  • Со временем сеть способна генерировать сверхреалистичные данные.
  • Существует несколько вариантов, 2 из которых - это условные и глубокие сверточные сети GAN.
  • GAN можно использовать для создания фальшивых людей, музыки, наркотиков и рисования кошек.
  • Не доверять никому; все можно подделать

Большое спасибо за чтение! Следуйте за мной на Medium, чтобы узнать больше, и на LinkedIn. Не стесняйтесь обращаться, если хотите узнать больше или сообщить мне, над чем вы работаете!